diff mbox series

[3/3,v2] i915: fix backlight configuration issue

Message ID 20211027132732.3993279-3-arnd@kernel.org
State New
Headers show
Series [1/3] fbdev: rework FB_DDC dependencies | expand

Commit Message

Arnd Bergmann Oct. 27, 2021, 1:27 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>


The i915 driver can use the backlight subsystem as an option, and usually
selects it when CONFIG_ACPI is set. However it is possible to configure
a kernel with modular backlight classdev support and a built-in i915
driver, which leads to a linker error:

drivers/gpu/drm/i915/display/intel_panel.o: In function `intel_backlight_device_register':
intel_panel.c:(.text+0x2f58): undefined reference to `backlight_device_register'
drivers/gpu/drm/i915/display/intel_panel.o: In function `intel_backlight_device_unregister':
intel_panel.c:(.text+0x2fe4): undefined reference to `backlight_device_unregister'

Change i915 to just 'depends on' for both BACKLIGHT_CLASS_DEVICE
and ACPI_VIDEO, which avoids a lot of the problems.

Link: https://lore.kernel.org/all/20200108140227.3976563-1-arnd@arndb.de/
Link: https://lore.kernel.org/all/20200417155553.675905-1-arnd@arndb.de/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
This change depends on cleaning up drivers/video/fbdev to no longer
'select' I2C and BACKLIGHT_CLASS_DEVICE, otherwise it causes
dependency loops.
---
 drivers/gpu/drm/i915/Kconfig | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

-- 
2.29.2

Comments

Jani Nikula Oct. 27, 2021, 1:41 p.m. UTC | #1
On Wed, 27 Oct 2021, Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>

>

> The i915 driver can use the backlight subsystem as an option, and usually

> selects it when CONFIG_ACPI is set. However it is possible to configure

> a kernel with modular backlight classdev support and a built-in i915

> driver, which leads to a linker error:

>

> drivers/gpu/drm/i915/display/intel_panel.o: In function `intel_backlight_device_register':

> intel_panel.c:(.text+0x2f58): undefined reference to `backlight_device_register'

> drivers/gpu/drm/i915/display/intel_panel.o: In function `intel_backlight_device_unregister':

> intel_panel.c:(.text+0x2fe4): undefined reference to `backlight_device_unregister'

>

> Change i915 to just 'depends on' for both BACKLIGHT_CLASS_DEVICE

> and ACPI_VIDEO, which avoids a lot of the problems.

>

> Link: https://lore.kernel.org/all/20200108140227.3976563-1-arnd@arndb.de/

> Link: https://lore.kernel.org/all/20200417155553.675905-1-arnd@arndb.de/

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

> This change depends on cleaning up drivers/video/fbdev to no longer

> 'select' I2C and BACKLIGHT_CLASS_DEVICE, otherwise it causes

> dependency loops.

> ---

>  drivers/gpu/drm/i915/Kconfig | 6 ++----

>  1 file changed, 2 insertions(+), 4 deletions(-)

>

> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig

> index 84b6fc70cbf5..f427e6d50d9b 100644

> --- a/drivers/gpu/drm/i915/Kconfig

> +++ b/drivers/gpu/drm/i915/Kconfig

> @@ -3,6 +3,8 @@ config DRM_I915

>  	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"

>  	depends on DRM

>  	depends on X86 && PCI

> +	depends on ACPI_VIDEO || !ACPI

> +	depends on BACKLIGHT_CLASS_DEVICE || !BACKLIGHT_CLASS_DEVICE

>  	select INTEL_GTT

>  	select INTERVAL_TREE

>  	# we need shmfs for the swappable backing store, and in particular

> @@ -16,10 +18,6 @@ config DRM_I915

>  	select IRQ_WORK

>  	# i915 depends on ACPI_VIDEO when ACPI is enabled

>  	# but for select to work, need to select ACPI_VIDEO's dependencies, ick


The comment needs updating as well.

Other than that,

Acked-by: Jani Nikula <jani.nikula@intel.com>


on the series.

> -	select BACKLIGHT_CLASS_DEVICE if ACPI

> -	select INPUT if ACPI

> -	select ACPI_VIDEO if ACPI

> -	select ACPI_BUTTON if ACPI

>  	select SYNC_FILE

>  	select IOSF_MBI

>  	select CRC32


-- 
Jani Nikula, Intel Open Source Graphics Center
Arnd Bergmann Oct. 27, 2021, 1:48 p.m. UTC | #2
On Wed, Oct 27, 2021 at 3:41 PM Jani Nikula <jani.nikula@linux.intel.com> wrote:
> > @@ -16,10 +18,6 @@ config DRM_I915

> >       select IRQ_WORK

> >       # i915 depends on ACPI_VIDEO when ACPI is enabled

> >       # but for select to work, need to select ACPI_VIDEO's dependencies, ick

>

> The comment needs updating as well.


Right, I've removed that comment now.

> Other than that,

>

> Acked-by: Jani Nikula <jani.nikula@intel.com>

>

> on the series.


Thanks!

         Arnd
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 84b6fc70cbf5..f427e6d50d9b 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -3,6 +3,8 @@  config DRM_I915
 	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
 	depends on DRM
 	depends on X86 && PCI
+	depends on ACPI_VIDEO || !ACPI
+	depends on BACKLIGHT_CLASS_DEVICE || !BACKLIGHT_CLASS_DEVICE
 	select INTEL_GTT
 	select INTERVAL_TREE
 	# we need shmfs for the swappable backing store, and in particular
@@ -16,10 +18,6 @@  config DRM_I915
 	select IRQ_WORK
 	# i915 depends on ACPI_VIDEO when ACPI is enabled
 	# but for select to work, need to select ACPI_VIDEO's dependencies, ick
-	select BACKLIGHT_CLASS_DEVICE if ACPI
-	select INPUT if ACPI
-	select ACPI_VIDEO if ACPI
-	select ACPI_BUTTON if ACPI
 	select SYNC_FILE
 	select IOSF_MBI
 	select CRC32