lkml.org 
[lkml]   [2018]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.17 197/220] Input: psmouse - fix button reporting for basic protocols
    Date
    4.17-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

    commit 03ae3a9caf4a59edd32b65c89c375a98ce3ea1ef upstream.

    The commit ba667650c568 ("Input: psmouse - clean up code") was pretty
    brain-dead and broke extra buttons reporting for variety of PS/2 mice:
    Genius, Thinkmouse and Intellimouse Explorer. We need to actually inspect
    the data coming from the device when reporting events.

    Fixes: ba667650c568 ("Input: psmouse - clean up code")
    Reported-by: Jiri Slaby <jslaby@suse.cz>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/input/mouse/psmouse-base.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    --- a/drivers/input/mouse/psmouse-base.c
    +++ b/drivers/input/mouse/psmouse-base.c
    @@ -192,8 +192,8 @@ psmouse_ret_t psmouse_process_byte(struc
    else
    input_report_rel(dev, REL_WHEEL, -wheel);

    - input_report_key(dev, BTN_SIDE, BIT(4));
    - input_report_key(dev, BTN_EXTRA, BIT(5));
    + input_report_key(dev, BTN_SIDE, packet[3] & BIT(4));
    + input_report_key(dev, BTN_EXTRA, packet[3] & BIT(5));
    break;
    }
    break;
    @@ -203,13 +203,13 @@ psmouse_ret_t psmouse_process_byte(struc
    input_report_rel(dev, REL_WHEEL, -(s8) packet[3]);

    /* Extra buttons on Genius NewNet 3D */
    - input_report_key(dev, BTN_SIDE, BIT(6));
    - input_report_key(dev, BTN_EXTRA, BIT(7));
    + input_report_key(dev, BTN_SIDE, packet[0] & BIT(6));
    + input_report_key(dev, BTN_EXTRA, packet[0] & BIT(7));
    break;

    case PSMOUSE_THINKPS:
    /* Extra button on ThinkingMouse */
    - input_report_key(dev, BTN_EXTRA, BIT(3));
    + input_report_key(dev, BTN_EXTRA, packet[0] & BIT(3));

    /*
    * Without this bit of weirdness moving up gives wildly
    @@ -223,7 +223,7 @@ psmouse_ret_t psmouse_process_byte(struc
    * Cortron PS2 Trackball reports SIDE button in the
    * 4th bit of the first byte.
    */
    - input_report_key(dev, BTN_SIDE, BIT(3));
    + input_report_key(dev, BTN_SIDE, packet[0] & BIT(3));
    packet[0] |= BIT(3);
    break;


    \
     
     \ /
      Last update: 2018-07-01 18:53    [W:4.052 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site