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