summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandrs Vinarskis <alex.vinarskis@gmail.com>2024-10-31 08:31:42 +0100
committerJiri Kosina <jkosina@suse.com>2024-12-11 15:05:46 +0100
commite02b876cf4c171fecc0f3b4910ed3029db566369 (patch)
tree3bef498fee8f05faf4c57754cc10cbbb26c97ebd
parente61080220ae7b52920aed292c8d399ea8ce7cfdb (diff)
HID: i2c-hid: introduce qtec vendor, enable re-power-on quirk
This solves keyboard not working until suspend&resume issue on Dell XPS 9345 13" (codenamed 'tributo'). Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
-rw-r--r--drivers/hid/hid-ids.h2
-rw-r--r--drivers/hid/i2c-hid/i2c-hid-core.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 1f47fda809b9..6c8fdb25b2fc 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1089,6 +1089,8 @@
#define USB_VENDOR_ID_PRODIGE 0x05af
#define USB_DEVICE_ID_PRODIGE_CORDLESS 0x3062
+#define I2C_VENDOR_ID_QTEC 0x6243
+
#define USB_VENDOR_ID_QUANTA 0x0408
#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH 0x3000
#define USB_DEVICE_ID_QUANTA_OPTICAL_TOUCH_3001 0x3001
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index c1c2ef9a9d68..75544448c239 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -137,6 +137,11 @@ static const struct i2c_hid_quirks {
{ I2C_VENDOR_ID_CIRQUE, I2C_PRODUCT_ID_CIRQUE_1063,
I2C_HID_QUIRK_NO_SLEEP_ON_SUSPEND },
/*
+ * Without additional power on command, at least some QTEC devices send garbage
+ */
+ { I2C_VENDOR_ID_QTEC, HID_ANY_ID,
+ I2C_HID_QUIRK_RE_POWER_ON },
+ /*
* Sending the wakeup after reset actually break ELAN touchscreen controller
*/
{ USB_VENDOR_ID_ELAN, HID_ANY_ID,