Hi, On 12/24/20 2:51 PM, Hans de Goede wrote: > The Estar Beauty HD (MID 7316R) tablet uses a Goodix touchscreen, > with the X and Y coordinates swapped compared to the LCD panel. > > Add a touchscreen_dmi entry for this adding a "touchscreen-swapped-x-y" > device-property to the i2c-client instantiated for this device before > the driver binds. > > This is the first entry of a Goodix touchscreen to touchscreen_dmi.c, > so far DMI quirks for Goodix touchscreen's have been added directly > to drivers/input/touchscreen/goodix.c. Currently there are 3 > DMI tables in goodix.c: > 1. rotated_screen[] for devices where the touchscreen is rotated > 180 degrees vs the LCD panel > 2. inverted_x_screen[] for devices where the X axis is inverted > 3. nine_bytes_report[] for devices which use a non standard touch > report size > > Arguably only 3. really needs to be inside the driver and the other > 2 cases are better handled through the generic touchscreen DMI quirk > mechanism from touchscreen_dmi.c, which allows adding device-props to > any i2c-client. Esp. now that goodix.c is using the generic > touchscreen_properties code. > > Alternative to the approach from this patch we could add a 4th > dmi_system_id table for devices with swapped-x-y axis to goodix.c, > but that seems undesirable. > > Cc: Bastien Nocera <hadess@xxxxxxxxxx> > Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/x86/touchscreen_dmi.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/platform/x86/touchscreen_dmi.c b/drivers/platform/x86/touchscreen_dmi.c > index 5783139d0a11..c4de932302d6 100644 > --- a/drivers/platform/x86/touchscreen_dmi.c > +++ b/drivers/platform/x86/touchscreen_dmi.c > @@ -263,6 +263,16 @@ static const struct ts_dmi_data digma_citi_e200_data = { > .properties = digma_citi_e200_props, > }; > > +static const struct property_entry estar_beauty_hd_props[] = { > + PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), > + { } > +}; > + > +static const struct ts_dmi_data estar_beauty_hd_data = { > + .acpi_name = "GDIX1001:00", > + .properties = estar_beauty_hd_props, > +}; > + > static const struct property_entry gp_electronic_t701_props[] = { > PROPERTY_ENTRY_U32("touchscreen-size-x", 960), > PROPERTY_ENTRY_U32("touchscreen-size-y", 640), > @@ -942,6 +952,14 @@ const struct dmi_system_id touchscreen_dmi_table[] = { > DMI_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"), > }, > }, > + { > + /* Estar Beauty HD (MID 7316R) */ > + .driver_data = (void *)&estar_beauty_hd_data, > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "Estar"), > + DMI_MATCH(DMI_PRODUCT_NAME, "eSTAR BEAUTY HD Intel Quad core"), > + }, > + }, > { > /* GP-electronic T701 */ > .driver_data = (void *)&gp_electronic_t701_data, >