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

From: Geert Uytterhoeven
Date: Tue Sep 12 2023 - 04:51:22 EST


Hi Thomas,

On Tue, Sep 12, 2023 at 10:38 AM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
> Am 12.09.23 um 10:18 schrieb Geert Uytterhoeven:
> > 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

Sorry, I was surprised by "FBDEV_EMULATION disables the console",
which is not what the Kconfig snippet you suggested does?

> 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.

The latter is currently called FB_DEVICE.

If you want to have this controlled by user-visible features, then
either FRAMEBUFFER_CONSOLE and FRAMEBUFFER_DEVICE should
"select FBDEV_EMULATION if DRM", right?

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