diff mbox series

HID: i2c-hid: reset Synaptics SYNA2393 on resume

Message ID 20200425105817.27084-1-daniel.playfair.cal@gmail.com (mailing list archive)
State Mainlined
Commit 538f67407e2c0e5ed2a46e7d7ffa52f2e30c7ef8
Delegated to: Jiri Kosina
Headers show
Series HID: i2c-hid: reset Synaptics SYNA2393 on resume | expand

Commit Message

Daniel Playfair Cal April 25, 2020, 10:58 a.m. UTC
On the Dell XPS 9570, the Synaptics SYNA2393 touchpad generates spurious
interrupts after resuming from suspend until it receives some input or
is reset. Add it to the quirk I2C_HID_QUIRK_RESET_ON_RESUME so that it
is reset when resuming from suspend.

More information about the bug can be found in this mailing list
discussion: https://www.spinics.net/lists/linux-input/msg59530.html

Signed-off-by: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>
---
 drivers/hid/hid-ids.h              | 3 +++
 drivers/hid/i2c-hid/i2c-hid-core.c | 2 ++
 2 files changed, 5 insertions(+)

Comments

Jiri Kosina April 29, 2020, 7:45 p.m. UTC | #1
On Sat, 25 Apr 2020, Daniel Playfair Cal wrote:

> On the Dell XPS 9570, the Synaptics SYNA2393 touchpad generates spurious
> interrupts after resuming from suspend until it receives some input or
> is reset. Add it to the quirk I2C_HID_QUIRK_RESET_ON_RESUME so that it
> is reset when resuming from suspend.
> 
> More information about the bug can be found in this mailing list
> discussion: https://www.spinics.net/lists/linux-input/msg59530.html
> 
> Signed-off-by: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>

Applied, thanks Daniel.
diff mbox series

Patch

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index b18b13147a6f..984011835ce9 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1097,6 +1097,9 @@ 
 #define USB_DEVICE_ID_SYMBOL_SCANNER_2	0x1300
 #define USB_DEVICE_ID_SYMBOL_SCANNER_3	0x1200
 
+#define I2C_VENDOR_ID_SYNAPTICS     0x06cb
+#define I2C_PRODUCT_ID_SYNAPTICS_SYNA2393   0x7a13
+
 #define USB_VENDOR_ID_SYNAPTICS		0x06cb
 #define USB_DEVICE_ID_SYNAPTICS_TP	0x0001
 #define USB_DEVICE_ID_SYNAPTICS_INT_TP	0x0002
diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c
index 009000c5d55c..294c84e136d7 100644
--- a/drivers/hid/i2c-hid/i2c-hid-core.c
+++ b/drivers/hid/i2c-hid/i2c-hid-core.c
@@ -177,6 +177,8 @@  static const struct i2c_hid_quirks {
 		 I2C_HID_QUIRK_BOGUS_IRQ },
 	{ USB_VENDOR_ID_ALPS_JP, HID_ANY_ID,
 		 I2C_HID_QUIRK_RESET_ON_RESUME },
+	{ I2C_VENDOR_ID_SYNAPTICS, I2C_PRODUCT_ID_SYNAPTICS_SYNA2393,
+		 I2C_HID_QUIRK_RESET_ON_RESUME },
 	{ USB_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720,
 		I2C_HID_QUIRK_BAD_INPUT_SIZE },
 	{ 0, 0 }