diff options
author | Felipe Balbi <balbi@ti.com> | 2012-05-24 03:30:01 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-06-03 16:08:25 -0400 |
commit | c4430a26948b84c0d820e83f8c640229f960d3b6 (patch) | |
tree | 7013c5a333e7200cfe3e59b56558e3a13bd693ac /drivers/usb/dwc3/gadget.c | |
parent | fcc023c726b5879d8f3f0f0f48c45d09055272c4 (diff) |
usb: dwc3: gadget: disable U1/U2 on disconnect
If we get a disconnect IRQ, we should take
the core out of low power mode so we can
reconnect afterwards.
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/gadget.c')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 867c476853ec..054ee5ec5c13 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c | |||
@@ -1906,11 +1906,9 @@ static void dwc3_clear_stall_all_ep(struct dwc3 *dwc) | |||
1906 | 1906 | ||
1907 | static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) | 1907 | static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) |
1908 | { | 1908 | { |
1909 | int reg; | ||
1910 | |||
1909 | dev_vdbg(dwc->dev, "%s\n", __func__); | 1911 | dev_vdbg(dwc->dev, "%s\n", __func__); |
1910 | #if 0 | ||
1911 | XXX | ||
1912 | U1/U2 is powersave optimization. Skip it for now. Anyway we need to | ||
1913 | enable it before we can disable it. | ||
1914 | 1912 | ||
1915 | reg = dwc3_readl(dwc->regs, DWC3_DCTL); | 1913 | reg = dwc3_readl(dwc->regs, DWC3_DCTL); |
1916 | reg &= ~DWC3_DCTL_INITU1ENA; | 1914 | reg &= ~DWC3_DCTL_INITU1ENA; |
@@ -1918,7 +1916,6 @@ static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) | |||
1918 | 1916 | ||
1919 | reg &= ~DWC3_DCTL_INITU2ENA; | 1917 | reg &= ~DWC3_DCTL_INITU2ENA; |
1920 | dwc3_writel(dwc->regs, DWC3_DCTL, reg); | 1918 | dwc3_writel(dwc->regs, DWC3_DCTL, reg); |
1921 | #endif | ||
1922 | 1919 | ||
1923 | dwc3_stop_active_transfers(dwc); | 1920 | dwc3_stop_active_transfers(dwc); |
1924 | dwc3_disconnect_gadget(dwc); | 1921 | dwc3_disconnect_gadget(dwc); |