]> www.infradead.org Git - users/dwmw2/linux.git/commit
HID: i2c-hid: Delayed i2c resume wakeup for 0x0d42 Goodix touchpad
authorBartłomiej Maryńczak <marynczakbartlomiej@gmail.com>
Mon, 7 Oct 2024 22:25:42 +0000 (00:25 +0200)
committerJiri Kosina <jkosina@suse.com>
Fri, 18 Oct 2024 10:32:06 +0000 (12:32 +0200)
commit293c485cbac2607595fdaae2b1fb390fc7b2d014
tree4eebe02a221a7d19acba295be19ce12a09d30422
parent2934b12281abf4eb5f915086fd5699de5c497ccd
HID: i2c-hid: Delayed i2c resume wakeup for 0x0d42 Goodix touchpad

Patch for Goodix 27c6:0d42 touchpads found in Inspiron 5515 laptops.

After resume from suspend, one can communicate with this device just fine.
We can read data from it or request a reset,
but for some reason the interrupt line will not go up
when new events are available.
(it can correctly respond to a reset with an interrupt tho)

The only way I found to wake this device up
is to send anything to it after ~1.5s mark,
for example a simple read request, or power mode change.

In this patch, I simply delay the resume steps with msleep,
this will cause the set_power request to happen after
the ~1.5s barrier causing the device to resume its event interrupts.

Sleep was used rather than delayed_work
to make this workaround as non-invasive as possible.

[jkosina@suse.com: shortlog update]
Signed-off-by: Bartłomiej Maryńczak <marynczakbartlomiej@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-ids.h
drivers/hid/i2c-hid/i2c-hid-core.c