Re: ACPI Video Driver creates backlight on desktop board

From: Randy Dunlap
Date: Mon Mar 30 2020 - 17:25:23 EST


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;
}

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


> 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


--
~Randy