# SPDX-License-Identifier: GPL-2.0-only config DRM_CLIENT_LIB tristate depends on DRM select DRM_KMS_HELPER if DRM_FBDEV_EMULATION select FB_CORE if DRM_FBDEV_EMULATION help This option enables the DRM client library and selects all modules and components according to the enabled clients. config DRM_CLIENT_SELECTION tristate depends on DRM select DRM_CLIENT_LIB if DRM_CLIENT_LOG select DRM_CLIENT_LIB if DRM_FBDEV_EMULATION help Drivers that support in-kernel DRM clients have to select this option. config DRM_CLIENT_SETUP bool depends on DRM_CLIENT_SELECTION help Enables the DRM client selection. DRM drivers that support the default clients should select DRM_CLIENT_SELECTION instead. menu "Supported DRM clients" depends on DRM_CLIENT_SELECTION config DRM_FBDEV_EMULATION bool "Enable legacy fbdev support for your modesetting driver" depends on DRM_CLIENT_SELECTION select DRM_CLIENT select DRM_CLIENT_SETUP select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE default FB help Choose this option if you have a need for the legacy fbdev support. Note that this support also provides the linux console support on top of your modesetting driver. If in doubt, say "Y". config DRM_FBDEV_OVERALLOC int "Overallocation of the fbdev buffer" depends on DRM_FBDEV_EMULATION default 100 help Defines the fbdev buffer overallocation in percent. Default is 100. Typical values for double buffering will be 200, triple buffering 300. config DRM_FBDEV_LEAK_PHYS_SMEM bool "Shamelessly allow leaking of fbdev physical address (DANGEROUS)" depends on DRM_FBDEV_EMULATION && EXPERT default n help In order to keep user-space compatibility, we want in certain use-cases to keep leaking the fbdev physical address to the user-space program handling the fbdev buffer. This affects, not only, Amlogic, Allwinner or Rockchip devices with ARM Mali GPUs using a userspace Blob. This option is not supported by upstream developers and should be removed as soon as possible and be considered as a broken and legacy behaviour from a modern fbdev device driver. Please send any bug reports when using this to your proprietary software vendor that requires this. If in doubt, say "N" or spread the word to your closed source library vendor. config DRM_CLIENT_LOG bool "Print the kernel boot message on the screen" depends on DRM_CLIENT_SELECTION select DRM_CLIENT select DRM_CLIENT_SETUP select DRM_DRAW select FONT_SUPPORT help This enable a drm logger, that will print the kernel messages to the screen until the userspace is ready to take over. If you only need logs, but no terminal, or if you prefer userspace terminal, say "Y". choice prompt "Default DRM Client" depends on DRM_CLIENT_SELECTION depends on DRM_FBDEV_EMULATION || DRM_CLIENT_LOG default DRM_CLIENT_DEFAULT_FBDEV help Selects the default drm client. The selection made here can be overridden by using the kernel command line 'drm_client_lib.active=fbdev' option. config DRM_CLIENT_DEFAULT_FBDEV bool "fbdev" depends on DRM_FBDEV_EMULATION help Use fbdev emulation as default drm client. This is needed to have fbcon on top of a drm driver. config DRM_CLIENT_DEFAULT_LOG bool "log" depends on DRM_CLIENT_LOG help Use drm log as default drm client. This will display boot logs on the screen, but doesn't implement a full terminal. For that you will need a userspace terminal using drm/kms. endchoice config DRM_CLIENT_DEFAULT string depends on DRM_CLIENT default "fbdev" if DRM_CLIENT_DEFAULT_FBDEV default "log" if DRM_CLIENT_DEFAULT_LOG default "" endmenu