lkml.org 
[lkml]   [2014]   [Dec]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13.y-ckt 068/121] Input: alps - allow up to 2 invalid packets without resetting device
    Date
    3.13.11-ckt12 -stable review patch.  If anyone has any objections, please let me know.

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

    From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>

    commit 9d720b34c0a432639252f63012e18b0507f5b432 upstream.

    On some Dell Latitude laptops ALPS device or Dell EC send one invalid byte
    in 6 bytes ALPS packet. In this case psmouse driver enter out of sync
    state. It looks like that all other bytes in packets are valid and also
    device working properly. So there is no need to do full device reset, just
    need to wait for byte which match condition for first byte (start of
    packet). Because ALPS packets are bigger (6 or 8 bytes) default limit is
    small.

    This patch increase number of invalid bytes to size of 2 ALPS packets which
    psmouse driver can drop before do full reset.

    Resetting ALPS devices take some time and when doing reset on some Dell
    laptops touchpad, trackstick and also keyboard do not respond. So it is
    better to do it only if really necessary.

    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Tested-by: Pali Rohár <pali.rohar@gmail.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/input/mouse/alps.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
    index 80fac48..00544a6 100644
    --- a/drivers/input/mouse/alps.c
    +++ b/drivers/input/mouse/alps.c
    @@ -2022,6 +2022,9 @@ int alps_init(struct psmouse *psmouse)
    /* We are having trouble resyncing ALPS touchpads so disable it for now */
    psmouse->resync_time = 0;

    + /* Allow 2 invalid packets without resetting device */
    + psmouse->resetafter = psmouse->pktsize * 2;
    +
    return 0;

    init_fail:
    --
    1.9.1


    \
     
     \ /
      Last update: 2014-12-02 21:01    [W:4.062 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site