ACPI: video: Force backlight native for some TongFang devices
authorWerner Sembach <wse@tuxedocomputers.com>
Thu, 7 Jul 2022 18:09:52 +0000 (20:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Aug 2022 11:07:50 +0000 (13:07 +0200)
commit c752089f7cf5b5800c6ace4cdd1a8351ee78a598 upstream.

The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10,
Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo
NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2:
They have 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>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
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 7b9793c..3021254 100644 (file)
@@ -484,7 +484,56 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
                DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"),
                },
        },
-
+       /*
+        * The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10,
+        * Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo
+        * NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description
+        * above.
+        */
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF5PU1G",
+       .matches = {
+               DMI_MATCH(DMI_BOARD_NAME, "PF5PU1G"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF4NU1F",
+       .matches = {
+               DMI_MATCH(DMI_BOARD_NAME, "PF4NU1F"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF4NU1F",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "PULSE1401"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF5NU1G",
+       .matches = {
+               DMI_MATCH(DMI_BOARD_NAME, "PF5NU1G"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF5NU1G",
+       .matches = {
+               DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+               DMI_MATCH(DMI_BOARD_NAME, "PULSE1501"),
+               },
+       },
+       {
+       .callback = video_detect_force_native,
+       .ident = "TongFang PF5LUXG",
+       .matches = {
+               DMI_MATCH(DMI_BOARD_NAME, "PF5LUXG"),
+               },
+       },
        /*
         * Desktops which falsely report a backlight and which our heuristics
         * for this do not catch.