lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPrYeK6P1kmeocg9Bt6pzoxzc+GumK4P=_asfHxVzqw5uhVkBw@mail.gmail.com>
Date: Sun, 18 Jan 2026 18:41:44 -0500
From: YAJAT APPS <yajatapps3@...il.com>
To: Hans de Goede <hansg@...nel.org>
Cc: Dmitry Torokhov <dmitry.torokhov@...il.com>, 
	"open list:GOODIX TOUCHSCREEN" <linux-input@...r.kernel.org>, open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] Input: goodix - fix inverted Y coordinate on SUPI S10

Subject: Re: [PATCH] touchscreen-dmi quirk for SUPI S10

Hi Hans,

I’ve tested the attached patch on the SUPI S10.

The touchscreen uses ACPI HID GDIX1001, so no change is needed there.
With the patch applied, the Y axis is no longer inverted and touch
input now matches the display orientation correctly.
You can add:

Tested-by: Yajat Kumar <yajatapps3@...il.com>

Thanks for the quick fix and explanation.

Regards,
Yajat Kumar


On Sun, Jan 11, 2026 at 4:30 PM Hans de Goede <hansg@...nel.org> wrote:
>
> Hi Yajat,
>
> On 30-Dec-25 23:16, Yajat Kumar wrote:
> > The touchscreen on the SUPI S10 reports inverted Y coordinates, causing
> > touch input to be mirrored vertically relative to the display.
> >
> > Add a DMI-based quirk to invert the Y coordinate on this device so that
> > touch input matches the display orientation.
> >
> > Tested on SUPI S10 tablet with Goodix touchscreen controller.
> >
> > Signed-off-by: Yajat Kumar <yajatapps3@...il.com>
>
> Thank you for your patch. This kind of quirks really belong
> in drivers/platform/x86/touchscreen_dmi.c instead of in individual
> touchscreen drivers.
>
> The inverted_x_screen[] DMI quirk is a left-over from before we
> moved these quirks to touchscreen_dmi.c and unfortunately we cannot
> move this because we've not been able to find someone to test this.
>
> I've attached a patch which should fix the issue using
> touchscreen_dmi.c . Note you may need to change the GDIX1001 in
> the patch to GDIX1002, see "ls /sys/bus/i2c/devices" to see which
> ACPI HID your touchscreen is using.
>
> Can you please test the attached patch ?
>
> Regards,
>
> Hans
>
>
>
> > ---
> >  drivers/input/touchscreen/goodix.c | 22 ++++++++++++++++++++++
> >  1 file changed, 22 insertions(+)
> >
> > diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
> > index f8798d11ec03..d675a85a9312 100644
> > --- a/drivers/input/touchscreen/goodix.c
> > +++ b/drivers/input/touchscreen/goodix.c
> > @@ -160,6 +160,22 @@ static const struct dmi_system_id inverted_x_screen[] = {
> >       {}
> >  };
> >
> > +/*
> > + * Those tablets have their y coordinate inverted
> > + */
> > +static const struct dmi_system_id inverted_y_screen[] = {
> > +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> > +     {
> > +             .ident = "SUPI S10",
> > +             .matches = {
> > +                     DMI_MATCH(DMI_SYS_VENDOR, "SUPI"),
> > +                     DMI_MATCH(DMI_PRODUCT_NAME, "S10")
> > +             },
> > +     },
> > +#endif
> > +     {}
> > +};
> > +
> >  /**
> >   * goodix_i2c_read - read data from a register of the i2c slave device.
> >   *
> > @@ -1212,6 +1228,12 @@ static int goodix_configure_dev(struct goodix_ts_data *ts)
> >                       "Applying 'inverted x screen' quirk\n");
> >       }
> >
> > +     if (dmi_check_system(inverted_y_screen)) {
> > +             ts->prop.invert_y = true;
> > +             dev_dbg(&ts->client->dev,
> > +                     "Applying 'inverted y screen' quirk\n");
> > +     }
> > +
> >       error = input_mt_init_slots(ts->input_dev, ts->max_touch_num,
> >                                   INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED);
> >       if (error) {

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