HID: Adding new vendor id for QVR support
Adding new vendor id to support additional hardware.
Change-Id: I9b37b4dfe0c205428d235ffe1e5f8d8ebe918998
Signed-off-by: Rohit Bandi <rohitbandi@codeaurora.org>
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 350f2ba..2059d9d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2020,6 +2020,7 @@
{ HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_KEYBOARD) },
#if IS_ENABLED(CONFIG_HID_QVR)
{ HID_USB_DEVICE(USB_VENDOR_ID_QVR5, USB_DEVICE_ID_QVR5) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_QVR32A, USB_DEVICE_ID_QVR32A) },
#endif
{ HID_USB_DEVICE(USB_VENDOR_ID_RISO_KAGAKU, USB_DEVICE_ID_RI_KA_WEBMAIL) },
#if IS_ENABLED(CONFIG_HID_ROCCAT)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index ad9f230..0280e28 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1129,6 +1129,8 @@
#define USB_DEVICE_ID_UGTIZER_TABLET_GP0610 0x0053
#define USB_VENDOR_ID_QVR5 0x045e
+#define USB_VENDOR_ID_QVR32A 0x04b4
#define USB_DEVICE_ID_QVR5 0x0659
+#define USB_DEVICE_ID_QVR32A 0x00c3
#endif
diff --git a/drivers/hid/hid-qvr.c b/drivers/hid/hid-qvr.c
index 019dbaf..76a6678 100644
--- a/drivers/hid/hid-qvr.c
+++ b/drivers/hid/hid-qvr.c
@@ -313,15 +313,13 @@
pr_err("%s: hid_hw_start failed", __func__);
goto err_free;
}
- if (hdev->vendor == USB_VENDOR_ID_QVR5) {
- hid_buf[0] = 2;
- hid_buf[1] = 7;
- ret = hid_hw_raw_request(hdev, hid_buf[0],
- hid_buf,
- hid_count,
- HID_FEATURE_REPORT,
- HID_REQ_SET_REPORT);
- }
+ hid_buf[0] = 2;
+ hid_buf[1] = 7;
+ ret = hid_hw_raw_request(hdev, hid_buf[0],
+ hid_buf,
+ hid_count,
+ HID_FEATURE_REPORT,
+ HID_REQ_SET_REPORT);
return 0;
err_free:
return ret;
@@ -335,7 +333,7 @@
int val;
int ret = -1;
- if ((hid->vendor == USB_VENDOR_ID_QVR5) && (vaddr != NULL)) {
+ if (vaddr != NULL && report->id == 0x1) {
ret = qvr_send_package_wrap(data/*hid_value*/, size, hid);
if (ret != 0) {
pr_err("%s: qvr_send_package_wrap failed", __func__);
@@ -355,6 +353,7 @@
static struct hid_device_id qvr_external_sensor_table[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_QVR5, USB_DEVICE_ID_QVR5) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_QVR32A, USB_DEVICE_ID_QVR32A) },
{ }
};
MODULE_DEVICE_TABLE(hid, qvr_external_sensor_table);
diff --git a/drivers/hid/hid-qvr.h b/drivers/hid/hid-qvr.h
index 3507d07..251b969 100644
--- a/drivers/hid/hid-qvr.h
+++ b/drivers/hid/hid-qvr.h
@@ -15,8 +15,6 @@
#ifndef HID_QVR_H_FILE
#define HID_QVR_H_FILE
-#define USB_VENDOR_ID_QVR5 0x045e
-#define USB_DEVICE_ID_QVR5 0x0659
#define QVR_EXTERNAL_SENSOR_REPORT_ID 0x1
struct external_imu_format {
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index a57654a..1ed4110 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -171,6 +171,7 @@
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_2NES2SNES, HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_DRACAL_RAPHNET, USB_DEVICE_ID_RAPHNET_4NES4SNES, HID_QUIRK_MULTI_INPUT },
{ USB_VENDOR_ID_QVR5, USB_DEVICE_ID_QVR5, HID_QUIRK_HIDINPUT_FORCE },
+ { USB_VENDOR_ID_QVR32A, USB_DEVICE_ID_QVR32A, HID_QUIRK_HIDINPUT_FORCE },
{ USB_VENDOR_ID_INNOMEDIA, USB_DEVICE_ID_INNEX_GENESIS_ATARI, HID_QUIRK_MULTI_INPUT },
{ 0, 0 }