On Mon, Mar 14, 2005 at 12:20:02AM +0100, Pavel Machek wrote: > > > I guess has_pci_pm check should be killed from pci_choose_state. It is > > > probably going to create some problems elsewhere.... > > > > Definitely. > > I fixed it in my tree, but I can't easily generate diffs just now (and > do not get as much testing as suspend2 :-). Bernard, could you remove > first two lines of pci_choose_state, verify it fixes uhci and submit > it as a patch? Not happy yet. Passing D0 to uhci suspend's method is the cause of the issue (it doesn't handle it particularly well), and D0 is also passed when PMSG_FREEZE is sent. So while it works for entering S3, it fails in the same way when preparing for the atomic copy in S4. Hacking around the issue by always using D3hot should return it back to the pre-drivermodel behaviour and mostly works. However at least one person has reported that even doing this, uhci_hcd alone suspends fine, but if both uhci_hcd and ehci_hcd are loaded, USB is dead on resume until reloading both modules. I'm still digging deeper and may need to enlist the help of linux-usb-devel... I'll let you know when I have something cleaner that works for everyone. Bernard. -- Bernard Blackham <bernard at blackham dot com dot au>