Thread (22 messages) 22 messages, 7 authors, 2024-12-22

Re: [PATCH v2 1/3] fbdev: Fix recursive dependencies wrt BACKLIGHT_CLASS_DEVICE

From: Thomas Zimmermann <tzimmermann@suse.de>
Date: 2024-12-13 08:05:41
Also in: dri-devel, linux-fbdev, linux-staging

Hi


Am 13.12.24 um 08:44 schrieb Christophe Leroy:

Le 12/12/2024 à 11:04, Thomas Zimmermann a écrit :
quoted
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@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
quoted
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)

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help