lkml.org 
[lkml]   [2016]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.2.y-ckt 107/268] Input: elantech - mark protocols v2 and v3 as semi-mt
    Date
    4.2.8-ckt3 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Benjamin Tissoires <benjamin.tissoires@redhat.com>

    commit 6544a1df11c48c8413071aac3316792e4678fbfb upstream.

    When using a protocol v2 or v3 hardware, elantech uses the function
    elantech_report_semi_mt_data() to report data. This devices are rather
    creepy because if num_finger is 3, (x2,y2) is (0,0). Yes, only one valid
    touch is reported.

    Anyway, userspace (libinput) is now confused by these (0,0) touches,
    and detect them as palm, and rejects them.

    Commit 3c0213d17a09 ("Input: elantech - fix semi-mt protocol for v3 HW")
    was sufficient enough for xf86-input-synaptics and libinput before it has
    palm rejection. Now we need to actually tell libinput that this device is
    a semi-mt one and it should not rely on the actual values of the 2 touches.

    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/input/mouse/elantech.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
    index 537ebb0..78f93cf 100644
    --- a/drivers/input/mouse/elantech.c
    +++ b/drivers/input/mouse/elantech.c
    @@ -1222,7 +1222,7 @@ static int elantech_set_input_params(struct psmouse *psmouse)
    input_set_abs_params(dev, ABS_TOOL_WIDTH, ETP_WMIN_V2,
    ETP_WMAX_V2, 0, 0);
    }
    - input_mt_init_slots(dev, 2, 0);
    + input_mt_init_slots(dev, 2, INPUT_MT_SEMI_MT);
    input_set_abs_params(dev, ABS_MT_POSITION_X, x_min, x_max, 0, 0);
    input_set_abs_params(dev, ABS_MT_POSITION_Y, y_min, y_max, 0, 0);
    break;
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-01-27 22:01    [W:4.163 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site