On Tue, Nov 1, 2011 at 3:28 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote: > > The fact that you see the EHCI "resume" messages with commit 379021d5c0 applied > means that the EHCI really does have the PME Status bit set when it's being > polled, because the resume wouldn't be triggered otherwise. I don't think that is true. > So, it _seems_ like plugging the USB device into the xHCI port causes the EHCI's > PME Status bit to be set as well. I suspect that runtime-PM is doing something wrong, because I can not confirm that at all. > You can try to confirm this by looking at the PME Status bits of the > devices in question under 3.1 (ie. without commit 379021d5c0) before > (they should be unset) and after plugging in the USB device (the xHCI's PME > status should be set, the EHCI's one may or may not be set). Simply look at > the status line under the PM capability in the output of "lspci -vv" for > each interesting device. No. In 3.1, the *only* device with "PME+" is the NEC XHCI controller. An no dmesg entries or anything. There does seem to be ACPI interrupts happening, although I do not know whether they really were related to the USB insertion event. > I wonder if plugging a device into a known non-xHCI USB port triggers any > events with plain 3.1? Yes. Plugging something into the other USB port (which I originally didn't even realize is a USB port at all: I think it's an eSATA port as well) works. But it shows similar crazy "cross-talk" issues: when that event happens, *both* ehci controllers get woken up, *and* the xhci controller does too. I really think there is something wrong in the PM code. I do believe that there could be a BIOS issue too (let me be on record - for the millionth time - as saying that BIOS coders are monkeys on crack and to basically expect all firmware to be broken by default), but see above: the hardware isn't *that* broken. The PME+ status really only happened for the XHCI controller when I plugged in the USB cable in there. So the fact that current git will chatter about all those other controllers means that there must be paths that do *not* check PME. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html