[linux-pm] [PATCH] USB: Fix suspend-resume of PCI USB controllers

Len Brown lenb at kernel.org
Tue Jan 20 12:33:06 PST 2009


> > Alan, does this look ok for you?
> 
> There are a few things I don't like about it:
> 
> 	In usb_hcd_pci_suspend, the failure path for 
> 	pci_set_power_state doesn't undo all the changes
> 	that have already been made.  In fact, the easiest
> 	way to do the rest of the recovery probably is to
> 	call usb_hcd_pci_resume directly.
> 
> 	In the !has_pci_pm path we don't call pci_set_power_state.
> 	This means controllers with legacy power management won't
> 	get suspended.  Maybe pci_set_power_state should be
> 	called always, and has_pci_pm be used only for
> 	interpreting the return code and printing debug messages.
> 
> 	In usb_hcd_pci_resume, the pci_wake_from_d3 call
> 	should be moved up right next to the pci_enable_wake
> 	call.  It makes no sense for them to be separated by
> 	pci_enable_device and pci_set_master.  After all,
> 	even if you can't re-enable the device you probably
> 	don't want it to continue being a wakeup source.
> 
> 	It's a little annoying that several debug messages
> 	in usb_hcd_pci_resume have been removed.  Can't we
> 	display the power state upon entry, before trying to
> 	change it?
> 
> 	It stands out that the resume method contains no call
> 	to match pci_set_power_state() in the suspend method.
> 	There should at least be a comment about it.
> 
> Some of these problems predate Rafael's patch.  Given that it has 
> already helped a number of people, we might want to merge the patch 
> and then make additional changes to address these issues.

Rafael's patch is required for upstream to resume on my T61.

Tested-by: Len Brown <len.brown at intel.com>

Perhaps Greg can apply Rafael's patch now to fix upstream ASAP,
while Alan prepares a 2nd patch to address his observations above?

thanks,
Len Brown, Intel Open Source Technology Center





More information about the linux-pm mailing list