[PATCH v2 1/3] fbdev: Fix recursive dependencies wrt BACKLIGHT_CLASS_DEVICE
Thomas Zimmermann
tzimmermann at suse.de
Fri Dec 13 19:05:37 AEDT 2024
Hi
Am 13.12.24 um 08:44 schrieb Christophe Leroy:
>
>
> Le 12/12/2024 à 11:04, Thomas Zimmermann a écrit :
>> 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.
>>
>> v2:
>> - s/BACKLIGHT_DEVICE_CLASS/BACKLIGHT_CLASS_DEVICE (Helge)
>> - Fix fbdev driver-dependency corner case (Arnd)
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
>> ---
>> drivers/auxdisplay/Kconfig | 2 +-
>> drivers/macintosh/Kconfig | 1 +
>> drivers/staging/fbtft/Kconfig | 1 +
>> drivers/video/fbdev/Kconfig | 18 +++++++++++++-----
>> drivers/video/fbdev/core/Kconfig | 3 +--
>> 5 files changed, 17 insertions(+), 8 deletions(-)
>
> Build fails which pmac32_defconfig :
>
> LD .tmp_vmlinux1
> powerpc64-linux-ld: drivers/macintosh/via-pmu-backlight.o: in function
> `pmu_backlight_init':
> via-pmu-backlight.c:(.init.text+0xc0): undefined reference to
> `backlight_device_register'
> make[2]: *** [scripts/Makefile.vmlinux:77: vmlinux] Error 1
> make[1]: *** [/home/chleroy/linux-powerpc/Makefile:1225: vmlinux] Error 2
The attached patch selects backlight support in the defconfigs that also
have PMAC_BACKLIGHT=y. Can you please apply it on top of the patchset
and report on the results?
Best regards
Thomas
>
>
>>
>> diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig
>> index 21545ffba065..8934e6ad5772 100644
>> --- a/drivers/auxdisplay/Kconfig
>> +++ b/drivers/auxdisplay/Kconfig
>> @@ -489,7 +489,7 @@ config IMG_ASCII_LCD
>> config HT16K33
>> 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 INPUT_MATRIXKMAP
>> select FB_BACKLIGHT
>> diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig
>> index fb38f684444f..bf3824032d61 100644
>> --- a/drivers/macintosh/Kconfig
>> +++ b/drivers/macintosh/Kconfig
>> @@ -120,6 +120,7 @@ config PMAC_MEDIABAY
>> config PMAC_BACKLIGHT
>> bool "Backlight control for LCD screens"
>> depends on PPC_PMAC && ADB_PMU && FB = y && (BROKEN || !PPC64)
>> + depends on BACKLIGHT_CLASS_DEVICE
>> select FB_BACKLIGHT
>> help
>> Say Y here to enable Macintosh specific extensions of the
>> generic
>> diff --git a/drivers/staging/fbtft/Kconfig
>> b/drivers/staging/fbtft/Kconfig
>> index 77ab44362f16..dcf6a70455cc 100644
>> --- a/drivers/staging/fbtft/Kconfig
>> +++ b/drivers/staging/fbtft/Kconfig
>> @@ -3,6 +3,7 @@ menuconfig FB_TFT
>> tristate "Support for small TFT LCD display modules"
>> depends on FB && SPI
>> depends on FB_DEVICE
>> + depends on BACKLIGHT_CLASS_DEVICE
>> depends on GPIOLIB || COMPILE_TEST
>> select FB_BACKLIGHT
>> select FB_SYSMEM_HELPERS_DEFERRED
>> diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
>> index de035071fedb..55c6686f091e 100644
>> --- a/drivers/video/fbdev/Kconfig
>> +++ b/drivers/video/fbdev/Kconfig
>> @@ -649,6 +649,7 @@ config FB_S1D13XXX
>> config FB_ATMEL
>> tristate "AT91 LCD Controller support"
>> depends on FB && OF && HAVE_CLK && HAS_IOMEM
>> + depends on BACKLIGHT_CLASS_DEVICE
>> depends on HAVE_FB_ATMEL || COMPILE_TEST
>> select FB_BACKLIGHT
>> select FB_IOMEM_HELPERS
>> @@ -660,7 +661,6 @@ config FB_ATMEL
>> config FB_NVIDIA
>> tristate "nVidia Framebuffer Support"
>> depends on FB && PCI
>> - select FB_BACKLIGHT if FB_NVIDIA_BACKLIGHT
>> select FB_CFB_FILLRECT
>> select FB_CFB_COPYAREA
>> select FB_CFB_IMAGEBLIT
>> @@ -700,6 +700,8 @@ config FB_NVIDIA_DEBUG
>> config FB_NVIDIA_BACKLIGHT
>> bool "Support for backlight control"
>> depends on FB_NVIDIA
>> + depends on BACKLIGHT_CLASS_DEVICE=y ||
>> BACKLIGHT_CLASS_DEVICE=FB_NVIDIA
>> + select FB_BACKLIGHT
>> default y
>> help
>> Say Y here if you want to control the backlight of your display.
>> @@ -707,7 +709,6 @@ config FB_NVIDIA_BACKLIGHT
>> config FB_RIVA
>> tristate "nVidia Riva support"
>> depends on FB && PCI
>> - select FB_BACKLIGHT if FB_RIVA_BACKLIGHT
>> select FB_CFB_FILLRECT
>> select FB_CFB_COPYAREA
>> select FB_CFB_IMAGEBLIT
>> @@ -747,6 +748,8 @@ config FB_RIVA_DEBUG
>> config FB_RIVA_BACKLIGHT
>> bool "Support for backlight control"
>> depends on FB_RIVA
>> + depends on BACKLIGHT_CLASS_DEVICE=y ||
>> BACKLIGHT_CLASS_DEVICE=FB_RIVA
>> + select FB_BACKLIGHT
>> default y
>> help
>> Say Y here if you want to control the backlight of your display.
>> @@ -934,7 +937,6 @@ config FB_MATROX_MAVEN
>> config FB_RADEON
>> tristate "ATI Radeon display support"
>> depends on FB && PCI
>> - select FB_BACKLIGHT if FB_RADEON_BACKLIGHT
>> select FB_CFB_FILLRECT
>> select FB_CFB_COPYAREA
>> select FB_CFB_IMAGEBLIT
>> @@ -960,6 +962,8 @@ config FB_RADEON_I2C
>> config FB_RADEON_BACKLIGHT
>> bool "Support for backlight control"
>> depends on FB_RADEON
>> + depends on BACKLIGHT_CLASS_DEVICE=y ||
>> BACKLIGHT_CLASS_DEVICE=FB_RADEON
>> + select FB_BACKLIGHT
>> default y
>> help
>> Say Y here if you want to control the backlight of your display.
>> @@ -975,7 +979,6 @@ config FB_RADEON_DEBUG
>> config FB_ATY128
>> tristate "ATI Rage128 display support"
>> depends on FB && PCI
>> - select FB_BACKLIGHT if FB_ATY128_BACKLIGHT
>> select FB_IOMEM_HELPERS
>> select FB_MACMODES if PPC_PMAC
>> help
>> @@ -989,6 +992,8 @@ config FB_ATY128
>> config FB_ATY128_BACKLIGHT
>> bool "Support for backlight control"
>> depends on FB_ATY128
>> + depends on BACKLIGHT_CLASS_DEVICE=y ||
>> BACKLIGHT_CLASS_DEVICE=FB_ATY128
>> + select FB_BACKLIGHT
>> default y
>> help
>> 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_COPYAREA
>> select FB_CFB_IMAGEBLIT
>> - select FB_BACKLIGHT if FB_ATY_BACKLIGHT
>> select FB_IOMEM_FOPS
>> select FB_MACMODES if PPC
>> select FB_ATY_CT if SPARC64 && PCI
>> @@ -1040,6 +1044,8 @@ config FB_ATY_GX
>> config FB_ATY_BACKLIGHT
>> bool "Support for backlight control"
>> depends on FB_ATY
>> + depends on BACKLIGHT_CLASS_DEVICE=y ||
>> BACKLIGHT_CLASS_DEVICE=FB_ATY
>> + select FB_BACKLIGHT
>> default y
>> help
>> 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 SUPERH || COMPILE_TEST
>> depends on FB_DEVICE
>> + depends on BACKLIGHT_CLASS_DEVICE
>> select FB_BACKLIGHT
>> select FB_DEFERRED_IO
>> select FB_DMAMEM_HELPERS
>> @@ -1793,6 +1800,7 @@ config FB_SSD1307
>> tristate "Solomon SSD1307 framebuffer support"
>> depends on FB && I2C
>> depends on GPIOLIB || COMPILE_TEST
>> + depends on BACKLIGHT_CLASS_DEVICE
>> select FB_BACKLIGHT
>> select FB_SYSMEM_HELPERS_DEFERRED
>> help
>> diff --git a/drivers/video/fbdev/core/Kconfig
>> b/drivers/video/fbdev/core/Kconfig
>> index 0ab8848ba2f1..d554d8c543d4 100644
>> --- a/drivers/video/fbdev/core/Kconfig
>> +++ b/drivers/video/fbdev/core/Kconfig
>> @@ -183,9 +183,8 @@ config FB_SYSMEM_HELPERS_DEFERRED
>> select FB_SYSMEM_HELPERS
>> config FB_BACKLIGHT
>> - tristate
>> + bool
>> depends on FB
>> - select BACKLIGHT_CLASS_DEVICE
>> config FB_MODE_HELPERS
>> bool "Enable Video Mode Handling Helpers"
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-add-BACKLIGHT_CLASS_DEVICE-on-PPC-defconfigs.patch
Type: text/x-patch
Size: 1226 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20241213/8f7e448d/attachment.bin>
More information about the Linuxppc-dev
mailing list