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

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

Pull HID fixes from Jiri Kosina:

- a few regression fixes for wacom driver (including fix for my earlier
mismerge) from Aaron Armstrong Skomra and Jason Gerecke

- revert of a few Logitech device ID additions which turn out to not
work perfectly with the hidpp driver at the moment; proper support is
now scheduled for 5.4. Fixes from Benjamin Tissoires

- scheduling-in-atomic fix for cp2112 driver, from Benjamin Tissoires

- new device ID to intel-ish, from Even Xu

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
HID: wacom: correct misreported EKR ring values
HID: cp2112: prevent sleeping function called from invalid context
HID: intel-ish-hid: ipc: add EHL device id
HID: wacom: Correct distance scale for 2nd-gen Intuos devices
HID: logitech-hidpp: remove support for the G700 over USB
Revert "HID: logitech-hidpp: add USB PID for a few more supported mice"
HID: wacom: add back changes dropped in merge commit

+13 -26
+6 -2
drivers/hid/hid-cp2112.c
··· 1153 1153 1154 1154 INIT_DELAYED_WORK(&dev->gpio_poll_worker, cp2112_gpio_poll_callback); 1155 1155 1156 - cp2112_gpio_direction_input(gc, d->hwirq); 1157 - 1158 1156 if (!dev->gpio_poll) { 1159 1157 dev->gpio_poll = true; 1160 1158 schedule_delayed_work(&dev->gpio_poll_worker, 0); ··· 1200 1202 if (IS_ERR(dev->desc[pin])) { 1201 1203 dev_err(dev->gc.parent, "Failed to request GPIO\n"); 1202 1204 return PTR_ERR(dev->desc[pin]); 1205 + } 1206 + 1207 + ret = cp2112_gpio_direction_input(&dev->gc, pin); 1208 + if (ret < 0) { 1209 + dev_err(dev->gc.parent, "Failed to set GPIO to input dir\n"); 1210 + goto err_desc; 1203 1211 } 1204 1212 1205 1213 ret = gpiochip_lock_as_irq(&dev->gc, pin);
-22
drivers/hid/hid-logitech-hidpp.c
··· 3749 3749 3750 3750 { L27MHZ_DEVICE(HID_ANY_ID) }, 3751 3751 3752 - { /* Logitech G203/Prodigy Gaming Mouse */ 3753 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC084) }, 3754 - { /* Logitech G302 Gaming Mouse */ 3755 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC07F) }, 3756 - { /* Logitech G303 Gaming Mouse */ 3757 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC080) }, 3758 - { /* Logitech G400 Gaming Mouse */ 3759 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC07E) }, 3760 3752 { /* Logitech G403 Wireless Gaming Mouse over USB */ 3761 3753 HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC082) }, 3762 - { /* Logitech G403 Gaming Mouse */ 3763 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC083) }, 3764 - { /* Logitech G403 Hero Gaming Mouse over USB */ 3765 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC08F) }, 3766 - { /* Logitech G502 Proteus Core Gaming Mouse */ 3767 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC07D) }, 3768 - { /* Logitech G502 Proteus Spectrum Gaming Mouse over USB */ 3769 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC332) }, 3770 - { /* Logitech G502 Hero Gaming Mouse over USB */ 3771 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC08B) }, 3772 - { /* Logitech G700 Gaming Mouse over USB */ 3773 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC06B) }, 3774 - { /* Logitech G700s Gaming Mouse over USB */ 3775 - HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC07C) }, 3776 3754 { /* Logitech G703 Gaming Mouse over USB */ 3777 3755 HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, 0xC087) }, 3778 3756 { /* Logitech G703 Hero Gaming Mouse over USB */
+1
drivers/hid/intel-ish-hid/ipc/hw-ish.h
··· 24 24 #define ICL_MOBILE_DEVICE_ID 0x34FC 25 25 #define SPT_H_DEVICE_ID 0xA135 26 26 #define CML_LP_DEVICE_ID 0x02FC 27 + #define EHL_Ax_DEVICE_ID 0x4BB3 27 28 28 29 #define REVISION_ID_CHT_A0 0x6 29 30 #define REVISION_ID_CHT_Ax_SI 0x0
+1
drivers/hid/intel-ish-hid/ipc/pci-ish.c
··· 33 33 {PCI_DEVICE(PCI_VENDOR_ID_INTEL, ICL_MOBILE_DEVICE_ID)}, 34 34 {PCI_DEVICE(PCI_VENDOR_ID_INTEL, SPT_H_DEVICE_ID)}, 35 35 {PCI_DEVICE(PCI_VENDOR_ID_INTEL, CML_LP_DEVICE_ID)}, 36 + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, EHL_Ax_DEVICE_ID)}, 36 37 {0, } 37 38 }; 38 39 MODULE_DEVICE_TABLE(pci, ish_pci_tbl);
+5 -2
drivers/hid/wacom_wac.c
··· 846 846 y >>= 1; 847 847 distance >>= 1; 848 848 } 849 + if (features->type == INTUOSHT2) 850 + distance = features->distance_max - distance; 849 851 input_report_abs(input, ABS_X, x); 850 852 input_report_abs(input, ABS_Y, y); 851 853 input_report_abs(input, ABS_DISTANCE, distance); ··· 1061 1059 input_report_key(input, BTN_BASE2, (data[11] & 0x02)); 1062 1060 1063 1061 if (data[12] & 0x80) 1064 - input_report_abs(input, ABS_WHEEL, (data[12] & 0x7f)); 1062 + input_report_abs(input, ABS_WHEEL, (data[12] & 0x7f) - 1); 1065 1063 else 1066 1064 input_report_abs(input, ABS_WHEEL, 0); 1067 1065 ··· 1292 1290 } 1293 1291 if (wacom->tool[0]) { 1294 1292 input_report_abs(pen_input, ABS_PRESSURE, get_unaligned_le16(&frame[5])); 1295 - if (wacom->features.type == INTUOSP2_BT) { 1293 + if (wacom->features.type == INTUOSP2_BT || 1294 + wacom->features.type == INTUOSP2S_BT) { 1296 1295 input_report_abs(pen_input, ABS_DISTANCE, 1297 1296 range ? frame[13] : wacom->features.distance_max); 1298 1297 } else {