[Vivid][SRU][PATCH] #LP1518855 Backport better suspend/resume function for pinctrl-cherryview
Tim Gardner
tim.gardner at canonical.com
Fri Jan 15 13:51:59 UTC 2016
On 01/15/2016 02:15 AM, Phidias Chiang wrote:
> In bug https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1518855,
> the 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 at the moment.
>
> On Mon, Dec 21, 2015 at 1:41 PM, Phidias Chiang
> <phidias.chiang at canonical.com <mailto:phidias.chiang at canonical.com>> wrote:
>
> BugLink: http://bugs.launchpad.net/bugs/1518855
>
> [Impact]
>
> On some platforms the touchpad relies on pinctrl devices to provide
> GPIO interrupt, but in 3.19.0 pinctrl-cherryview doesn't support
> suspend well and will lose the config after suspend/resume,
> then touchpad can't be used.
>
> [Fix]
>
> There's a commit in 4.0-rc1 to add suspend/resume for
> pinctrl-cherryview:
>
> commit 9eb457b547cc731bc2fc251bd79891a60c64fc3e
> Refs: [HEAD]
> Author: Mika Westerberg <mika.westerberg at linux.intel.com
> <mailto:mika.westerberg at linux.intel.com>>
> Date: Thu Dec 4 12:32:50 2014 +0200
>
> pinctrl: cherryview: Save and restore pin configs over system sleep
>
> which can be clean cherry-picked
>
> [Test]
>
> 3.19.0-33 -> failed
> 4.2-> passed
> 4.0, 4.1 -> Can't suspend due to graphic driver failed so can't use
> to test
> 3.19.0-33 + patched module -> passed
>
>
> Mika Westerberg (1):
> pinctrl: cherryview: Save and restore pin configs over system sleep
>
> drivers/pinctrl/intel/pinctrl-cherryview.c | 104
> +++++++++++++++++++++++++++++
> 1 file changed, 104 insertions(+)
>
> --
> 2.5.0
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com <mailto:kernel-team at lists.ubuntu.com>
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
>
>
>
>
> --
> phid at irc.canonical.com <mailto:phid at irc.canonical.com>
> HWE Team
> Meng-Hsiu Chiang
>
>
Its an obviously correct patch, and an easy backport. I'd say apply it
as part of the SRU.
--
Tim Gardner tim.gardner at canonical.com
More information about the kernel-team
mailing list