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 }