From: "Pali Rohár" <pali.rohar@gmail.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Hans de Goede <hdegoede@redhat.com>,
Yunkang Tang <yunkang.tang@cn.alps.com>,
Tommy Will <tommywill2011@gmail.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
"Pali Rohár" <pali.rohar@gmail.com>
Subject: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
Date: Fri, 3 Oct 2014 11:43:12 +0200 [thread overview]
Message-ID: <1412329392-5580-4-git-send-email-pali.rohar@gmail.com> (raw)
In-Reply-To: <1412329392-5580-1-git-send-email-pali.rohar@gmail.com>
For unknown reasons linux psmouse alps driver sometimes receive totally invalid
packet sequences on Dell Latitude laptops. According to ALPS HW engineers these
invalid packets do not come from ALPS devices. So it looks like bug in BIOS and
EC incorrectly split keyboard and touchpad PS/2 data when laptops are under
heavy loads (big I/O together with powersave governor, running on battery).
There are sequences of invalid packets (which are dropeed) and some sequences
which look like valid. But these valid packets cause random trackstick button
pressing, random cursor moving/jumping and in these condition it is not possible
to use ALPS device (trackstick+touchpad).
To prevent random button press and random cursor jumps immediately reset ALPS
device after first invalid packet. This will cause that touchpad and trackstick
will not respond for one or two seconds and it better then random cursor jumps.
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/input/mouse/alps.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index b1f44d4..d2b144f 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -2399,6 +2399,10 @@ int alps_init(struct psmouse *psmouse)
/* We are having trouble resyncing ALPS touchpads so disable it for now */
psmouse->resync_time = 0;
+ /* Reset immediately after bad packet. When bad packet arrives then
+ cursor pointer jumps and trackstick buttons are randomly pressed. */
+ psmouse->resetafter = 1;
+
return 0;
init_fail:
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2014-10-03 9:43 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-03 9:43 [PATCH 0/3] input: alps: Fixes for ALPS driver Pali Rohár
2014-10-03 9:43 ` [PATCH 1/3] input: alps: Reset mouse before identifying it Pali Rohár
2014-10-03 9:47 ` Hans de Goede
2014-10-14 6:08 ` Dmitry Torokhov
2014-10-15 12:53 ` Pali Rohár
2014-10-15 17:43 ` Dmitry Torokhov
2014-10-15 17:57 ` Pali Rohár
2014-10-15 18:00 ` Dmitry Torokhov
2014-10-15 18:10 ` Pali Rohár
2014-10-15 18:22 ` Dmitry Torokhov
2014-10-19 11:07 ` Pali Rohár
2014-10-23 15:44 ` Dmitry Torokhov
2014-11-01 23:29 ` Pali Rohár
2014-10-03 9:43 ` [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set Pali Rohár
2014-10-03 9:51 ` Hans de Goede
2014-10-03 9:58 ` Pali Rohár
2014-10-03 10:01 ` Hans de Goede
2014-10-03 9:43 ` Pali Rohár [this message]
2014-10-03 9:55 ` [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet Hans de Goede
2014-10-03 10:05 ` Pali Rohár
2014-10-03 10:18 ` Hans de Goede
2014-10-03 10:23 ` Pali Rohár
2014-10-03 11:03 ` Hans de Goede
2014-10-03 12:04 ` Hans de Goede
2014-11-01 23:25 ` [PATCH v3 0/4] Fixes for ALPS driver Pali Rohár
2014-11-01 23:25 ` [PATCH v3 1/4] input: alps: Do not try to parse data as 3 bytes packet when driver is out of sync Pali Rohár
2014-11-08 20:52 ` Dmitry Torokhov
2014-11-01 23:25 ` [PATCH v3 2/4] input: alps: Allow 2 invalid packets without resetting device Pali Rohár
2014-11-08 21:00 ` Dmitry Torokhov
2014-11-01 23:25 ` [PATCH v3 3/4] input: alps: For protocol V3, do not process data when last packet's bit7 is set Pali Rohár
2014-11-09 7:50 ` Dmitry Torokhov
2014-11-09 11:22 ` Pali Rohár
2014-11-09 20:34 ` Dmitry Torokhov
2014-11-10 9:18 ` Pali Rohár
2014-11-01 23:25 ` [PATCH v3 4/4] input: alps: Fix trackstick detection Pali Rohár
2014-11-09 8:05 ` Dmitry Torokhov
2014-11-09 11:30 ` Pali Rohár
2014-11-14 11:22 ` Pali Rohár
2014-11-14 19:41 ` Pali Rohár
2014-11-02 14:14 ` [PATCH v3 0/4] Fixes for ALPS driver Hans de Goede
2014-11-06 17:46 ` Pali Rohár
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1412329392-5580-4-git-send-email-pali.rohar@gmail.com \
--to=pali.rohar@gmail.com \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tommywill2011@gmail.com \
--cc=yunkang.tang@cn.alps.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).