Thread (12 messages) 12 messages, 3 authors, 2011-08-25

Re: [PATCH v2 7/7] Input: elantech - add v3 hardware support

From: Seth Forshee <hidden>
Date: 2011-08-24 14:35:30
Also in: lkml

On Wed, Aug 24, 2011 at 01:44:46PM +0800, JJ Ding wrote:
quoted hunk ↗ jump to hunk
@@ -403,11 +503,39 @@ static int elantech_packet_check_v2(struct psmouse *psmouse)
 }
 
 /*
+ * We check the constant bits to determine what packet type we get,
+ * so packet checking is mandatory for v3 hardware.
+ */
+static int elantech_packet_check_v3(struct psmouse *psmouse)
+{
+	unsigned char *packet = psmouse->packet;
+
+	if ((packet[0] & 0x0c) == 0x04 &&
+	    (packet[3] & 0xcf) == 0x02)
+		return PACKET_V3_HEAD;
+
+	if ((packet[0] & 0x0c) == 0x0c &&
+	    (packet[3] & 0xce) == 0x0c)
+		return PACKET_V3_TAIL;
+
+	if (packet[0] == 0xc4 &&
+	    packet[1] == 0xff &&
+	    packet[2] == 0xff &&
+	    packet[3] == 0x02 &&
+	    packet[4] == 0xff &&
+	    packet[5] == 0xff)
+		return PACKET_DEBOUNCE;
+
+	return PACKET_UNKNOWN;
+}
This will never return PACKET_DEBOUNCE, because those packets will have
already matched the conditions for PACKET_V3_HEAD. That condition needs
to be moved to the top of the function.

Seth
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help