lkml.org 
[lkml]   [2019]   [May]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 00/10] Fix Elan I2C touchpads in latest generation from Lenovo
    Date
    Hi,

    This is the v2 from https://lkml.org/lkml/2018/10/12/633

    So I initially thought it would be easy to integrate the suggested changes
    in the v1, but it turns our that the changes to have the touchscreen-width
    and height parameters were quite hard to do.

    I finally postponed the issue by blacklisting the 2 laptops we knew were
    not working and tried to devote more time to understand both drivers more.

    But it s the time where Lenovo is preparing the new models, and guess what,
    they suffer from the same symptoms.

    So I took a few time to work on this and finally got my head around the
    width and height problem. Once I got it, it was simple clear, but this also
    means we can not really rely on a device tree property for that.

    So in the elan* drivers, the "traces" are simply how many antennas there
    are on each axis. Which means that if a trace of 4 is reported in the
    events, it means it is simply seen by 4 antennas. So the computation of the
    width/height is the following: we take how many antennas there are, we
    subtract one to have the number of holes between the antennas, and we
    divide the number of unit we have in the axis by the value we just
    computed.
    This gives a rough 4mm on the P52, in both directions.

    And once you get that, you can just realize that the unit of the width and
    height are just the same than the X and Y coordinates, so we can apply the
    same resolution.

    So, in the end, that means that elan_i2c needs the information, or it will
    not be able to convert the number of crossed antennas into a size, but this
    is something specific to this touchpad.

    So here come, 7 months later the v2 on the subject.

    Cheers,
    Benjamin

    Benjamin Tissoires (10):
    Input: elantech - query the min/max information beforehand too
    Input: elantech - add helper function elantech_is_buttonpad()
    Input: elantech - detect middle button based on firmware version
    dt-bindings: add more optional properties for elan_i2c touchpads
    Input: elan_i2c - do not query the info if they are provided
    Input: elantech/SMBus - export all capabilities from the PS/2 node
    Input: elan_i2c - handle physical middle button
    Input: elan_i2c - export true width/height
    Input: elan_i2c - correct the width/size base value
    Input: elantech: remove P52 from SMBus blacklist

    .../devicetree/bindings/input/elan_i2c.txt | 11 +
    drivers/input/mouse/elan_i2c_core.c | 85 +++--
    drivers/input/mouse/elantech.c | 318 ++++++++++--------
    drivers/input/mouse/elantech.h | 8 +
    4 files changed, 251 insertions(+), 171 deletions(-)

    --
    2.21.0

    \
     
     \ /
      Last update: 2019-05-21 15:28    [W:7.289 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site