Re: ACPI Video Driver creates backlight on desktop board

From: Hans de Goede
Date: Mon Mar 30 2020 - 17:32:59 EST


Hi,

On 3/30/20 11:25 PM, Randy Dunlap wrote:
On 3/30/20 1:51 PM, Hans de Goede wrote:
Hi,

On 3/29/20 11:36 AM, Paul Menzel wrote:
Dear Linux folks,


On the MSI desktop board [1]

ÂÂÂÂ [ÂÂÂ 0.000000] DMI: Micro-Star International Co., Ltd. MS-7A37/B350M MORTAR (MS-7A37), BIOS 1.MR 12/02/2019

with an AMD Ryzen 3 2200G with Radeon Vega Graphics, the ACPI Video Driver `video` is loaded and creates a backlight device.

ÂÂÂÂ $ readlink -f /sys/class/backlight/acpi_video0
ÂÂÂÂ /sys/devices/pci0000:00/0000:00:08.1/0000:26:00.0/backlight/acpi_video0

I wonder what the driver is used for as the AMDGPU driver exists for the graphics device.

Backlight on x86 hw is a bit of a mess, there is an ACPI standard for accessing it
and with older (Windows XP era) laptops that is the interface which usually works,
then there are a bunch of vendor specific SMBIOS or WMI backlight interfaces and
then there is the option of directly accessing the hardware as the amdgpu driver
is doing.

We have a bunch of heuristics to avoid the acpi_video driver registering a
backlight interface when it should not, either because the direct hw access
should be used instead; or because there simply is no builtin LCD panel and thus
no backlight to control.

These heuristics are failing on your board.

If itâs useful, is there a way to prevent the backlight interface from getting created?

You can pass "acpi_backlight=ignore" on the kernel commandline to disable the

Hi Hans,
Should that be "acpi_backlight=none"? I don't see 'ignore' allowed here:

static void acpi_video_parse_cmdline(void)
{
if (!strcmp("vendor", acpi_video_backlight_string))
acpi_backlight_cmdline = acpi_backlight_vendor;
if (!strcmp("video", acpi_video_backlight_string))
acpi_backlight_cmdline = acpi_backlight_video;
if (!strcmp("native", acpi_video_backlight_string))
acpi_backlight_cmdline = acpi_backlight_native;
if (!strcmp("none", acpi_video_backlight_string))
acpi_backlight_cmdline = acpi_backlight_none;
}

Yes you are right that should be "acpi_backlight=none".

and Documentation/admin-guide/kernel-parameters.txt could stand to be updated
with a few of those options.

Ack, I've put this on my (much too long) TODO list. Feel free to
beat me to it.

Regards,

Hans






interface, this will stop e.g. gnome from showing a non working brightness
slider in its top right system menu.

If this works you can make this permanent and avoid other users from having to
do the same thing by writing a patch adding a quirk for this like this one:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d21a91629f4b8e794fc4c0e0c17c85cedf1d806c