HID: i2c-hid: Don't reset device upon system resume
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Thu, 6 Sep 2018 02:55:18 +0000 (10:55 +0800)
committerJiri Kosina <jkosina@suse.cz>
Thu, 6 Sep 2018 14:30:53 +0000 (16:30 +0200)
commit52cf93e63ee672a92f349edc6ddad86ec8808fd8
tree18c397df8f402281d5d78f087a59be73c3c98f00
parentade573eb1e03d1ee5abcb3359b1259469ab6e8ed
HID: i2c-hid: Don't reset device upon system resume

Raydium touchscreen triggers interrupt storm after system-wide suspend:

[ 179.085033] i2c_hid i2c-CUST0000:00: i2c_hid_get_input: incomplete report (58/65535)

According to Raydium, Windows driver does not reset the device after system
resume.

The HID over I2C spec does specify a reset should be used at intialization, but
it doesn't specify if reset is required for system suspend.

Tested this patch on other i2c-hid touchpanels I have and those touchpanels do
work after S3 without doing reset. If any regression happens to other
touchpanel vendors, we can use quirk for Raydium devices.

There's still one device uses I2C_HID_QUIRK_RESEND_REPORT_DESCR so keep it
there.

Cc: Aaron Ma <aaron.ma@canonical.com>
Cc: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-ids.h
drivers/hid/i2c-hid/i2c-hid.c