xref: /linux/drivers/gpu/drm/clients/Kconfig (revision 2c1ed907520c50326b8f604907a8478b27881a2e)
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
15f7b42442SJocelyn 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
74f7b42442SJocelyn Falempeconfig DRM_CLIENT_LOG
75f7b42442SJocelyn Falempe	bool "Print the kernel boot message on the screen"
76f7b42442SJocelyn Falempe	depends on DRM_CLIENT_SELECTION
77f7b42442SJocelyn Falempe	select DRM_CLIENT
78f7b42442SJocelyn Falempe	select DRM_CLIENT_SETUP
79f7b42442SJocelyn Falempe	select DRM_DRAW
80*322a00efSArnd Bergmann	select FONT_SUPPORT
81f7b42442SJocelyn Falempe	help
82f7b42442SJocelyn Falempe	  This enable a drm logger, that will print the kernel messages to the
83f7b42442SJocelyn Falempe	  screen until the userspace is ready to take over.
84f7b42442SJocelyn Falempe
85f7b42442SJocelyn Falempe	  If you only need logs, but no terminal, or if you prefer userspace
86f7b42442SJocelyn Falempe	  terminal, say "Y".
87f7b42442SJocelyn Falempe
88f7b42442SJocelyn Falempechoice
89f7b42442SJocelyn Falempe	prompt "Default DRM Client"
90f7b42442SJocelyn Falempe	depends on DRM_CLIENT_SELECTION
91bc0e01b5SJocelyn Falempe	depends on DRM_FBDEV_EMULATION || DRM_CLIENT_LOG
92f7b42442SJocelyn Falempe	default DRM_CLIENT_DEFAULT_FBDEV
93f7b42442SJocelyn Falempe	help
94f7b42442SJocelyn Falempe	  Selects the default drm client.
95f7b42442SJocelyn Falempe
96f7b42442SJocelyn Falempe	  The selection made here can be overridden by using the kernel
97f7b42442SJocelyn Falempe	  command line 'drm_client_lib.active=fbdev' option.
98f7b42442SJocelyn Falempe
99f7b42442SJocelyn Falempeconfig DRM_CLIENT_DEFAULT_FBDEV
100f7b42442SJocelyn Falempe	bool "fbdev"
101f7b42442SJocelyn Falempe	depends on DRM_FBDEV_EMULATION
102f7b42442SJocelyn Falempe	help
103f7b42442SJocelyn Falempe	  Use fbdev emulation as default drm client. This is needed to have
104f7b42442SJocelyn Falempe	  fbcon on top of a drm driver.
105f7b42442SJocelyn Falempe
106f7b42442SJocelyn Falempeconfig DRM_CLIENT_DEFAULT_LOG
107f7b42442SJocelyn Falempe	bool "log"
108f7b42442SJocelyn Falempe	depends on DRM_CLIENT_LOG
109f7b42442SJocelyn Falempe	help
110f7b42442SJocelyn Falempe	  Use drm log as default drm client. This will display boot logs on the
111f7b42442SJocelyn Falempe	  screen, but doesn't implement a full terminal. For that you will need
112f7b42442SJocelyn Falempe	  a userspace terminal using drm/kms.
113f7b42442SJocelyn Falempe
114f7b42442SJocelyn Falempeendchoice
115f7b42442SJocelyn Falempe
116f7b42442SJocelyn Falempeconfig DRM_CLIENT_DEFAULT
117f7b42442SJocelyn Falempe       string
118f7b42442SJocelyn Falempe       depends on DRM_CLIENT
119f7b42442SJocelyn Falempe       default "fbdev" if DRM_CLIENT_DEFAULT_FBDEV
120f7b42442SJocelyn Falempe       default "log" if DRM_CLIENT_DEFAULT_LOG
121f7b42442SJocelyn Falempe       default ""
122f7b42442SJocelyn Falempe
123a49e7e81SThomas Zimmermannendmenu
124