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

Arnd Bergmann arnd at kernel.org
Wed Oct 27 12:52:28 UTC 2021


On Wed, Oct 27, 2021 at 2:38 PM Javier Martinez Canillas
<javierm at redhat.com> 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'.

       Arnd


More information about the dri-devel mailing list