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