Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid

Pull HID fixes from Jiri Kosina:

- fix for potential 3.9 regression in handling of buttons for touchpads
following HID mt specification; potential because reportedly there is
no retail product on the market that would be using this feature, but
nevertheless we'd better follow the spec. Fix by Benjamin Tissoires.

- support for two quirky devices added by Josh Boyer.

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
HID: multitouch: fix touchpad buttons
HID: usbhid: fix build problem
HID: usbhid: quirk for MSI GX680R led panel
HID: usbhid: quirk for Realtek Multi-card reader

+13 -1
+6
drivers/hid/hid-ids.h
··· 590 590 #define USB_VENDOR_ID_MONTEREY 0x0566 591 591 #define USB_DEVICE_ID_GENIUS_KB29E 0x3004 592 592 593 + #define USB_VENDOR_ID_MSI 0x1770 594 + #define USB_DEVICE_ID_MSI_GX680R_LED_PANEL 0xff00 595 + 593 596 #define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 594 597 #define USB_DEVICE_ID_N_S_HARMONY 0xc359 595 598 ··· 686 683 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH 0x3000 687 684 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001 688 685 #define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008 0x3008 686 + 687 + #define USB_VENDOR_ID_REALTEK 0x0bda 688 + #define USB_DEVICE_ID_REALTEK_READER 0x0152 689 689 690 690 #define USB_VENDOR_ID_ROCCAT 0x1e7d 691 691 #define USB_DEVICE_ID_ROCCAT_ARVO 0x30d4
+5 -1
drivers/hid/hid-multitouch.c
··· 621 621 { 622 622 struct mt_device *td = hid_get_drvdata(hid); 623 623 __s32 quirks = td->mtclass.quirks; 624 + struct input_dev *input = field->hidinput->input; 624 625 625 626 if (hid->claimed & HID_CLAIMED_INPUT) { 626 627 switch (usage->hid) { ··· 671 670 break; 672 671 673 672 default: 673 + if (usage->type) 674 + input_event(input, usage->type, usage->code, 675 + value); 674 676 return; 675 677 } 676 678 677 679 if (usage->usage_index + 1 == field->report_count) { 678 680 /* we only take into account the last report. */ 679 681 if (usage->hid == td->last_slot_field) 680 - mt_complete_slot(td, field->hidinput->input); 682 + mt_complete_slot(td, input); 681 683 682 684 if (field->index == td->last_field_index 683 685 && td->num_received >= td->num_expected)
+2
drivers/hid/usbhid/hid-quirks.c
··· 73 73 { USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS }, 74 74 { USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET }, 75 75 { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET }, 76 + { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GX680R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS }, 76 77 { USB_VENDOR_ID_NOVATEK, USB_DEVICE_ID_NOVATEK_MOUSE, HID_QUIRK_NO_INIT_REPORTS }, 77 78 { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN, HID_QUIRK_NO_INIT_REPORTS }, 78 79 { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN1, HID_QUIRK_NO_INIT_REPORTS }, ··· 81 80 { USB_VENDOR_ID_PRODIGE, USB_DEVICE_ID_PRODIGE_CORDLESS, HID_QUIRK_NOGET }, 82 81 { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001, HID_QUIRK_NOGET }, 83 82 { USB_VENDOR_ID_QUANTA, USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3008, HID_QUIRK_NOGET }, 83 + { USB_VENDOR_ID_REALTEK, USB_DEVICE_ID_REALTEK_READER, HID_QUIRK_NO_INIT_REPORTS }, 84 84 { USB_VENDOR_ID_SENNHEISER, USB_DEVICE_ID_SENNHEISER_BTD500USB, HID_QUIRK_NOGET }, 85 85 { USB_VENDOR_ID_SIGMATEL, USB_DEVICE_ID_SIGMATEL_STMP3780, HID_QUIRK_NOGET }, 86 86 { USB_VENDOR_ID_SUN, USB_DEVICE_ID_RARITAN_KVM_DONGLE, HID_QUIRK_NOGET },