ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
authorWerner Sembach <wse@tuxedocomputers.com>
Tue, 15 Mar 2022 19:02:28 +0000 (20:02 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 17 Mar 2022 13:29:07 +0000 (14:29 +0100)
Clevo NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2 have both a working
native and video interface. However the default detection mechanism first
registers the video interface before unregistering it again and switching
to the native interface during boot. This results in a dangling SBIOS
request for backlight change for some reason, causing the backlight to
switch to ~2% once per boot on the first power cord connect or disconnect
event. Setting the native interface explicitly circumvents this buggy
behaviour by avoiding the unregistering process.

Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/video_detect.c

index 4f64713e9917b6b01e601622c97c87eae1e61ce2..becc198e4c2242c94375ab4be8ef8aa50c07df9c 100644 (file)
@@ -415,6 +415,81 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
                DMI_MATCH(DMI_PRODUCT_NAME, "GA503"),
                },
        },
+       /*
+        * Clevo NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2 have both a
+        * working native and video interface. However the default detection
+        * mechanism first registers the video interface before unregistering
+        * it again and switching to the native interface during boot. This
+        * results in a dangling SBIOS request for backlight change for some
+        * reason, causing the backlight to switch to ~2% once per boot on the
+        * first power cord connect or disconnect event. Setting the native
+        * interface explicitly circumvents this buggy behaviour, by avoiding
+        * the unregistering process.
+        */
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xRU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xRU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xRU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xRU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xRU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xNU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xNU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "Clevo NL5xNU",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+               DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"),
+               },
+       },
 
        /*
         * Desktops which falsely report a backlight and which our heuristics