fbdev: Fix recursive dependencies wrt BACKLIGHT_CLASS_DEVICE

Do not select BACKLIGHT_CLASS_DEVICE from FB_BACKLIGHT. The latter
only controls backlight support within fbdev core code and data
structures.

Make fbdev drivers depend on BACKLIGHT_CLASS_DEVICE and let users
select it explicitly. Fixes warnings about recursive dependencies,
such as

error: recursive dependency detected!
	symbol BACKLIGHT_CLASS_DEVICE is selected by FB_BACKLIGHT
	symbol FB_BACKLIGHT is selected by FB_SH_MOBILE_LCDC
	symbol FB_SH_MOBILE_LCDC depends on FB_DEVICE
	symbol FB_DEVICE depends on FB_CORE
	symbol FB_CORE is selected by DRM_GEM_DMA_HELPER
	symbol DRM_GEM_DMA_HELPER is selected by DRM_PANEL_ILITEK_ILI9341
	symbol DRM_PANEL_ILITEK_ILI9341 depends on BACKLIGHT_CLASS_DEVICE

BACKLIGHT_CLASS_DEVICE is user-selectable, so making drivers adapt to
it is the correct approach in any case. For most drivers, backlight
support is also configurable separately.

v3:
- Select BACKLIGHT_CLASS_DEVICE in PowerMac defconfigs (Christophe)
- Fix PMAC_BACKLIGHT module dependency corner cases (Christophe)
v2:
- s/BACKLIGHT_DEVICE_CLASS/BACKLIGHT_CLASS_DEVICE (Helge)
- Fix fbdev driver-dependency corner case (Arnd)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20241216074450.8590-2-tzimmermann@suse.de
This commit is contained in:
Thomas Zimmermann 2024-12-16 08:42:47 +01:00
parent 9398332f23
commit 8fc38062be
7 changed files with 19 additions and 8 deletions

View File

@ -208,6 +208,7 @@ CONFIG_FB_ATY=y
CONFIG_FB_ATY_CT=y CONFIG_FB_ATY_CT=y
CONFIG_FB_ATY_GX=y CONFIG_FB_ATY_GX=y
CONFIG_FB_3DFX=y CONFIG_FB_3DFX=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_VGA_CONSOLE is not set # CONFIG_VGA_CONSOLE is not set
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_LOGO=y CONFIG_LOGO=y

View File

@ -716,6 +716,7 @@ CONFIG_FB_TRIDENT=m
CONFIG_FB_SM501=m CONFIG_FB_SM501=m
CONFIG_FB_IBM_GXT4500=y CONFIG_FB_IBM_GXT4500=y
CONFIG_LCD_PLATFORM=m CONFIG_LCD_PLATFORM=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y CONFIG_LOGO=y

View File

@ -489,7 +489,7 @@ config IMG_ASCII_LCD
config HT16K33 config HT16K33
tristate "Holtek Ht16K33 LED controller with keyscan" tristate "Holtek Ht16K33 LED controller with keyscan"
depends on FB && I2C && INPUT depends on FB && I2C && INPUT && BACKLIGHT_CLASS_DEVICE
select FB_SYSMEM_HELPERS select FB_SYSMEM_HELPERS
select INPUT_MATRIXKMAP select INPUT_MATRIXKMAP
select FB_BACKLIGHT select FB_BACKLIGHT

View File

@ -120,6 +120,7 @@ config PMAC_MEDIABAY
config PMAC_BACKLIGHT config PMAC_BACKLIGHT
bool "Backlight control for LCD screens" bool "Backlight control for LCD screens"
depends on PPC_PMAC && ADB_PMU && FB = y && (BROKEN || !PPC64) depends on PPC_PMAC && ADB_PMU && FB = y && (BROKEN || !PPC64)
depends on BACKLIGHT_CLASS_DEVICE=y
select FB_BACKLIGHT select FB_BACKLIGHT
help help
Say Y here to enable Macintosh specific extensions of the generic Say Y here to enable Macintosh specific extensions of the generic

View File

@ -3,6 +3,7 @@ menuconfig FB_TFT
tristate "Support for small TFT LCD display modules" tristate "Support for small TFT LCD display modules"
depends on FB && SPI depends on FB && SPI
depends on FB_DEVICE depends on FB_DEVICE
depends on BACKLIGHT_CLASS_DEVICE
depends on GPIOLIB || COMPILE_TEST depends on GPIOLIB || COMPILE_TEST
select FB_BACKLIGHT select FB_BACKLIGHT
select FB_SYSMEM_HELPERS_DEFERRED select FB_SYSMEM_HELPERS_DEFERRED

View File

