Re: [PATCH] drm: fix up fbdev Kconfig defaults

From: Thomas Zimmermann
Date: Tue Sep 12 2023 - 04:38:15 EST


Hi Geert

Am 12.09.23 um 10:18 schrieb Geert Uytterhoeven:
Hi Thomas,

On Tue, Sep 12, 2023 at 10:11 AM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
Am 12.09.23 um 09:14 schrieb Geert Uytterhoeven:
[...]
--- a/drivers/gpu/drm/Kconfig
+++ b/drivers/gpu/drm/Kconfig
@@ -135,7 +135,7 @@ config DRM_FBDEV_EMULATION
bool "Enable legacy fbdev support for your modesetting driver"
depends on DRM
select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE
- default y
+ default FB

While this is true for existing configs, it is no longer true in general,
as DRM_FBDEV_EMULATION is no longer related to FB.

Would it make sense to make FRAMEBUFFER_CONSOLE an independent option
and have FBDEV_EMULATION depend on it? Something like this:

FRAMEBUFFER_CONSOLE
depends on DRM || FB
select FB_CORE

FBDEV_EMULATION
depends on DRM
depends on FRAMEBUFFER_CONSOLE
default y

Oops, now you can no longer have FBDEV_EMULATION without
FRAMEBUFFER_CONSOLE, which is useful to be able to enable
FB_DEVICE...

And if it depends on FB_CORE instead of FRAMEBUFFER_CONSOLE? I'm aware that this would require more Kconfig changes than outlined here.



And what's the point (if DRM is enabled) of having FB_CORE with
FBDEV_EMULATION disabled?

So if any graphics subsystems are enabled, FRAMEBUFFER_CONSOLE is
select-able. But for DRM, FBDEV_EMULATION disables the console. That

Huh?

/me looks at his morning coffee, and confirms the cup is empty...

Decaf maybe?

But there's really no need to get snarky. My though is that FRAMEBUFFER_CONSOLE configures an end-user feature. The user sits there an thinks "I want a console". FBDEV_EMULATION controls a driver functionality. It's not useful by itself, but enables the enduser feature. The features would be FRAMEBUFFER_CONSOLE and FRAMEBUFFER_DEVICE.

Best regards
Thomas


option remains more for historical reasons than actual usefulness.

--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -74,6 +74,7 @@ config DUMMY_CONSOLE_ROWS
config FRAMEBUFFER_CONSOLE
bool "Framebuffer Console support"
depends on FB_CORE && !UML
+ default DRM_FBDEV_EMULATION

Sounds good to me, although it looks a bit strange at first sight
(FRAMEBUFFER_CONSOLE defaults to n on a system with real fbdev, but
y on emulated fbdev?).
So this is the fix for commit a5ae331edb02b ("drm: Drop select
FRAMEBUFFER_CONSOLE for DRM_FBDEV_EMULATION").

select VT_HW_CONSOLE_BINDING
select CRC32
select FONT_SUPPORT
diff --git a/drivers/video/fbdev/core/Kconfig b/drivers/video/fbdev/core/Kconfig
index 114cb8aa6c8fd..804c2bec9b43c 100644
--- a/drivers/video/fbdev/core/Kconfig
+++ b/drivers/video/fbdev/core/Kconfig
@@ -28,7 +28,7 @@ config FIRMWARE_EDID
config FB_DEVICE
bool "Provide legacy /dev/fb* device"
depends on FB_CORE
- default y
+ default FB

Changing this means possibly causing regressions on systems running
an fbdev userspace.

help
Say Y here if you want the legacy /dev/fb* device file and
interfaces within sysfs anc procfs. It is only required if you

Gr{oetje,eeting}s,

Geert


--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature