Re: ACPI Video Driver creates backlight on desktop board

From: Randy Dunlap
Date: Mon Mar 30 2020 - 20:13:48 EST


On 3/30/20 2:32 PM, Hans de Goede wrote:
> 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.

Sure, I'll send a patch shortly.

--
~Randy