On Sat, 6 Dec 2008, Rafael J. Wysocki wrote: > > Rework the handling of suspend and resume of PCI devices which have > no drivers or the drivers of which do not provide any suspend-resume > callbacks in such a way that their standard PCI configuration > registers will be saved and restored with interrupts disabled. Ok, I think this is good, but I _also_ think that we should do one more fix: - if a device uses the new-format suspend/resume structure, we should do the low-level save-restore _unconditionally_ in the PCI layer. Because apparently there is only a single user of the new format, and that single user got it wrong. So wouldn't it be much nicer to just _remove_ the code from the USB host controllers that does the save/restore thing. Quite frankly, the USB code really does look wrong. Not just in that it enables the BAR's before restoring them, but on the suspend side it actually puts the device into D3_hot _before_ it then does the whole "pci_enable_wake()", which I'm not at all sure will necessarily work. I'm pretty sure that you should enable wakeup events _before_ going to sleep. If the generic PCI layer unconditionally did the suspend as the last thing it does (and the resume as the first thing), then drivers couldn't do insane things like that, even by mistake. Hmm? Linus _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm