• Noralf Trønnes's avatar
    drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE · 3389669a
    Noralf Trønnes authored
    The mipi_dbi helper is missing a dependency on DRM_KMS_HELPER and putting
    that in revealed this problem:
    
    drivers/video/fbdev/Kconfig:12:error: recursive dependency detected!
    drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER
    drivers/gpu/drm/Kconfig:75:     symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER
    drivers/gpu/drm/Kconfig:69:     symbol DRM_KMS_HELPER is selected by TINYDRM_MIPI_DBI
    drivers/gpu/drm/tinydrm/Kconfig:11:     symbol TINYDRM_MIPI_DBI is selected by TINYDRM_HX8357D
    drivers/gpu/drm/tinydrm/Kconfig:15:     symbol TINYDRM_HX8357D depends on BACKLIGHT_CLASS_DEVICE
    drivers/video/backlight/Kconfig:144:    symbol BACKLIGHT_CLASS_DEVICE is selected by FB_BACKLIGHT
    drivers/video/fbdev/Kconfig:187:        symbol FB_BACKLIGHT depends on FB
    
    A symbol that selects DRM_KMS_HELPER can not depend on
    BACKLIGHT_CLASS_DEVICE. The reason for this is that DRM_KMS_FB_HELPER
    selects FB instead of depending on it.
    
    The tinydrm drivers have somehow gotten away with depending on
    BACKLIGHT_CLASS_DEVICE because DRM_TINYDRM selects DRM_KMS_HELPER and the
    drivers depend on that symbol.
    
    An audit shows that all DRM drivers that select DRM_KMS_HELPER and use
    BACKLIGHT_CLASS_DEVICE, selects it:
      DRM_TILCDC, DRM_GMA500, DRM_SHMOBILE, DRM_NOUVEAU, DRM_FSL_DCU,
      DRM_I915, DRM_RADEON, DRM_AMDGPU, DRM_PARADE_PS8622
    
    Documentation/kbuild/kconfig-language.txt has a note regarding select:
    1. 'select should be used with care since it doesn't visit dependencies.'
       This is not a problem since BACKLIGHT_CLASS_DEVICE doesn't have any
       dependencies.
    2. 'In general use select only for non-visible symbols'
       BACKLIGHT_CLASS_DEVICE is user visible.
    
    The real solution to this would be to have DRM_KMS_FB_HELPER depend on the
    user visible symbol FB. That is a can of worms I'm not willing to tackle.
    I fear that such a change will result in me handling difficult fallouts
    for the next weeks. So I'm following DRM suite here.
    Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Reviewed-by: default avatarDavid Lechner <david@lechnology.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190722104312.16184-7-noralf@tronnes.org
    3389669a
Kconfig 2.5 KB