Comment 41 for bug 1048258

Revision history for this message
Owen Williams (ywwg) wrote :

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.