linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
	javierm@redhat.com, arnd@arndb.de, deller@gmx.de,
	simona@ffwll.ch, airlied@gmail.com
Cc: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
	linux-staging@lists.linux.dev, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2 1/3] fbdev: Fix recursive dependencies wrt BACKLIGHT_CLASS_DEVICE
Date: Fri, 13 Dec 2024 09:05:37 +0100	[thread overview]
Message-ID: <5484d576-d63e-4166-85ea-0b508b0cb865@suse.de> (raw)
In-Reply-To: <8403f989-c1de-48c9-ab48-83c1abb9e6f2@csgroup.eu>

[-- Attachment #1: Type: text/plain, Size: 9476 bytes --]

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@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)

[-- Attachment #2: 0001-add-BACKLIGHT_CLASS_DEVICE-on-PPC-defconfigs.patch --]
[-- Type: text/x-patch, Size: 1226 bytes --]

From b0283396aeed19cef8e1340c05103929cb41faf6 Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann <tzimmermann@suse.de>
Date: Fri, 13 Dec 2024 09:02:41 +0100
Subject: [PATCH] add BACKLIGHT_CLASS_DEVICE on PPC defconfigs

---
 arch/powerpc/configs/pmac32_defconfig | 1 +
 arch/powerpc/configs/ppc6xx_defconfig | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 57ded82c2840..e8b3f67bf3f5 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_defconfig
@@ -208,6 +208,7 @@ CONFIG_FB_ATY=y
 CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_3DFX=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_VGA_CONSOLE is not set
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_LOGO=y
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index 4d77e17541e9..ca0c90e95837 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -716,6 +716,7 @@ CONFIG_FB_TRIDENT=m
 CONFIG_FB_SM501=m
 CONFIG_FB_IBM_GXT4500=y
 CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
 CONFIG_LOGO=y
-- 
2.47.1


  reply	other threads:[~2024-12-13  8:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-12 10:04 [PATCH v2 0/3] drm,fbdev: Fix module dependencies Thomas Zimmermann
2024-12-12 10:04 ` [PATCH v2 1/3] fbdev: Fix recursive dependencies wrt BACKLIGHT_CLASS_DEVICE Thomas Zimmermann
2024-12-12 18:44   ` Helge Deller
2024-12-12 21:04     ` Arnd Bergmann
2024-12-12 23:24       ` Jani Nikula
2024-12-12 23:56         ` Helge Deller
2024-12-13  7:26           ` Thomas Zimmermann
2024-12-16 14:41             ` Simona Vetter
2024-12-13  7:28       ` Thomas Zimmermann
2024-12-13  7:44   ` Christophe Leroy
2024-12-13  8:05     ` Thomas Zimmermann [this message]
2024-12-13  8:33       ` Christophe Leroy
2024-12-13  8:35         ` Thomas Zimmermann
2024-12-13  8:41           ` Christophe Leroy
2024-12-13  8:41         ` Thomas Zimmermann
2024-12-13 10:15           ` Christophe Leroy
2024-12-13 10:24             ` Thomas Zimmermann
2024-12-22  6:25   ` Helge Deller
2024-12-12 10:04 ` [PATCH v2 2/3] drm/fbdev: Select FB_CORE dependency for fbdev on DMA and TTM Thomas Zimmermann
2024-12-13  7:40   ` LEROY Christophe
2024-12-13  7:43     ` Christophe Leroy
2024-12-12 10:04 ` [PATCH v2 3/3] drm: rework FB_CORE dependency Thomas Zimmermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5484d576-d63e-4166-85ea-0b508b0cb865@suse.de \
    --to=tzimmermann@suse.de \
    --cc=airlied@gmail.com \
    --cc=arnd@arndb.de \
    --cc=christophe.leroy@csgroup.eu \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=javierm@redhat.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=simona@ffwll.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).