On Wed, 27 Oct 2021, Arnd Bergmann arnd@kernel.org wrote:
On Wed, Oct 27, 2021 at 2:38 PM Javier Martinez Canillas javierm@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'.
So the fix would be that nobody selects DRM_KMS_HELPER...
BR, Jani.
Arnd