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
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:
@@ -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