diff mbox

elantech touchpad issues

Message ID 87sjo7oef3.fsf@emc.com.tw (mailing list archive)
State New, archived
Headers show

Commit Message

JJ Ding Sept. 8, 2011, 4:18 a.m. UTC
Hi Richard,

It turns out that v2 hardware has debounce packet, too. But with
--
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

different signature compared to v3. To the best of my knowledge, I can
only say some models of v2 hardware have this, and others don't. So we
always check for debounce.

Please test this patch and see if it works for you.
Please apply this on up of my v5 series.

Thanks
---
diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
index 38fb155..1e5ea1d 100644
--- a/drivers/input/mouse/elantech.c
+++ b/drivers/input/mouse/elantech.c
@@ -613,6 +613,13 @@  static int elantech_packet_check_v1(struct psmouse *psmouse)
 	       etd->parity[packet[3]] == p3;
 }
 
+static int elantech_check_debounce_v2(struct psmouse *psmouse)
+{
+	const u8 debounce_packet[] = { 0x84, 0xff, 0xff, 0x02, 0xff, 0xff };
+	unsigned char *packet = psmouse->packet;
+	return !memcmp(packet, debounce_packet, sizeof(debounce_packet));
+}
+
 static int elantech_packet_check_v2(struct psmouse *psmouse)
 {
 	struct elantech_data *etd = psmouse->private;
@@ -708,6 +715,9 @@  static psmouse_ret_t elantech_process_byte(struct psmouse *psmouse)
 		break;
 
 	case 2:
+		if (elantech_check_debounce_v2(psmouse))
+			return PSMOUSE_FULL_PACKET;
+
 		if (etd->paritycheck && !elantech_packet_check_v2(psmouse))
 			return PSMOUSE_BAD_DATA;
--
jj