Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2
3config DRM_CLIENT_LIB
4 tristate
5 depends on DRM
6 select DRM_KMS_HELPER if DRM_FBDEV_EMULATION
7 select FB_CORE if DRM_FBDEV_EMULATION
8 help
9 This option enables the DRM client library and selects all
10 modules and components according to the enabled clients.
11
12config DRM_CLIENT_SELECTION
13 tristate
14 depends on DRM
15 select DRM_CLIENT_LIB if DRM_CLIENT_LOG
16 select DRM_CLIENT_LIB if DRM_FBDEV_EMULATION
17 help
18 Drivers that support in-kernel DRM clients have to select this
19 option.
20
21config DRM_CLIENT_SETUP
22 bool
23 depends on DRM_CLIENT_SELECTION
24 help
25 Enables the DRM client selection. DRM drivers that support the
26 default clients should select DRM_CLIENT_SELECTION instead.
27
28menu "Supported DRM clients"
29 depends on DRM_CLIENT_SELECTION
30
31config DRM_FBDEV_EMULATION
32 bool "Enable legacy fbdev support for your modesetting driver"
33 depends on DRM_CLIENT_SELECTION
34 select DRM_CLIENT
35 select DRM_CLIENT_SETUP
36 select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
37 default FB
38 help
39 Choose this option if you have a need for the legacy fbdev
40 support. Note that this support also provides the linux console
41 support on top of your modesetting driver.
42
43 If in doubt, say "Y".
44
45config DRM_FBDEV_OVERALLOC
46 int "Overallocation of the fbdev buffer"
47 depends on DRM_FBDEV_EMULATION
48 default 100
49 help
50 Defines the fbdev buffer overallocation in percent. Default
51 is 100. Typical values for double buffering will be 200,
52 triple buffering 300.
53
54config DRM_FBDEV_LEAK_PHYS_SMEM
55 bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)"
56 depends on DRM_FBDEV_EMULATION && EXPERT
57 default n
58 help
59 In order to keep user-space compatibility, we want in certain
60 use-cases to keep leaking the fbdev physical address to the
61 user-space program handling the fbdev buffer.
62 This affects, not only, Amlogic, Allwinner or Rockchip devices
63 with ARM Mali GPUs using a userspace Blob.
64 This option is not supported by upstream developers and should be
65 removed as soon as possible and be considered as a broken and
66 legacy behaviour from a modern fbdev device driver.
67
68 Please send any bug reports when using this to your proprietary
69 software vendor that requires this.
70
71 If in doubt, say "N" or spread the word to your closed source
72 library vendor.
73
74config DRM_CLIENT_LOG
75 bool "Print the kernel boot message on the screen"
76 depends on DRM_CLIENT_SELECTION
77 select DRM_CLIENT
78 select DRM_CLIENT_SETUP
79 select DRM_DRAW
80 select FONT_SUPPORT
81 help
82 This enable a drm logger, that will print the kernel messages to the
83 screen until the userspace is ready to take over.
84
85 If you only need logs, but no terminal, or if you prefer userspace
86 terminal, say "Y".
87
88choice
89 prompt "Default DRM Client"
90 depends on DRM_CLIENT_SELECTION
91 depends on DRM_FBDEV_EMULATION || DRM_CLIENT_LOG
92 default DRM_CLIENT_DEFAULT_FBDEV
93 help
94 Selects the default drm client.
95
96 The selection made here can be overridden by using the kernel
97 command line 'drm_client_lib.active=fbdev' option.
98
99config DRM_CLIENT_DEFAULT_FBDEV
100 bool "fbdev"
101 depends on DRM_FBDEV_EMULATION
102 help
103 Use fbdev emulation as default drm client. This is needed to have
104 fbcon on top of a drm driver.
105
106config DRM_CLIENT_DEFAULT_LOG
107 bool "log"
108 depends on DRM_CLIENT_LOG
109 help
110 Use drm log as default drm client. This will display boot logs on the
111 screen, but doesn't implement a full terminal. For that you will need
112 a userspace terminal using drm/kms.
113
114endchoice
115
116config DRM_CLIENT_DEFAULT
117 string
118 depends on DRM_CLIENT
119 default "fbdev" if DRM_CLIENT_DEFAULT_FBDEV
120 default "log" if DRM_CLIENT_DEFAULT_LOG
121 default ""
122
123endmenu