• Pali Rohár's avatar
    Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 · a7ef82ae
    Pali Rohár authored
    Sometimes on Dell Latitude laptops psmouse/alps driver receive invalid ALPS
    protocol V3 packets with bit7 set in last byte. More often it can be
    reproduced on Dell Latitude E6440 or E7440 with closed lid and pushing
    cover above touchpad.
    
    If bit7 in last packet byte is set then it is not valid ALPS packet. I was
    told that ALPS devices never send these packets. It is not know yet who
    send those packets, it could be Dell EC, bug in BIOS and also bug in
    touchpad firmware...
    
    With this patch alps driver does not process those invalid packets, but
    instead of reporting PSMOUSE_BAD_DATA, getting into out of sync state,
    getting back in sync with the next byte and spam dmesg we return
    PSMOUSE_FULL_PACKET. If driver is truly out of sync we'll fail the checks
    on the next byte and report PSMOUSE_BAD_DATA then.
    Signed-off-by: default avatarPali Rohár <pali.rohar@gmail.com>
    Tested-by: default avatarPali Rohár <pali.rohar@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    a7ef82ae
alps.c 66.5 KB