On Tue, Nov 1, 2011 at 7:28 AM, Sarah Sharp <sarah.a.sharp@xxxxxxxxx> wrote: > > Can you try the attached patch and see if it helps your issues with > enabling runtime PM for the NEC USB 3.0 host controller? You may have > to increase the timeout for your system. Will try. HOWEVER. I think the patch is wrong even if it works. Matthew's suggestion sounds much better, but the *real* problem seems to be that the PCI "probe the device if PME is set" logic is broken, and does "resume+suspend" back-to-back - resulting in you needing to add the delay to your resume function. Doing back-to-back "enable/disable" things like that is simply wrong in general. It's wrong for the same reason that it is wrong to do "sti ; nop ; cli" on a CPU - we've had that bug too, where we wanted to enable interrupts, but left the window so small that real microarchitectures never actually got them. I think that the PCI "poll for PME" logic should just resume the device - and *not* suspend it again. Maybe it can suspend it next time around when it polls, if PME has been cleared. That should be (a) sane and (b) obviate any need for some random delay in some random driver. Jesse? That said, Matthew's suggestion sounds like a good idea regardless. 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