Re: ASUS FX505DT wmi backlight/amdgpu backlight conflict

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thank you for your report. Unfortunately I have no such device to test.
Nevertheless, I Cc'ed to people who may share their thoughts about the topic.

Note, you should Cc maintainers of subsystem and driver in question in
the first place.

On Thu, Oct 24, 2019 at 11:50 AM Kristian Angelov <kristiana2000@xxxxxx> wrote:
>
> Hello,
>
>
> I own an ASUS FX505DT (integrated vega amdgpu), and the backlight control seems
> to be conflicting with the asus-nb-wmi driver.
>
>
> Upon booting normally with a standard kernel 5.3.7 on Arch, the asus-nb-wmi
> driver gets loaded properly. It does not create any backlight devices in
> /sys/class/backlight. However, ACPI-video seems to fail to get created and I get
> This in my systemd log:
>
>
> systemd-backlight[771]: Failed to get backlight or LED device 'backlight:acpi_vi
> deo0': No such device
>
>
> This implies that acpi_video0 gets registered by systemd but fails early on
> during the boot process. Regardless, backlight seems to work fine using the
> hotkeys as the only device present in /sys/class/backlight is amdgpu_bl0.
>
>
> As any sane person, I want to remove those nasty fail messages from my log. with
> the solution being to set acpi_backlight=vendor in my boot flags, which stops
> acpi_video0 from being registered and removes the log, however asus-nb-wmi kicks
> in and registers it's own backlight device. There are two backlight devices
> currently active amdgpu_bl0 and asus-nb-wmi and the latter does not control the
> backlight but seems to take priority in the keybinds.
>
>
> I looked throught the driver and implemented the following:
>
>
> index b361c73..e0ca145 100644
> --- a/drivers/platform/x86/asus-nb-wmi.c
> +++ b/drivers/platform/x86/asus-nb-wmi.c
> @@ -105,6 +105,11 @@ static struct quirk_entry quirk_asus_x550lb = {
>         .xusb2pr = 0x01D9,
>  };
>
> +static struct quirk_entry quirk_asus_fx505dt = {
> +       .wmi_backlight_power = true,
> +       .wmi_backlight_set_devstate = true,
> +};
> +
>  static struct quirk_entry quirk_asus_forceals = {
>         .wmi_backlight_set_devstate = true,
>         .wmi_force_als_set = true,
> @@ -411,6 +416,15 @@ static const struct dmi_system_id asus_quirks[] = {
>                 },
>                 .driver_data = &quirk_asus_forceals,
>         },
> +       {
> +               .callback = dmi_matched,
> +               .ident = "ASUSTeK COMPUTER INC. FX505DT TESTING",
> +               .matches = {
> +                       DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
> +                       DMI_MATCH(DMI_PRODUCT_NAME, "FX505DT"),
> +               },
> +               .driver_data = &quirk_asus_fx505dt,
> +       },
>         {},
>  };
>
>
> where wmi_backlight_power is supposed to prevent the creation (or use) of this
> new backlight device. However this does not seem to be the case. So far the only
> way the backlight works is with acpi_backlight not defined at all. If I set it
> to anything, even video, it creates another worthless backlight device. I do
> believe this is either a bug in asus-wmi and wmi_backlight_power doing not what
> it's supposed to. Either that or I am mistaken as to how any of this works, and
> would like help with implementing my device.



-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux