<div dir="ltr">In bug <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1518855">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1518855</a>,<div>the SRU patch fix the problem that pinctrl-cherryview can't suspend which</div><div>make i2c touchpad unusable after S3.</div><div><br></div><div>But when I'm doing SRU verification I discovered that in about 1/5 time of S3,</div><div>the following error occurs:</div><div><br></div><div><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">[ 731.748182] i2c_hid i2c-DLL0725:01: i2c_hid_hwreset</span><br style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px"><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">  ...</span><br style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px"><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">  ...</span><br style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px"><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">[ 736.749017] i2c_hid i2c-DLL0725:01: failed to reset device.</span><br style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px"><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">[ 736.750015] dpm_run_callback(): i2c_hid_</span><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">resume+</span><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">0x0/0xe0 [i2c_hid] returns -61</span><br style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px"><span style="color:rgb(51,51,51);font-family:monospace;font-size:12px;line-height:18px">[ 736.750022] PM: Device i2c-DLL0725:01 failed to resume: error -61</span><br></div><div><br></div><div>and the touchpad dies, which didn't happen before with 60 runs of S3 test[1].</div><div><br></div><div>It appears to be a race condition in i2c-hid, and there's already a fix for this issue:</div><div><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9a327405014f4ef4cdad67a0686db82b9f23c62c">https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9a327405014f4ef4cdad67a0686db82b9f23c62c</a>,</div><div>I've built a kernel to test this fix, and it works, no more error -61, and it pass 10/10 so far.</div><div><br></div><div>Please advice the next step, and sorry for the inconvenience.</div><div><br></div><div>[1]: The error message showed up in the test, but the touchpad still works under i2c</div><div>so was not considered critical at the moment.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 21, 2015 at 1:41 PM, Phidias Chiang <span dir="ltr"><<a href="mailto:phidias.chiang@canonical.com" target="_blank">phidias.chiang@canonical.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">BugLink: <a href="http://bugs.launchpad.net/bugs/1518855" rel="noreferrer" target="_blank">http://bugs.launchpad.net/bugs/1518855</a><br>
<br>
[Impact]<br>
<br>
On some platforms the touchpad relies on pinctrl devices to provide<br>
GPIO interrupt, but in 3.19.0 pinctrl-cherryview doesn't support<br>
suspend well and will lose the config after suspend/resume,<br>
then touchpad can't be used.<br>
<br>
[Fix]<br>
<br>
There's a commit in 4.0-rc1 to add suspend/resume for pinctrl-cherryview:<br>
<br>
commit 9eb457b547cc731bc2fc251bd79891a60c64fc3e<br>
Refs: [HEAD]<br>
Author: Mika Westerberg <<a href="mailto:mika.westerberg@linux.intel.com">mika.westerberg@linux.intel.com</a>><br>
Date: Thu Dec 4 12:32:50 2014 +0200<br>
<br>
    pinctrl: cherryview: Save and restore pin configs over system sleep<br>
<br>
which can be clean cherry-picked<br>
<br>
[Test]<br>
<br>
3.19.0-33 -> failed<br>
4.2-> passed<br>
4.0, 4.1 -> Can't suspend due to graphic driver failed so can't use to test<br>
3.19.0-33 + patched module -> passed<br>
<br>
<br>
Mika Westerberg (1):<br>
  pinctrl: cherryview: Save and restore pin configs over system sleep<br>
<br>
 drivers/pinctrl/intel/pinctrl-cherryview.c | 104 +++++++++++++++++++++++++++++<br>
 1 file changed, 104 insertions(+)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.5.0<br>
<br>
<br>
--<br>
kernel-team mailing list<br>
<a href="mailto:kernel-team@lists.ubuntu.com">kernel-team@lists.ubuntu.com</a><br>
<a href="https://lists.ubuntu.com/mailman/listinfo/kernel-team" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailman/listinfo/kernel-team</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><a href="mailto:phid@irc.canonical.com" target="_blank">phid@irc.canonical.com</a><div>HWE Team<br>Meng-Hsiu Chiang</div></div></div>
</div>