aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2017-11-15 05:02:25 -0500
committerJiri Kosina <jkosina@suse.cz>2017-11-15 05:02:25 -0500
commit83fd5ddc19931d5a5b884c43ee3c9d69c673bc96 (patch)
tree5e728cf3d7c080b73eeea46e16faa520169f849d
parenta0933a456ff83a3b5ffa3a1903e0b8de4a56adf5 (diff)
parent1477edb4853bd730e3ab37fa9165651c03c2cc05 (diff)
Merge branch 'for-4.14/upstream-fixes' into for-linus
- Wacom: recognize PEN application collection properly, from Jason Gerecke - RMI: avoid cofusion caused by RMI functions being by mistake called on non-RMI devices, from Andrew Duggan - small device-ID-specific quirks/fixes Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-core.c1
-rw-r--r--drivers/hid/hid-ids.h3
-rw-r--r--drivers/hid/hid-rmi.c13
-rw-r--r--drivers/hid/hid-tmff.c2
-rw-r--r--drivers/hid/usbhid/hid-quirks.c1
-rw-r--r--drivers/hid/wacom_wac.h1
6 files changed, 18 insertions, 3 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 330ca983828b..e7a45887afc4 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2329,6 +2329,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
2329 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) }, 2329 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) },
2330 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb323) }, 2330 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb323) },
2331 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb324) }, 2331 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb324) },
2332 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb605) },
2332 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651) }, 2333 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651) },
2333 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb653) }, 2334 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb653) },
2334 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb654) }, 2335 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb654) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index be2e005c3c51..c24ebc413223 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -729,6 +729,9 @@
729#define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 729#define USB_DEVICE_ID_MCC_PMD1024LS 0x0076
730#define USB_DEVICE_ID_MCC_PMD1208LS 0x007a 730#define USB_DEVICE_ID_MCC_PMD1208LS 0x007a
731 731
732#define USB_VENDOR_ID_MCS 0x16d0
733#define USB_DEVICE_ID_MCS_GAMEPADBLOCK 0x0bcc
734
732#define USB_VENDOR_ID_MGE 0x0463 735#define USB_VENDOR_ID_MGE 0x0463
733#define USB_DEVICE_ID_MGE_UPS 0xffff 736#define USB_DEVICE_ID_MGE_UPS 0xffff
734#define USB_DEVICE_ID_MGE_UPS1 0x0001 737#define USB_DEVICE_ID_MGE_UPS1 0x0001
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index ef241d66562e..0f43c4292685 100644
--- a/drivers/hid/hid-rmi.c
+++ b/drivers/hid/hid-rmi.c
@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size)
368static int rmi_raw_event(struct hid_device *hdev, 368static int rmi_raw_event(struct hid_device *hdev,
369 struct hid_report *report, u8 *data, int size) 369 struct hid_report *report, u8 *data, int size)
370{ 370{
371 struct rmi_data *hdata = hid_get_drvdata(hdev);
372
373 if (!(hdata->device_flags & RMI_DEVICE))
374 return 0;
375
371 size = rmi_check_sanity(hdev, data, size); 376 size = rmi_check_sanity(hdev, data, size);
372 if (size < 2) 377 if (size < 2)
373 return 0; 378 return 0;
@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev)
713{ 718{
714 struct rmi_data *hdata = hid_get_drvdata(hdev); 719 struct rmi_data *hdata = hid_get_drvdata(hdev);
715 720
716 clear_bit(RMI_STARTED, &hdata->flags); 721 if (hdata->device_flags & RMI_DEVICE) {
717 cancel_work_sync(&hdata->reset_work); 722 clear_bit(RMI_STARTED, &hdata->flags);
718 rmi_unregister_transport_device(&hdata->xport); 723 cancel_work_sync(&hdata->reset_work);
724 rmi_unregister_transport_device(&hdata->xport);
725 }
719 726
720 hid_hw_stop(hdev); 727 hid_hw_stop(hdev);
721} 728}
diff --git a/drivers/hid/hid-tmff.c b/drivers/hid/hid-tmff.c
index b83376077d72..bea8def64f43 100644
--- a/drivers/hid/hid-tmff.c
+++ b/drivers/hid/hid-tmff.c
@@ -242,6 +242,8 @@ static const struct hid_device_id tm_devices[] = {
242 .driver_data = (unsigned long)ff_rumble }, 242 .driver_data = (unsigned long)ff_rumble },
243 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb324), /* Dual Trigger 3-in-1 (PS3 Mode) */ 243 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb324), /* Dual Trigger 3-in-1 (PS3 Mode) */
244 .driver_data = (unsigned long)ff_rumble }, 244 .driver_data = (unsigned long)ff_rumble },
245 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb605), /* NASCAR PRO FF2 Wheel */
246 .driver_data = (unsigned long)ff_joystick },
245 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651), /* FGT Rumble Force Wheel */ 247 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb651), /* FGT Rumble Force Wheel */
246 .driver_data = (unsigned long)ff_rumble }, 248 .driver_data = (unsigned long)ff_rumble },
247 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb653), /* RGT Force Feedback CLUTCH Raging Wheel */ 249 { HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb653), /* RGT Force Feedback CLUTCH Raging Wheel */
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index f489a5cfcb48..331f7f34ec14 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -170,6 +170,7 @@ static const struct hid_blacklist {
170 { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, HID_QUIRK_MULTI_INPUT }, 170 { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, HID_QUIRK_MULTI_INPUT },
171 { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, HID_QUIRK_MULTI_INPUT }, 171 { USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, HID_QUIRK_MULTI_INPUT },
172 { USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI, HID_QUIRK_MULTI_INPUT }, 172 { USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI, HID_QUIRK_MULTI_INPUT },
173 { USB_VENDOR_ID_MCS, USB_DEVICE_ID_MCS_GAMEPADBLOCK, HID_QUIRK_MULTI_INPUT },
173 174
174 { 0, 0 } 175 { 0, 0 }
175}; 176};
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
index 8a03654048bf..feb62fd4dfc3 100644
--- a/drivers/hid/wacom_wac.h
+++ b/drivers/hid/wacom_wac.h
@@ -166,6 +166,7 @@
166 ((f)->physical == HID_DG_PEN) || \ 166 ((f)->physical == HID_DG_PEN) || \
167 ((f)->application == HID_DG_PEN) || \ 167 ((f)->application == HID_DG_PEN) || \
168 ((f)->application == HID_DG_DIGITIZER) || \ 168 ((f)->application == HID_DG_DIGITIZER) || \
169 ((f)->application == WACOM_HID_WD_PEN) || \
169 ((f)->application == WACOM_HID_WD_DIGITIZER) || \ 170 ((f)->application == WACOM_HID_WD_DIGITIZER) || \
170 ((f)->application == WACOM_HID_G9_PEN) || \ 171 ((f)->application == WACOM_HID_G9_PEN) || \
171 ((f)->application == WACOM_HID_G11_PEN)) 172 ((f)->application == WACOM_HID_G11_PEN))