• Hans de Goede's avatar
    platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on Estar Beauty HD tablet · 46c54cf2
    Hans de Goede authored
    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@hadess.net>
    Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20201224135158.10976-1-hdegoede@redhat.com
    46c54cf2
touchscreen_dmi.c 42.8 KB