Public bug reported:
[Impact]
A USB3 flash drive is not detected after a warm reboot on Intel Panther Lake-H
systems. The drive is missing from lsusb. No USB messages show up for it in the
kernel log. A cold boot brings the drive back.
Affected hardware: HP systems with the Intel Panther Lake-H PCH xHCI controller.
CID: 202512-38220
Reproduces in 2 or 3 of 3 warm reboots on the affected hardware (oem-7.0
kernels 7.0.0-1016-oem and 7.0.0-1018-oem).
Log excerpt from a failing boot (dyndbg enabled):
usb usb4-port2: not warm reset yet, waiting 200ms
hub 4-0:1.0: port_wait_reset: err = -16
The port stays in Polling or SS.Inactive with no device connected. The
hub keeps resetting the port for about 30 minutes.
[Fix]
On reboot, disable the connected USB3 root ports on the Intel Panther Lake-H
PCH xHCI controller. The disable runs after the controller is halted, and only
on a system restart. Writing PED takes each connected port to SS.Disabled while
the device still has power. The device then sees an orderly link loss before
the platform reset. The next host controller reset puts the ports back to their
default state.
These systems have no port power control, and VBUS stays on across a
warm reset. So the kernel cannot cycle the power itself. Power off and
other xHCI controllers are not changed.
This is an OEM patch. It is not in mainline yet. The same change was
tested on mainline 7.4.0-rc1 (05441d697f7f) before the backport.
[Test Plan]
Run the reproducer from the bug on the kernel under test. Each run:
1. Cold boot with a real power-off and RTC wake: sudo rtcwake -m off -s 90
2. Check the drive is present: lsusb | grep -i sandisk
3. Warm reboot: sudo reboot
4. After login, check again: lsusb | grep -i sandisk, and journalctl -k -b 0 |
grep 'usb 4-2'
Repeat for at least 3 runs. Each run starts from a cold boot with the
drive present.
Without the patch: the drive is missing from lsusb after the warm reboot, with
no usb 4-2 lines in the kernel log.
- 7.0.0-1016-oem: 2 of 3, 3 of 3 and 3 of 3 runs failed.
- 7.0.0-1018-oem: 2 of 3 and 3 of 3 runs failed.
- 7.3 OEM kernel (7.3.0-1003-oem, 7.3.0-1004-oem): 1 or 2 of 3 runs failed.
With the patch (7.0.0-2016-oem built from this branch): 0 of 15 runs
failed. The drive showed up as a SuperSpeed device on usb 4-2 after
every warm reboot.
Mainline 7.4.0-rc1 without the patch: 1 failure in 18 cycles. With the
change: 0 failures in 40 cycles.
Not tested yet: other USB3 drive models, other USB3 ports, other Panther
Lake SKUs, and 7.3 OEM kernels with the patch.
[Where problems could occur]
The change only applies to the Intel Panther Lake-H PCH xHCI controller, and
only on system restart. Power off and other controllers do not change.
It could break USB3 devices on those ports during a reboot. If the port
disable does not work as expected, the link could drop in a way the
device does not handle well. A bad case would be a hang or a slow
shutdown, because the code waits 100 ms once after the ports are
disabled.
If the device ID check is wrong and matches another controller, USB3
devices on that controller would be missing after a reboot, as in this
bug.
** Affects: hwe-next
Importance: Undecided
Status: New
** Affects: linux-oem-7.0 (Ubuntu)
Importance: Undecided
Status: New
** Tags: jira-stella-4240 oem-priority resolute stella
** Tags added: jira-stella-4240 oem-priority stella
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2172913
Title:
USB3 flash drive not detected after warm reboot on Intel Panther
Lake-H
To manage notifications about this bug go to:
https://bugs.launchpad.net/hwe-next/+bug/2172913/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs