mbox series

[0/1,SRU,N] Fix USB device suspend failure while HCD in S4 wakeup

Message ID 20241106072613.95472-1-chris.chiu@canonical.com
Headers show
Series Fix USB device suspend failure while HCD in S4 wakeup | expand

Message

Chris Chiu Nov. 6, 2024, 7:26 a.m. UTC
https://bugs.launchpad.net/bugs/2085410

[Impact]
More and more USB device suspend failure are caused by the un-expected HCD_FLAG_WAKEUP_PENDING on the USB host controller. It mostly happens on the USB devices connected to the high-speed root hub. It randomly happens when put the system into suspend

[Fix]
Fixed by the upstream fix https://lore.kernel.org/linux-usb/20241012094633.126736-1-duanchenghao@kylinos.cn/. Set wakeup to false if suspend type is either PM_EVENT_FREEZE or PM_EVENT_QUIESCE

[Test Case]
1. Power on machine and connect a USB device to the high-speed root hub. (Find your device in lsusb in the secondary root hub)
2. run checkbox-cli run com.canonical.certification::suspend-cycles-stress-test
3. observe the suspend/resume fail with the kernel message

[Where problems could occur]
Add more restriction on how the wakeup should be performed. Should be low risk

Duan Chenghao (1):
  UBUNTU: SAUCE: USB: Fix the issue of task recovery failure caused by
    USB status when S4 wakes up

 drivers/usb/core/hcd-pci.c | 15 +++++++++++++--
 include/linux/pm.h         |  3 ++-
 2 files changed, 15 insertions(+), 3 deletions(-)

Comments

Stefan Bader Nov. 6, 2024, 10:18 a.m. UTC | #1
On 06.11.24 08:26, Chris Chiu wrote:
> https://bugs.launchpad.net/bugs/2085410
> 
> [Impact]
> More and more USB device suspend failure are caused by the un-expected HCD_FLAG_WAKEUP_PENDING on the USB host controller. It mostly happens on the USB devices connected to the high-speed root hub. It randomly happens when put the system into suspend
> 
> [Fix]
> Fixed by the upstream fix https://lore.kernel.org/linux-usb/20241012094633.126736-1-duanchenghao@kylinos.cn/. Set wakeup to false if suspend type is either PM_EVENT_FREEZE or PM_EVENT_QUIESCE
> 
> [Test Case]
> 1. Power on machine and connect a USB device to the high-speed root hub. (Find your device in lsusb in the secondary root hub)
> 2. run checkbox-cli run com.canonical.certification::suspend-cycles-stress-test
> 3. observe the suspend/resume fail with the kernel message
> 
> [Where problems could occur]
> Add more restriction on how the wakeup should be performed. Should be low risk
> 
> Duan Chenghao (1):
>    UBUNTU: SAUCE: USB: Fix the issue of task recovery failure caused by
>      USB status when S4 wakes up
> 
>   drivers/usb/core/hcd-pci.c | 15 +++++++++++++--
>   include/linux/pm.h         |  3 ++-
>   2 files changed, 15 insertions(+), 3 deletions(-)
> 
Rejected for the following reasons:
- For SRU only upstream linux or linux-next (or a stable linux branch) 
are valid sources for patches.
- Please re-submit once this is really upstream

Only for changes to code only we carry or has been changed in a way 
where upstream fixes are not an option should be SAUCE patches once a 
distro series has released.

-Stefan