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
Reply to
JJ Ding, 2011-08-24
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
Thread (12 messages) 12 messages, 3 authors, last reply 2011-08-25
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help