As of kernel 3.8, it looks like the function has changed and is now returning -1 instead of 0:
static int cypress_get_finger_count(unsigned char header_byte) { unsigned char bits6_7; int finger_count;
bits6_7 = header_byte >> 6; finger_count = bits6_7 & 0x03;
if (finger_count == 1) return 1;
if (header_byte & ABS_HSCROLL_BIT) { /* HSCROLL gets added on to 0 finger count. */ switch (finger_count) { case 0: return 4; case 2: return 5; default: /* Invalid contact (e.g. palm). Ignore it. */ return -1; } }
return finger_count; }
my guess is this is causing the same problem as returning 6 was before.
As of kernel 3.8, it looks like the function has changed and is now returning -1 instead of 0:
static int cypress_ get_finger_ count(unsigned char header_byte)
{
unsigned char bits6_7;
int finger_count;
bits6_7 = header_byte >> 6;
finger_count = bits6_7 & 0x03;
if (finger_count == 1)
return 1;
if (header_byte & ABS_HSCROLL_BIT) {
default:
return -1;
/* HSCROLL gets added on to 0 finger count. */
switch (finger_count) {
case 0: return 4;
case 2: return 5;
/* Invalid contact (e.g. palm). Ignore it. */
}
}
return finger_count;
}
my guess is this is causing the same problem as returning 6 was before.