diff --git a/arch/arm64/configs/vendor/lahaina_QGKI.config b/arch/arm64/configs/vendor/lahaina_QGKI.config index 811293a26fc2..843da94de484 100644 --- a/arch/arm64/configs/vendor/lahaina_QGKI.config +++ b/arch/arm64/configs/vendor/lahaina_QGKI.config @@ -165,3 +165,4 @@ CONFIG_MMC_SDHCI_MSM=m CONFIG_DUMMY=y CONFIG_IOSCHED_BFQ=y CONFIG_BFQ_GROUP_IOSCHED=y +CONFIG_HID_QVR=y diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 41e6b5d9e62b..269f82befea7 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1276,6 +1276,10 @@ #define USB_DEVICE_ID_SIGNOTEC_VIEWSONIC_PD1011 0x0018 #define USB_VENDOR_ID_QVR5 0x045e +#define USB_VENDOR_ID_QVR32A 0x04b4 +#define USB_VENDOR_ID_NREAL 0x05a9 #define USB_DEVICE_ID_QVR5 0x0659 +#define USB_DEVICE_ID_QVR32A 0x00c3 +#define USB_DEVICE_ID_NREAL 0x0680 #endif diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index a8ed4fc040d8..5f2e6e31d2dc 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -175,7 +175,11 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_QVR5, USB_DEVICE_ID_QVR5), - HID_QUIRK_HIDINPUT_FORCE | HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + HID_QUIRK_HIDINPUT_FORCE | HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + { HID_USB_DEVICE(USB_VENDOR_ID_QVR32A, USB_DEVICE_ID_QVR32A), + HID_QUIRK_HIDINPUT_FORCE | HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + { HID_USB_DEVICE(USB_VENDOR_ID_NREAL, USB_DEVICE_ID_NREAL), + HID_QUIRK_HIDINPUT_FORCE | HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { 0 } }; @@ -566,6 +570,8 @@ static const struct hid_device_id hid_have_special_driver[] = { #endif #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) }, + { HID_USB_DEVICE(USB_VENDOR_ID_NREAL, USB_DEVICE_ID_NREAL) }, #endif #if IS_ENABLED(CONFIG_HID_RETRODE) { HID_USB_DEVICE(USB_VENDOR_ID_FUTURE_TECHNOLOGY, USB_DEVICE_ID_RETRODE2) }, diff --git a/drivers/hid/hid-qvr.c b/drivers/hid/hid-qvr.c index 247f52bce591..ee2c6a61514c 100644 --- a/drivers/hid/hid-qvr.c +++ b/drivers/hid/hid-qvr.c @@ -415,7 +415,9 @@ static ssize_t fd_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { - return snprintf(buf, 16, "%d\n", fd); + struct qvr_external_sensor *sensor = &qvr_external_sensor; + + return scnprintf(buf, 16, "%d\n", sensor->fd); } static ssize_t fd_store(struct kobject *kobj, @@ -619,6 +621,8 @@ static void qvr_external_sensor_device_remove(struct hid_device *hdev) 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) }, + { HID_USB_DEVICE(USB_VENDOR_ID_NREAL, USB_DEVICE_ID_NREAL) }, { } }; MODULE_DEVICE_TABLE(hid, qvr_external_sensor_table); diff --git a/drivers/hid/hid-qvr.h b/drivers/hid/hid-qvr.h index 72d27da72171..1619e0d826c5 100644 --- a/drivers/hid/hid-qvr.h +++ b/drivers/hid/hid-qvr.h @@ -16,8 +16,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 //CMD IDs