On 28.09.2016 22:08, Pierre de Villemereuil wrote:
Hi!

When entering "cat /sys/bus/pci/devices/0000\:00\:14.0/power/runtime_status",
I got:
- on battery: suspended
- on AC: active


Ok thanks, So current guess is that xhci-hcd driver suspend was called,
it stopped the xhci controller, and expects PCI code to put it to D3.
xhci-hcd driver assumes it will be woken up later by a PCI PME# event at
device connect, which will call the resume function for the xhci-hcd driver.

But PCI never puts the controller to D3, and lspci shows xhci controller is
not capable of generating PME# events in D0 (PME(D0 shows "-")

Capabilities: [70] Power Management version 2
    Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
    Status: D0 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-

So we get stuck in D0, incapable of generating PME#, with a stopped xhci 
controller
waiting for PME# to wake us up.

I'll see if I can create a similar situation.

Keeping the host on should help as a temporary workaround for you:
echo on > /sys/bus/pci/devices/0000\:00\:14.0/power/control

There might be something in ACPI DSDT tables (provided by firmware) that
prevents PCI from putting xhci to D3.

-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to