Re: ASUS FX505DT wmi backlight/amdgpu backlight conflict

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

 



Hi,

On 11/7/19 5:59 PM, Andy Shevchenko wrote:
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.

Right, so what is happening here is that during boot the video (acpi_video)
module loads first, registers /sys/class/backlight/acpi_video0 then amdgpu
loads, registers its own native backlight driver which has a higher prio and then
the acpi video-detect.c code detects this and unregisters the /sys/class/backlight/acpi_video0
device, so the device is briefly there which causes this ugly but harmless
systemd error.

Passing acpi_backlight=native on the kernel commandline likely will work
around this. Note please do NOT submit a patch with a quirk for this, we
need to come up with a generic fix for this ordering problem (which requires
someone with a significant amount of time to sit down and look into this).

Regards,

Hans




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.








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

  Powered by Linux