Backport better suspend/resume function for pinctrl-cherryview

Bug #1518855 reported by Phidias
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Won't Fix
Undecided
Phidias
linux (Ubuntu)
Fix Released
Medium
Phidias
Vivid
Fix Released
Undecided
Unassigned

Bug Description

[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 <email address hidden>
Date: Thu Dec 4 12:32:50 2014 +0200

    pinctrl: cherryview: Save and restore pin configs over system sle

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

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1518855

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Incomplete → Triaged
Changed in hwe-next:
assignee: nobody → Phidias (phidias-chiang)
status: New → Triaged
Luis Henriques (henrix)
Changed in linux (Ubuntu):
status: Triaged → Fix Committed
Changed in linux (Ubuntu Vivid):
status: New → Fix Committed
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-vivid' to 'verification-done-vivid'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-vivid
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.

Revision history for this message
Luis Henriques (henrix) wrote :

I believe that the best thing to do is to close this bug and open a new one with the information in comment #3. Phidias, could you please do that? (Feel free to assign that bug to me, or at least to subscribe me).

Revision history for this message
Phidias (phidias-chiang) wrote :
Changed in hwe-next:
status: Triaged → Won't Fix
Revision history for this message
Andy Whitcroft (apw) wrote :

Fix released in 3.19.0-47.53

Changed in linux (Ubuntu Vivid):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
tags: added: verification-done-vivid
removed: verification-needed-vivid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.