Re: [PATCH] [RESEND] drm: fb_helper: fix CONFIG_FB dependency

From: Jani Nikula
Date: Wed Oct 27 2021 - 09:07:13 EST


On Wed, 27 Oct 2021, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
> On Wed, Oct 27, 2021 at 2:38 PM Javier Martinez Canillas
> <javierm@xxxxxxxxxx> wrote:
>> >
>> > This is something we can't easily express in Kconfig, as we can't add the
>> > dependency to a symbol that only gets selected by other drivers, which
>> > is why the dependency has to be in the user-visible symbol,
>> > in this case DRM_FBDEV_EMULATION.
>> >
>>
>> Why the dependency has to be in a user-visible symbol? What could be the
>> problem with having something like:
>>
>> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
>> index cea777ae7fb9..f80b404946ca 100644
>> --- a/drivers/gpu/drm/Kconfig
>> +++ b/drivers/gpu/drm/Kconfig
>> @@ -82,6 +82,7 @@ config DRM_DEBUG_SELFTEST
>> config DRM_KMS_HELPER
>> tristate
>> depends on DRM
>> + depends on (DRM_FBDEV_EMULATION && FB) || !DRM_FBDEV_EMULATION
>> help
>> CRTC helpers for KMS drivers.
>>
>> @@ -104,7 +105,6 @@ config DRM_FBDEV_EMULATION
>> bool "Enable legacy fbdev support for your modesetting driver"
>> depends on DRM
>> depends on FB
>> - select DRM_KMS_HELPER
>> select FB_CFB_FILLRECT
>> select FB_CFB_COPYAREA
>> select FB_CFB_IMAGEBLIT
>
> This fails because of all the other drivers that try to 'select DRM_KMS_HELPER'.
> Kconfig will now complain about a symbol that gets selected while its
> dependencies
> are not met.
>
> To work around that, every single driver that has 'selects DRM_KMS_HELPER' would
> now have to also list 'depends on (DRM_FBDEV_EMULATION && FB) ||
> !DRM_FBDEV_EMULATION'.

So the fix would be that nobody selects DRM_KMS_HELPER...

BR,
Jani.

>
> Arnd

--
Jani Nikula, Intel Open Source Graphics Center