Comment 46 for bug 1242321

Revision history for this message
James Ralston (ralston) wrote :

James Cloos wrote in comment 34:

> Switching to the performance govenor, removing the drive and re-adding it worked around the bug.
>
> Something must be blocking power to the xhci when the cpu is saving power...?

I believe that USB autosuspend is the culprit here. I'm seeing this problem on Fedora Linux as well, so I suspect it's an upstream bug.

For those of you who are having this problem: please try disabling USB autosuspend on all USB devices, by running the following command as root:

$ for F in /sys/bus/usb/devices/*/power/control; do echo on >"${F}"; done

You can then verify that the power control status for all devices is "on", not "auto". E.g.:

$ grep . /sys/bus/usb/devices/*/power/control
/sys/bus/usb/devices/1-1/power/control:on
/sys/bus/usb/devices/1-2/power/control:on
/sys/bus/usb/devices/7-1/power/control:on
/sys/bus/usb/devices/7-2/power/control:on
/sys/bus/usb/devices/usb1/power/control:on
/sys/bus/usb/devices/usb2/power/control:on
/sys/bus/usb/devices/usb3/power/control:on
/sys/bus/usb/devices/usb4/power/control:on
/sys/bus/usb/devices/usb5/power/control:on
/sys/bus/usb/devices/usb6/power/control:on
/sys/bus/usb/devices/usb7/power/control:on
/sys/bus/usb/devices/usb8/power/control:on

If you do this, do your USB3 ports work properly?

(For me, on Fedora Linux, disabling USB autosuspend made all my USB ports work perfectly.)

Note: if you've already caused the xhci_hcd driver to die, you'll need to reboot first.