]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
platform/x86: touchscreen_dmi: Add quirk for y-inverted Goodix touchscreen on SUPI S10
authorHans de Goede <johannes.goede@oss.qualcomm.com>
Tue, 17 Feb 2026 13:23:46 +0000 (14:23 +0100)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 23 Feb 2026 14:27:22 +0000 (16:27 +0200)
The touchscreen on the SUPI S10 tablet reports inverted Y coordinates,
causing touch input to be mirrored vertically relative to the display.

Add a quirk to set the "touchscreen-inverted-y" boolean device-property
on the touchscreen device, so that the goodix_ts driver will fixup
the coordinates.

Reported-by: Yajat Kumar <yajatapps3@gmail.com>
Closes: https://lore.kernel.org/linux-input/20251230221639.582406-1-yajatapps3@gmail.com/
Tested-by: Yajat Kumar <yajatapps3@gmail.com>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Link: https://patch.msgid.link/20260217132346.34535-1-johannes.goede@oss.qualcomm.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/touchscreen_dmi.c

index bdc19cd8d3edf725412f7523c3a48279bf957cee..d83c387821ea1cf2cefeb706726727415d441c0b 100644 (file)
@@ -410,6 +410,16 @@ static const struct ts_dmi_data gdix1002_upside_down_data = {
        .properties     = gdix1001_upside_down_props,
 };
 
+static const struct property_entry gdix1001_y_inverted_props[] = {
+       PROPERTY_ENTRY_BOOL("touchscreen-inverted-y"),
+       { }
+};
+
+static const struct ts_dmi_data gdix1001_y_inverted_data = {
+       .acpi_name      = "GDIX1001",
+       .properties     = gdix1001_y_inverted_props,
+};
+
 static const struct property_entry gp_electronic_t701_props[] = {
        PROPERTY_ENTRY_U32("touchscreen-size-x", 960),
        PROPERTY_ENTRY_U32("touchscreen-size-y", 640),
@@ -1658,6 +1668,14 @@ const struct dmi_system_id touchscreen_dmi_table[] = {
                        DMI_MATCH(DMI_PRODUCT_SKU, "PN20170413488"),
                },
        },
+       {
+               /* SUPI S10 */
+               .driver_data = (void *)&gdix1001_y_inverted_data,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "SUPI"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "S10"),
+               },
+       },
        {
                /* Techbite Arc 11.6 */
                .driver_data = (void *)&techbite_arc_11_6_data,