On Thu, Feb 21, 2013 at 10:53:20AM -0500, Tony Camuso wrote: > On 02/21/2013 10:46 AM, Alan Stern wrote: > >On Wed, 20 Feb 2013, Sarah Sharp wrote: > > > >>>Of course, in your case this doesn't matter. In the memory image, the > >>>timer is active. Hence it is still active when the system resumes, > >>>even though xhci_suspend _was_ called. > >> > >>Ah, I see now. So basically any memory changes in xhci_suspend will be > >>wiped on resume, but any hardware state should be saved. I was initially > >>concerned about the large number of memory writes in xhci_suspend (e.g. > >>zeroing the command ring), but on resume from hibernate, xhci_resume > >>basically ends up wiping the entire slate and re-initializing the host. > >> > >>It would be nice if xhci_suspend was passed a boolean to indicate it was > >>being called as part of the hibernate process. That way we could skip a > >>lot of unnecessary state saving. > > > >That's a good idea. Do you want to implement it? All it requires is > >to add an extra argument to the hc_driver.pci_suspend method, modify > >the PCI-based HCDs appropriately (there aren't many), and change the > >suspend-related pathways in core/hcd-pci.c. > > I have a new version of the patch incorporating Alan's explanation, but > I'll wait to see how Sarah responds to Alan's suggestion. While Alan's > is a more turbulent solution, it is a more correct one. Alan's idea would only be appropriate for the next kernel version. We would still need your patch for the stable trees. So please submit your new version. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html