Commit bb6c4507 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Javier Martinez Canillas

drm: fix up fbdev Kconfig defaults

As a result of the recent Kconfig reworks, the default settings for the
framebuffer interfaces changed in unexpected ways:

Configurations that leave CONFIG_FB disabled but use DRM now get
DRM_FBDEV_EMULATION by default. This also turns on the deprecated /dev/fb
device nodes for machines that don't actually want it.

In turn, configurations that previously had DRM_FBDEV_EMULATION enabled
now only get the /dev/fb front-end but not the more useful framebuffer
console, which is not selected any more.

We had previously decided that any combination of the three frontends
(FB_DEVICE, FRAMEBUFFER_CONSOLE and LOGO) should be selectable, but the
new default settings mean that a lot of defconfig files would have to
get adapted.

Change the defaults back to what they were in Linux 6.5:

 - Leave DRM_FBDEV_EMULATION turned off unless CONFIG_FB
   is enabled. Previously this was a hard dependency but now the two are
   independent. However, configurations that enable CONFIG_FB probably
   also want to keep the emulation for DRM, while those without FB
   presumably did that intentionally in the past.

 - Leave FB_DEVICE turned off for FB=n. Following the same
   logic, the deprecated option should not automatically get enabled
   here, most users that had FB turned off in the past do not want it,
   even if they want the console

 - Turn the FRAMEBUFFER_CONSOLE option on if
   DRM_FBDEV_EMULATION is set to avoid having to change defconfig
   files that relied on it being selected unconditionally in the past.
   This also makes sense since both LOGO and FB_DEVICE are now disabled
   by default for builds without CONFIG_FB, but DRM_FBDEV_EMULATION
   would make no sense if all three are disabled.

Fixes: a5ae331e ("drm: Drop select FRAMEBUFFER_CONSOLE for DRM_FBDEV_EMULATION")
Fixes: 701d2054 ("fbdev: Make support for userspace interfaces configurable")
Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230911205338.2385278-1-arnd@kernel.org
parent 2ba15798
...@@ -136,7 +136,7 @@ config DRM_FBDEV_EMULATION ...@@ -136,7 +136,7 @@ config DRM_FBDEV_EMULATION
bool "Enable legacy fbdev support for your modesetting driver" bool "Enable legacy fbdev support for your modesetting driver"
depends on DRM depends on DRM
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
default y default FB
help help
Choose this option if you have a need for the legacy fbdev Choose this option if you have a need for the legacy fbdev
support. Note that this support also provides the linux console support. Note that this support also provides the linux console
......
...@@ -73,6 +73,7 @@ config DUMMY_CONSOLE_ROWS ...@@ -73,6 +73,7 @@ config DUMMY_CONSOLE_ROWS
config FRAMEBUFFER_CONSOLE config FRAMEBUFFER_CONSOLE
bool "Framebuffer Console support" bool "Framebuffer Console support"
depends on FB_CORE && !UML depends on FB_CORE && !UML
default DRM_FBDEV_EMULATION
select VT_HW_CONSOLE_BINDING select VT_HW_CONSOLE_BINDING
select CRC32 select CRC32
select FONT_SUPPORT select FONT_SUPPORT
......
...@@ -28,7 +28,7 @@ config FIRMWARE_EDID ...@@ -28,7 +28,7 @@ config FIRMWARE_EDID
config FB_DEVICE config FB_DEVICE
bool "Provide legacy /dev/fb* device" bool "Provide legacy /dev/fb* device"
depends on FB_CORE depends on FB_CORE
default y default FB
help help
Say Y here if you want the legacy /dev/fb* device file and Say Y here if you want the legacy /dev/fb* device file and
interfaces within sysfs anc procfs. It is only required if you interfaces within sysfs anc procfs. It is only required if you
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment