[PATCH 0/6][SRU][OEM-6.0] both dell_backlight and nvidia_0 backlight interface appear, and can't adjust the display brightness
AceLan Kao
acelan.kao at canonical.com
Thu Apr 27 07:41:10 UTC 2023
From: "Chia-Lin Kao (AceLan)" <acelan.kao at canonical.com>
BugLink: https://launchpad.net/bugs/2017774
[Impact]
When switched to discrete mode in the BIOS, nvidia driver will create its
own backlight interface(nvidia_0) to control the backlight, but at the
same time dell-laptop creates its own backlight interface(dell_backlight),
too. In discrete mode, dell_backlight interface doesn't work, and it leads
to gnome chooses the wrong interface(dell_backlight) to control the
backlight and then leads to the issue.
[Fix]
The acpi_video_backlight_use_native() helper function is introduced after
v6.1 and nvidia driver will call this function if kernel provides it. This
helper tells video_detect module that nvidia controls the backlight, so
that dell-laptop won't create another backlight interface when it's loaded
Below commits are all from v6.1-rc1
fb1836c91317 ACPI: video: Prefer native over vendor
a5df42521f32 ACPI: video: Simplify __acpi_video_get_backlight_type()454d61a56d5e ACPI: video: Make acpi_video_backlight_use_native() always return true
b39be9f441f9 ACPI: video: Refactor acpi_video_get_backlight_type() a bit
a2fc3c899bb0 ACPI: video: Drop backlight_device_get_by_type() call from acpi_video_get_backlight_type()
2600bfa3df99 ACPI: video: Add acpi_video_backlight_use_native() helper
[Test]
Verified on the target machine and confirmed dell_backlight interface is
not generated.
[Where problem could occur]
All changes are in __acpi_video_get_backlight_type() function and to make
it smarter to decide which type of backlight interface should be created.
The final result is pretty similar to the latest mainline version, if it
introduce any regression we can add quirk to list those misjudged machines.
Hans de Goede (6):
ACPI: video: Add acpi_video_backlight_use_native() helper
ACPI: video: Drop backlight_device_get_by_type() call from
acpi_video_get_backlight_type()
ACPI: video: Refactor acpi_video_get_backlight_type() a bit
ACPI: video: Make acpi_video_backlight_use_native() always return true
ACPI: video: Simplify __acpi_video_get_backlight_type()
ACPI: video: Prefer native over vendor
drivers/acpi/video_detect.c | 58 ++++++++++++++++++++++++++-----------
include/acpi/video.h | 5 ++++
2 files changed, 46 insertions(+), 17 deletions(-)
--
2.34.1
More information about the kernel-team
mailing list