Hi Felipe, Here are the hibernation patches, as promised. The first two patches are cleanups/fixes for some things I found while implementing this, not strictly hibernation related. The third patch prepares the existing code for hibernation support without actually adding the hibernation code. The fourth patch adds the hibernation code itself. The fourth patch contains a description of how the DWC USB3 hibernation mode works. It also lists a few things that are not implemented yet. I will be following up with patches for those once this series gets the go-ahead. One thing I am not sure of, is the way I implemented the two platform-specific hibernation routines. They need to be selected by the bus glue code, since that's the only thing that knows what platform we're on. But we don't have a 'struct dwc3' at that point, so we can't pass in pointers to the routines to the core code. So I created two global function pointers in the core code that are exported with EXPORT_SYMBOL_GPL, and are filled in by the bus glue code. If there is a better way to do that please let me know. Also, I had to rename a couple of the existing source files, see the third patch for the reason why. Paul Zimmerman (4): usb: dwc3: clean up whitespace damage, typos, missing parens, etc. usb: dwc3: a few fixes/improvements usb: dwc3: first part of hibernation support usb: dwc3: second part of hibernation support drivers/usb/dwc3/Kconfig | 6 + drivers/usb/dwc3/Makefile | 8 +- drivers/usb/dwc3/core.c | 77 ++- drivers/usb/dwc3/core.h | 208 +++++-- drivers/usb/dwc3/{dwc3-omap.c => dwc3_omap.c} | 2 +- drivers/usb/dwc3/{dwc3-pci.c => dwc3_pci.c} | 14 +- drivers/usb/dwc3/ep0.c | 8 +- drivers/usb/dwc3/gadget.c | 493 ++++++++++---- drivers/usb/dwc3/gadget.h | 17 + drivers/usb/dwc3/haps_pwrctl.c | 145 ++++ drivers/usb/dwc3/haps_pwrctl.h | 51 ++ drivers/usb/dwc3/hibernate.c | 896 +++++++++++++++++++++++++ drivers/usb/dwc3/hibernate.h | 126 ++++ 13 files changed, 1847 insertions(+), 204 deletions(-) rename drivers/usb/dwc3/{dwc3-omap.c => dwc3_omap.c} (99%) rename drivers/usb/dwc3/{dwc3-pci.c => dwc3_pci.c} (94%) create mode 100644 drivers/usb/dwc3/haps_pwrctl.c create mode 100644 drivers/usb/dwc3/haps_pwrctl.h create mode 100644 drivers/usb/dwc3/hibernate.c create mode 100644 drivers/usb/dwc3/hibernate.h -- 1.7.4.4 -- 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