]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit58d354dd3559d74e0b977cc23814c8259d97f583
tree18c397df8f402281d5d78f087a59be73c3c98f00
parent5b92442dcb29968c30b64845c27f712aea24d383
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