]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
HID: i2c-hid: Don't reset device upon system resume
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Thu, 13 Sep 2018 08:03:00 +0000 (10:03 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Mon, 1 Oct 2018 13:19:08 +0000 (15:19 +0200)
commit46037348dc8f99218cfd3c5d81964b73c5fe40eb
treee14c045a66a4c2f7e565c477c5ddb7493ac18288
parent65cc20871d0e7b1d37c4bc7229dd9e5e26834e2e
HID: i2c-hid: Don't reset device upon system resume

BugLink: https://bugs.launchpad.net/bugs/1792309
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>
(backported from commit 52cf93e63ee672a92f349edc6ddad86ec8808fd8)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Aaron Ma <aaron.ma@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/hid/hid-ids.h
drivers/hid/i2c-hid/i2c-hid.c