OpenCloudOS-Kernel/drivers/hid/i2c-hid
Kai-Heng Feng f74210883e HID: i2c-hid: Skip SET_POWER SLEEP for Cirque touchpad on system suspend
[ Upstream commit 26dd6a5667f500c5d991f90a9ac5998a71afaf5c ]

There's a Cirque touchpad that wakes system up without anything touched
the touchpad. The input report is empty when this happens.
The reason is stated in HID over I2C spec, 7.2.8.2:
"If the DEVICE wishes to wake the HOST from its low power state, it can
issue a wake by asserting the interrupt."

This is fine if OS can put system back to suspend by identifying input
wakeup count stays the same on resume, like Chrome OS Dark Resume [0].
But for regular distro such policy is lacking.

Though the change doesn't bring any impact on power consumption for
touchpad is minimal, other i2c-hid device may depends on SLEEP control
power. So use a quirk to limit the change scope.

[0] https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/power_manager/docs/dark_resume.md

Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-10-17 15:24:31 +02:00
..
Kconfig HID: i2c-hid: add more DRM dependencies 2023-08-03 07:36:41 -07:00
Makefile HID: i2c-hid: elan: Add support for Elan eKTH6915 i2c-hid touchscreens 2022-06-08 11:46:23 +02:00
i2c-hid-acpi.c HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[] 2023-12-20 17:01:51 +01:00
i2c-hid-core.c HID: i2c-hid: Skip SET_POWER SLEEP for Cirque touchpad on system suspend 2024-10-17 15:24:31 +02:00
i2c-hid-dmi-quirks.c HID: retain initial quirks set up when creating HID devices 2023-02-09 14:24:30 +01:00
i2c-hid-of-elan.c HID: i2c-hid: elan: fix reset suspend current leakage 2024-06-16 13:47:40 +02:00
i2c-hid-of-goodix.c Merge branch 'for-6.5/i2c-hid' into for-linus 2023-06-27 22:42:28 +02:00
i2c-hid-of.c HID: i2c-hid-of: fix NULL-deref on failed power up 2024-02-23 09:24:55 +01:00
i2c-hid.h HID: multitouch: Add quirks for flipped axes 2023-01-18 10:08:51 +01:00