diff mbox

Bisected two-finger scrolling regression on Lenovo Y50 (Re: [PATCH 1/5] Input: elantech - use elantech_report_trackpoint for hardware v4 too)

Message ID 20141120074207.GA30434@dtor-ws (mailing list archive)
State New, archived
Headers show

Commit Message

Dmitry Torokhov Nov. 20, 2014, 7:42 a.m. UTC
Hi Anders,

On Thu, Nov 20, 2014 at 01:58:40AM -0500, Anders Kaseorg wrote:
> On 08/30/2014 10:10 AM, Ulrik De Bie wrote:
> >The Fujitsu H730 has hardware v4 with a trackpoint. This enables
> >the elantech_report_trackpoint for v4.
> 
> Kernel 3.18-rc5 has made two-finger scrolling unusably glitchy on my
> Lenovo Y50-70 Touch, and caused an associated kernel warning.  I
> bisected the regression to this commit (caeb0d37).
> 
> This may be the same as https://bugzilla.redhat.com/1165390,
> although that only reports the warning, not the glitchy scrolling.
> 

Thank you for your report. Please try the patch below.

Markus, I put you as tested-by since you tried basically the same patch
earlier.

Comments

Anders Kaseorg Nov. 20, 2014, 8:21 a.m. UTC | #1
On Thu, 20 Nov 2014, Dmitry Torokhov wrote:
> Thank you for your report. Please try the patch below.
> 
> […]
> 
> Input: elantech - trust firmware about trackpoint presence
> 
> From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> Only try to parse data as coming from trackpoint if firmware told us that
> trackpoint is present.
> 
> Fixes commit caeb0d37fa3e387eb0dd22e5d497523c002033d1
> 
> Reported-and-tested-by: Marcus Overhagen <marcus.overhagen@gmail.com>
> Reported-by: Anders Kaseorg <andersk@mit.edu>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

That fixes it for me too, thanks.

Anders
--
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
diff mbox

Patch

diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 3fcb6b3..f2b9780 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -428,14 +428,6 @@  static void elantech_report_trackpoint(struct psmouse *psmouse,
 	int x, y;
 	u32 t;
 
-	if (dev_WARN_ONCE(&psmouse->ps2dev.serio->dev,
-			  !tp_dev,
-			  psmouse_fmt("Unexpected trackpoint message\n"))) {
-		if (etd->debug == 1)
-			elantech_packet_dump(psmouse);
-		return;
-	}
-
 	t = get_unaligned_le32(&packet[0]);
 
 	switch (t & ~7U) {
@@ -793,7 +785,7 @@  static int elantech_packet_check_v4(struct psmouse *psmouse)
 	unsigned char packet_type = packet[3] & 0x03;
 	bool sanity_check;
 
-	if ((packet[3] & 0x0f) == 0x06)
+	if (etd->tp_dev && (packet[3] & 0x0f) == 0x06)
 		return PACKET_TRACKPOINT;
 
 	/*