On Tue, Feb 12, 2013 at 2:16 PM, Felipe Balbi ba...@ti.com wrote:
Hi folks,
this patchset implements the bare minimum PM
support for dwc3. We're not even playing with
the PHYs yet.
Please give this a good round of test as PM
always tends to break things apart.
I haven't thoroughly tested this yet, but I
thought that I should give people enough time
to run all sorts of tests on their platforms.
The target for this patchset is v3.10, so there's
more than enough time to verify functionality
with all 4 patches applied.
Note, also, that this patchset will help us finally
adding Hibernation support, but let's first make
sure that non-Hibernation PM works as expected,
since that's far more easier to implement and there
are platforms out there (err OMAP5) not using
the hibernation features ;-)
(not thoroughly tested yet, specially the
pci_device_disable()/pci_device_enable() part)
Note that I will still rebase this patchset
once v3.9-rc1 is tagged because of the latest
DT support patches.
If anyone is interested in helping testing these
patches, I have them all available on dwc3-dev-pm-ops
branch on my tree, together with some other patches
which I have already sent to this mailing list.
Changes since v3:
- Fixed warning when building host-only versions
Changes since v2:
- Fixed a possible problem when gadget driver wasn't loaded
- Added PCIe and Exynos support
(for Exynos, I took Vikas' original patch)
Changes since v1:
- added one extra patch to keep track of pullups state
- modified PM support patch to reconnect pullups if they were
connected
before suspending
cheers
Felipe Balbi (10):
usb: dwc3: core: don't forget to free coherent memory
usb: dwc3: core: explicitly setup and cleanup event buffers
usb: dwc3: gadget: introduce and use enable/disable irq methods
usb: dwc3: gadget: save state of pullups
usb: dwc3: core: add power management support
usb: dwc3: omap: fix a typo on of_device_id
usb: dwc3: omap: introduce enable/disable IRQ methods
usb: dwc3: omap: remove unused fields from private structure
usb: dwc3: omap: add basic suspend/resume support
usb: dwc3: pci: add basic suspend/resume support
Vikas Sajjan (1):
usb: dwc3: exynos: add basic suspend/resume support
drivers/usb/dwc3/core.c| 144
-
drivers/usb/dwc3/core.h| 34 ++
drivers/usb/dwc3/dwc3-exynos.c | 34 ++
drivers/usb/dwc3/dwc3-omap.c | 119 +-
drivers/usb/dwc3/dwc3-pci.c| 38 +++
drivers/usb/dwc3/gadget.c | 141 ++--
6 files changed, 432 insertions(+), 78 deletions(-)
Tested this patch-series on exynos5250 platform, alongwith [PATCH v2]
usb: xhci: add the suspend/resume functionality
after making following change in [PATCH v4 05/11] usb: dwc3: core: add
power management support:
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 8aa29b5..9444fbe 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -660,6 +660,9 @@ static int dwc3_suspend(struct device *dev)
break;
}
+ usb_phy_shutdown(dwc-usb2_phy);
+ usb_phy_shutdown(dwc-usb3_phy);
+
dwc-gctl = dwc3_readl(dwc-regs, DWC3_GCTL);
spin_unlock_irqrestore(dwc-lock, flags);
@@ -675,6 +678,10 @@ static int dwc3_resume(struct device *dev)
dwc3_writel(dwc-regs, DWC3_GCTL, dwc-gctl);
+ usb_phy_init(dwc-usb2_phy);
+ usb_phy_init(dwc-usb3_phy);
+ mdelay(100);
+
switch (dwc-mode) {
case DWC3_MODE_DEVICE:
case DWC3_MODE_DRD:
Tested-by: Vivek Gautam gautam.vi...@samsung.com
--
1.8.1.rc1.5.g7e0651a
--
Thanks Regards
Vivek
--
To unsubscribe from this list: send the line unsubscribe linux-usb in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html