#define USB_DEVICE_ID_UGCI_FLYING 0x0020
#define USB_DEVICE_ID_UGCI_FIGHTING 0x0030
-#define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE 0x0a4a
+++++++++ #define USB_VENDOR_ID_HP 0x03f0
++++++++++#define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A 0x0a4a
++++++++++#define USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A 0x0b4a
+++++++++ #define USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE 0x134a
+++++++++
#define USB_VENDOR_ID_HUION 0x256c
#define USB_DEVICE_ID_HUION_TABLET 0x006e
#define DS4_REPORT_0x05_SIZE 32
#define DS4_REPORT_0x11_SIZE 78
#define DS4_REPORT_0x81_SIZE 7
-------- --#define SIXAXIS_REPORT_0xF2_SIZE 18
++++++++ ++#define SIXAXIS_REPORT_0xF2_SIZE 17
++++++++ ++#define SIXAXIS_REPORT_0xF5_SIZE 8
- - --- static spinlock_t sony_dev_list_lock;
+ + +++ static DEFINE_SPINLOCK(sony_dev_list_lock);
static LIST_HEAD(sony_device_list);
static DEFINE_IDA(sony_device_id_allocator);
if (!buf)
return -ENOMEM;
-------- -- ret = hid_hw_raw_request(hdev, 0xf2, buf, 17, HID_FEATURE_REPORT,
-------- -- HID_REQ_GET_REPORT);
++++++++ ++ ret = hid_hw_raw_request(hdev, 0xf2, buf, SIXAXIS_REPORT_0xF2_SIZE,
++++++++ ++ HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
++++++++ ++ if (ret < 0) {
++++++++ ++ hid_err(hdev, "can't set operational mode: step 1\n");
++++++++ ++ goto out;
++++++++ ++ }
+ +++ + +
++++++++ ++ /*
++++++++ ++ * Some compatible controllers like the Speedlink Strike FX and
++++++++ ++ * Gasia need another query plus an USB interrupt to get operational.
++++++++ ++ */
++++++++ ++ ret = hid_hw_raw_request(hdev, 0xf5, buf, SIXAXIS_REPORT_0xF5_SIZE,
++++++++ ++ HID_FEATURE_REPORT, HID_REQ_GET_REPORT);
++++++++ ++ if (ret < 0) {
++++++++ ++ hid_err(hdev, "can't set operational mode: step 2\n");
++++++++ ++ goto out;
++++++++ ++ }
+ + + +
++++++++ ++ ret = hid_hw_output_report(hdev, buf, 1);
if (ret < 0)
-------- -- hid_err(hdev, "can't set operational mode\n");
++++++++ ++ hid_err(hdev, "can't set operational mode: step 3\n");
++++++++ ++out:
kfree(buf);
return ret;
{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_FORMOSA, USB_DEVICE_ID_FORMOSA_IR_RECEIVER, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
- { USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE, HID_QUIRK_ALWAYS_POLL },
++++++++++ { USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0A4A, HID_QUIRK_ALWAYS_POLL },
++++++++++ { USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_LOGITECH_OEM_USB_OPTICAL_MOUSE_0B4A, HID_QUIRK_ALWAYS_POLL },
+++++++++ { USB_VENDOR_ID_HP, USB_PRODUCT_ID_HP_PIXART_OEM_USB_OPTICAL_MOUSE, HID_QUIRK_ALWAYS_POLL },
+++++++++ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_C077, HID_QUIRK_ALWAYS_POLL },
++++++++++ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C01A, HID_QUIRK_ALWAYS_POLL },
++++++++++ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C05A, HID_QUIRK_ALWAYS_POLL },
++++++++++ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A, HID_QUIRK_ALWAYS_POLL },
{ USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
{ USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3_JP, HID_QUIRK_NO_INIT_REPORTS },