On Thu, 2018-08-30 at 22:46 +1000, Sergei A. Trusov wrote: > The touchscreen on the Cube I15-TC don't match the default display, > with 0,0 touches being reported when touching at the upper left of > the screen. But 0,0 is what's supposed to be at the top-left. Did you mean bottom- left? Also a couple of nits. > > Add a quirk to invert the x coordinate. > > Reported-and-tested-by: Arkadiy <arkan49@xxxxxxxxx> > Cc: Hans de Goede <hdegoede@xxxxxxxxxx> > Signed-off-by: Sergei A. Trusov <sergei.a.trusov@xxxxx> > --- > drivers/input/touchscreen/goodix.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/drivers/input/touchscreen/goodix.c > b/drivers/input/touchscreen/goodix.c > index f2d9c2c41885..00b6eb09cee3 100644 > --- a/drivers/input/touchscreen/goodix.c > +++ b/drivers/input/touchscreen/goodix.c > @@ -145,6 +145,24 @@ static const struct dmi_system_id > rotated_screen[] = { > {} > }; > > + Extra linefeed here. > +/* > + * Those tablets have their x coordinate inverted > + */ > +static const struct dmi_system_id inverted_x_screen[] = { > +#if defined(CONFIG_DMI) && defined(CONFIG_X86) > + { > + .ident = "Cube I15-TC", > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "Cube"), > + DMI_MATCH(DMI_PRODUCT_NAME, "I15-TC") > + }, > + }, > +#endif > + {} > +}; > + > + And here. > /** > * goodix_i2c_read - read data from a register of the i2c slave > device. > * > @@ -709,6 +727,12 @@ static int goodix_configure_dev(struct > goodix_ts_data *ts) > "Applying '180 degrees rotated screen' > quirk\n"); > } > > + if (dmi_check_system(inverted_x_screen)) { > + ts->prop.invert_x = true; > + dev_dbg(&ts->client->dev, > + "Applying 'inverted x screen' quirk\n"); > + } > + > error = input_mt_init_slots(ts->input_dev, ts->max_touch_num, > INPUT_MT_DIRECT | > INPUT_MT_DROP_UNUSED); > if (error) {