@ -649,6 +649,7 @@ config FB_S1D13XXX
config FB_ATMEL config FB_ATMEL
tristate "AT91 LCD Controller support" tristate "AT91 LCD Controller support"
depends on FB && OF && HAVE_CLK && HAS_IOMEM depends on FB && OF && HAVE_CLK && HAS_IOMEM
depends on BACKLIGHT_CLASS_DEVICE
depends on HAVE_FB_ATMEL || COMPILE_TEST depends on HAVE_FB_ATMEL || COMPILE_TEST
select FB_BACKLIGHT select FB_BACKLIGHT
select FB_IOMEM_HELPERS select FB_IOMEM_HELPERS
@ -660,7 +661,6 @@ config FB_ATMEL
config FB_NVIDIA config FB_NVIDIA
tristate "nVidia Framebuffer Support" tristate "nVidia Framebuffer Support"
depends on FB && PCI depends on FB && PCI
select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT select FB_CFB_IMAGEBLIT
@ -700,6 +700,8 @@ config FB_NVIDIA_DEBUG
config FB_NVIDIA_BACKLIGHT config FB_NVIDIA_BACKLIGHT
bool "Support for backlight control" bool "Support for backlight control"
depends on FB_NVIDIA depends on FB_NVIDIA
depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_NVIDIA
select FB_BACKLIGHT
default y default y
help help
Say Y here if you want to control the backlight of your display. Say Y here if you want to control the backlight of your display.
@ -707,7 +709,6 @@ config FB_NVIDIA_BACKLIGHT
config FB_RIVA config FB_RIVA
tristate "nVidia Riva support" tristate "nVidia Riva support"
depends on FB && PCI depends on FB && PCI
select FB_BACKLIGHT if FB_RIVA_BACKLIGHT
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT select FB_CFB_IMAGEBLIT
@ -747,6 +748,8 @@ config FB_RIVA_DEBUG
config FB_RIVA_BACKLIGHT config FB_RIVA_BACKLIGHT
bool "Support for backlight control" bool "Support for backlight control"
depends on FB_RIVA depends on FB_RIVA
depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_RIVA
select FB_BACKLIGHT
default y default y
help help
Say Y here if you want to control the backlight of your display. Say Y here if you want to control the backlight of your display.
@ -934,7 +937,6 @@ config FB_MATROX_MAVEN
config FB_RADEON config FB_RADEON
tristate "ATI Radeon display support" tristate "ATI Radeon display support"
depends on FB && PCI depends on FB && PCI
select FB_BACKLIGHT if FB_RADEON_BACKLIGHT
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT select FB_CFB_IMAGEBLIT
@ -960,6 +962,8 @@ config FB_RADEON_I2C
config FB_RADEON_BACKLIGHT config FB_RADEON_BACKLIGHT
bool "Support for backlight control" bool "Support for backlight control"
depends on FB_RADEON depends on FB_RADEON
depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_RADEON
select FB_BACKLIGHT
default y default y
help help
Say Y here if you want to control the backlight of your display. Say Y here if you want to control the backlight of your display.
@ -975,7 +979,6 @@ config FB_RADEON_DEBUG
config FB_ATY128 config FB_ATY128
tristate "ATI Rage128 display support" tristate "ATI Rage128 display support"
depends on FB && PCI depends on FB && PCI
select FB_BACKLIGHT if FB_ATY128_BACKLIGHT
select FB_IOMEM_HELPERS select FB_IOMEM_HELPERS
select FB_MACMODES if PPC_PMAC select FB_MACMODES if PPC_PMAC
help help
@ -989,6 +992,8 @@ config FB_ATY128
config FB_ATY128_BACKLIGHT config FB_ATY128_BACKLIGHT
bool "Support for backlight control" bool "Support for backlight control"
depends on FB_ATY128 depends on FB_ATY128
depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_ATY128
select FB_BACKLIGHT
default y default y
help help
Say Y here if you want to control the backlight of your display. Say Y here if you want to control the backlight of your display.
@ -999,7 +1004,6 @@ config FB_ATY
select FB_CFB_FILLRECT select FB_CFB_FILLRECT
select FB_CFB_COPYAREA select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT select FB_CFB_IMAGEBLIT
select FB_BACKLIGHT if FB_ATY_BACKLIGHT
select FB_IOMEM_FOPS select FB_IOMEM_FOPS
select FB_MACMODES if PPC select FB_MACMODES if PPC
select FB_ATY_CT if SPARC64 && PCI select FB_ATY_CT if SPARC64 && PCI
@ -1040,6 +1044,8 @@ config FB_ATY_GX
config FB_ATY_BACKLIGHT config FB_ATY_BACKLIGHT
bool "Support for backlight control" bool "Support for backlight control"
depends on FB_ATY depends on FB_ATY
depends on BACKLIGHT_CLASS_DEVICE=y || BACKLIGHT_CLASS_DEVICE=FB_ATY
select FB_BACKLIGHT
default y default y
help help
Say Y here if you want to control the backlight of your display. Say Y here if you want to control the backlight of your display.
@ -1528,6 +1534,7 @@ config FB_SH_MOBILE_LCDC
depends on FB && HAVE_CLK && HAS_IOMEM depends on FB && HAVE_CLK && HAS_IOMEM
depends on SUPERH || COMPILE_TEST depends on SUPERH || COMPILE_TEST
depends on FB_DEVICE depends on FB_DEVICE
depends on BACKLIGHT_CLASS_DEVICE
select FB_BACKLIGHT select FB_BACKLIGHT
select FB_DEFERRED_IO select FB_DEFERRED_IO
select FB_DMAMEM_HELPERS select FB_DMAMEM_HELPERS
@ -1793,6 +1800,7 @@ config FB_SSD1307
tristate "Solomon SSD1307 framebuffer support" tristate "Solomon SSD1307 framebuffer support"
depends on FB && I2C depends on FB && I2C
depends on GPIOLIB || COMPILE_TEST depends on GPIOLIB || COMPILE_TEST
depends on BACKLIGHT_CLASS_DEVICE
select FB_BACKLIGHT select FB_BACKLIGHT
select FB_SYSMEM_HELPERS_DEFERRED select FB_SYSMEM_HELPERS_DEFERRED
help help

View File

@ -183,9 +183,8 @@ config FB_SYSMEM_HELPERS_DEFERRED
select FB_SYSMEM_HELPERS select FB_SYSMEM_HELPERS
config FB_BACKLIGHT config FB_BACKLIGHT
tristate bool
depends on FB depends on FB
select BACKLIGHT_CLASS_DEVICE
config FB_MODE_HELPERS config FB_MODE_HELPERS
bool "Enable Video Mode Handling Helpers" bool "Enable Video Mode Handling Helpers"