aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/gadget.c
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2012-05-24 03:30:01 -0400
committerFelipe Balbi <balbi@ti.com>2012-06-03 16:08:25 -0400
commitc4430a26948b84c0d820e83f8c640229f960d3b6 (patch)
tree7013c5a333e7200cfe3e59b56558e3a13bd693ac /drivers/usb/dwc3/gadget.c
parentfcc023c726b5879d8f3f0f0f48c45d09055272c4 (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.c7
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
1907static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) 1907static 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);