diff options
author | Jiri Kosina <jkosina@suse.cz> | 2017-11-15 05:02:25 -0500 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2017-11-15 05:02:25 -0500 |
commit | 83fd5ddc19931d5a5b884c43ee3c9d69c673bc96 (patch) | |
tree | 5e728cf3d7c080b73eeea46e16faa520169f849d | |
parent | a0933a456ff83a3b5ffa3a1903e0b8de4a56adf5 (diff) | |
parent | 1477edb4853bd730e3ab37fa9165651c03c2cc05 (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.c | 1 | ||||
-rw-r--r-- | drivers/hid/hid-ids.h | 3 | ||||
-rw-r--r-- | drivers/hid/hid-rmi.c | 13 | ||||
-rw-r--r-- | drivers/hid/hid-tmff.c | 2 | ||||
-rw-r--r-- | drivers/hid/usbhid/hid-quirks.c | 1 | ||||
-rw-r--r-- | drivers/hid/wacom_wac.h | 1 |
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) | |||
368 | static int rmi_raw_event(struct hid_device *hdev, | 368 | static 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)) |