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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 28 Mar 2022 06:06:06 +0000 (08:06 +0200)
commit c844d22fe0c0b37dc809adbdde6ceb6462c43acf upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/video_detect.c

index ec2f77a471501da8eb3e94d5944eb0afd342f63d..2837b2f982135fe7f80ac6c699af6deab8ff67df 100644 (file)
@@ -135,6 +135,81 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
                DMI_MATCH(DMI_PRODUCT_NAME, "UL30A"),
                },
        },
+       /*
+        * 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"),
+               },
+       },
 
        /*
         * These models have a working acpi_video backlight control, and using