• Blaž Hrastnik's avatar
    HID: Improve Windows Precision Touchpad detection. · 2dbc6f11
    Blaž Hrastnik authored
    Per Microsoft spec, usage 0xC5 (page 0xFF) returns a blob containing
    data used to verify the touchpad as a Windows Precision Touchpad.
    
       0x85, REPORTID_PTPHQA,    //    REPORT_ID (PTPHQA)
        0x09, 0xC5,              //    USAGE (Vendor Usage 0xC5)
        0x15, 0x00,              //    LOGICAL_MINIMUM (0)
        0x26, 0xff, 0x00,        //    LOGICAL_MAXIMUM (0xff)
        0x75, 0x08,              //    REPORT_SIZE (8)
        0x96, 0x00, 0x01,        //    REPORT_COUNT (0x100 (256))
        0xb1, 0x02,              //    FEATURE (Data,Var,Abs)
    
    However, some devices, namely Microsoft's Surface line of products
    instead implement a "segmented device certification report" (usage 0xC6)
    which returns the same report, but in smaller chunks.
    
        0x06, 0x00, 0xff,        //     USAGE_PAGE (Vendor Defined)
        0x85, REPORTID_PTPHQA,   //     REPORT_ID (PTPHQA)
        0x09, 0xC6,              //     USAGE (Vendor usage for segment #)
        0x25, 0x08,              //     LOGICAL_MAXIMUM (8)
        0x75, 0x08,              //     REPORT_SIZE (8)
        0x95, 0x01,              //     REPORT_COUNT (1)
        0xb1, 0x02,              //     FEATURE (Data,Var,Abs)
        0x09, 0xC7,              //     USAGE (Vendor Usage)
        0x26, 0xff, 0x00,        //     LOGICAL_MAXIMUM (0xff)
        0x95, 0x20,              //     REPORT_COUNT (32)
        0xb1, 0x02,              //     FEATURE (Data,Var,Abs)
    
    By expanding Win8 touchpad detection to also look for the segmented
    report, all Surface touchpads are now properly recognized by
    hid-multitouch.
    Signed-off-by: default avatarBlaž Hrastnik <blaz@mxxn.io>
    Signed-off-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
    2dbc6f11
hid-core.c 63.9 KB