summaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-zydacron.c
diff options
context:
space:
mode:
authorBlaž Hrastnik <blaz@mxxn.io>2019-11-06 12:02:46 +0100
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>2019-11-18 10:03:15 +0100
commit2dbc6f113acd74c66b04bf49fb027efd830b1c5a (patch)
tree4326ff9f4d2643f4cbdeffbad9f60a9ab668c2ff /drivers/hid/hid-zydacron.c
parentHID: core: check whether Usage Page item is after Usage ID items (diff)
downloadlinux-2dbc6f113acd74c66b04bf49fb027efd830b1c5a.tar.xz
linux-2dbc6f113acd74c66b04bf49fb027efd830b1c5a.zip
HID: Improve Windows Precision Touchpad detection.
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: Blaž Hrastnik <blaz@mxxn.io> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Diffstat (limited to 'drivers/hid/hid-zydacron.c')
0 files changed, 0 insertions, 0 deletions