lkml.org 
[lkml]   [2019]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 09/48] Input: atmel_mxt_ts - handle reports from T47 Stylus object
    Date
    From: Nick Dyer <nick.dyer@itdev.co.uk>

    Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
    Acked-by: Benson Leung <bleung@chromium.org>
    Acked-by: Yufeng Shen <miletus@chromium.org>
    (cherry picked from ndyer/linux/for-upstream commit 56405a5ea08eb34cfe83f3121867c9de0a5c48c1)
    Signed-off-by: George G. Davis <george_davis@mentor.com>
    Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
    ---
    drivers/input/touchscreen/atmel_mxt_ts.c | 12 +++++++++++-
    1 file changed, 11 insertions(+), 1 deletion(-)

    diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
    index 2df3104e94b9..661bfe4a43b9 100644
    --- a/drivers/input/touchscreen/atmel_mxt_ts.c
    +++ b/drivers/input/touchscreen/atmel_mxt_ts.c
    @@ -823,6 +823,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
    int area;
    int amplitude;
    u8 vector;
    + int tool;

    id = message[0] - data->T9_reportid_min;
    status = message[1];
    @@ -836,6 +837,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
    y >>= 2;

    area = message[5];
    +
    amplitude = message[6];
    vector = message[7];

    @@ -865,12 +867,20 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
    mxt_input_sync(data);
    }

    + /* A size of zero indicates touch is from a linked T47 Stylus */
    + if (area == 0) {
    + area = MXT_TOUCH_MAJOR_DEFAULT;
    + tool = MT_TOOL_PEN;
    + } else {
    + tool = MT_TOOL_FINGER;
    + }
    +
    /* if active, pressure must be non-zero */
    if (!amplitude)
    amplitude = MXT_PRESSURE_DEFAULT;

    /* Touch active */
    - input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
    + input_mt_report_slot_state(input_dev, tool, 1);
    input_report_abs(input_dev, ABS_MT_POSITION_X, x);
    input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
    input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
    --
    2.17.1
    \
     
     \ /
      Last update: 2019-10-29 08:50    [W:4.088 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site