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.
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 resume+ 0x0/0xe0 [i2c_hid] returns -61
...
...
[ 736.749017] i2c_hid i2c-DLL0725:01: failed to reset device.
[ 736.750015] dpm_run_callback(): i2c_hid_
[ 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: /git.kernel. org/cgit/ linux/kernel/ git/torvalds/ linux.git/ commit/ ?id=9a327405014 f4ef4cdad67a068 6db82b9f23c62c,
https:/
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.