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

From: Geert Uytterhoeven
Date: Tue Sep 12 2023 - 03:51:31 EST


Hi Arnd,

On Tue, Sep 12, 2023 at 9:40 AM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Tue, Sep 12, 2023, at 09:14, Geert Uytterhoeven wrote:
> > On Mon, Sep 11, 2023 at 10:53 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
> >> --- 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.
>
> I think it still makes some sense though, as configs that have
> both DRM and FB enabled almost certainly want this enabled.

OK.

People who use DRM drivers only, and now realize they no longer need
CONFIG_FB, may need to enable CONFIG_DRM_FBDEV_EMULATION
manually when disabling CONFIG_FB, depending on their use case.

> >> diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> >> index b575cf54174af..83c2d7329ca58 100644
> >> --- 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").
>
> Correct, this should restore the console on configs that
> accidentally lost it. The real problem here is much older,
> the assymetry between framebuffer-only configs (with console
> default off) and DRM configs (with console selected
> unconditionally) started back in 2009 with commit 6fcefd56f5060
> ("drm/kms: fix kms helper license + Kconfig").
>
> I think that was a mistake, but there is little we can do
> to fix that now without breaking users.

Right...

>
> The only alternative I can think of would be to default-enable
> or force-enable FRAMEBUFFER_CONSOLE for any config that includes
> both VT_CONSOLE and FB_CORE. This would increase defconfig
> builds for systems that currently only want CONFIG_FB for
> either FB_DEVICE or LOGO but don't care about
> FRAMEBUFFER_CONSOLE. I have no idea who uses such a config,
> but I think Javier previously said this was an important
> use case.
>
> >> 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.
>
> How? FB_DEVICE is a new config that was just split out from
> CONFIG_FB in 6.6-rc1, so nobody should have any defconfig
> that disables CONFIG_FB but relies on the FB_DEVICE default yet.

Right, from the PoV of running "make oldconfig" that is true.

(I was incorrectly considering the defconfigs which I maintain,
and where I already disabled CONFIG_FB after the FB/FB_CORE
split in linux-next).

Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds