drm/i915: Add invert-brightness quirk for Thundersoft TST178 tablet
authorHans de Goede <hdegoede@redhat.com>
Fri, 21 Feb 2020 17:29:27 +0000 (18:29 +0100)
committerHans de Goede <hdegoede@redhat.com>
Wed, 4 Mar 2020 15:54:36 +0000 (16:54 +0100)
The Thundersoft TST178 tablet uses a DSI panel with an external PWM
controller (as all DSI panels do). But unlike other DSI panels a duty-cycle
of 100% turns the backlight off and 0% sets it to maximum brightness.

I've checked the VBT and there is a BDB_LVDS_BACKLIGHT section, but
it does not set the active_low_pwm flag. This tablet re-uses the main
PCI vendor and product ids for the subsystem ids, so I see no other option
then to add a DMI based quirk to fix this.

Note that the PWM backlight code in intel_panel.c currently does not honor
the vbt.active_low_pwm flag, but that does not matter in this case.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200221172927.510027-2-hdegoede@redhat.com
drivers/gpu/drm/i915/display/intel_quirks.c

index 9d235d2..46beb15 100644 (file)
@@ -82,6 +82,16 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
                                            DMI_MATCH(DMI_PRODUCT_NAME, ""),
                                },
                        },
+                       {
+                               .callback = intel_dmi_reverse_brightness,
+                               .ident = "Thundersoft TST178 tablet",
+                               /* DMI strings are too generic, also match on BIOS date */
+                               .matches = {DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+                                           DMI_EXACT_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
+                                           DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "To be filled by O.E.M."),
+                                           DMI_EXACT_MATCH(DMI_BIOS_DATE, "04/15/2014"),
+                               },
+                       },
                        { }  /* terminating entry */
                },
                .hook = quirk_invert_brightness,