Comment 3 for bug 1518855

Revision history for this message
Phidias (phidias-chiang) wrote :

This SRU patch fix the problem that pinctrl-cherryview can't suspend which
make i2c touchpad unusable after S3.

But when I'm doing SRU verification I discovered that in about 1/5 time of S3,
the following error occurs:

[ 731.748182] i2c_hid i2c-DLL0725:01: i2c_hid_hwreset
  ...
  ...
[ 736.749017] i2c_hid i2c-DLL0725:01: failed to reset device.
[ 736.750015] dpm_run_callback(): i2c_hid_resume+0x0/0xe0 [i2c_hid] returns -61
[ 736.750022] PM: Device i2c-DLL0725:01 failed to resume: error -61

and the touchpad dies, which didn't happen before with 60 runs of S3 test[1].

It appears to be a race condition in i2c-hid, and there's already a fix for this issue:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9a327405014f4ef4cdad67a0686db82b9f23c62c,
I've built a kernel to test this fix, and it works, no more error -61, and it pass 10/10 so far.

Please advice the next step, and sorry for the inconvenience.

[1]: The error message showed up in the test, but the touchpad still works under i2c so was not considered critical.