From 833410028805f1baca711bf99f0db13e1dc01565 Mon Sep 17 00:00:00 2001 From: Pratyush Anand Date: Mon, 2 Jul 2012 10:21:54 +0530 Subject: [PATCH] --- yaml --- r: 316967 b: refs/heads/master c: e274a31e29b6a097c32f526493f4ebce10856dcb h: refs/heads/master i: 316965: 7efae265b8b050a27ac9afe290a4c09fbd787660 316963: e3c04990cca3805f5f8ce5e9efeaeb320b144ecf 316959: 4684d5d01087ecdf21576ee33a797c8f32bc108d v: v3 --- [refs] | 2 +- trunk/drivers/usb/dwc3/ep0.c | 9 +++++++++ trunk/drivers/usb/dwc3/gadget.c | 1 - 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b96968fb0e48..6c85578e6cc3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dd864f20b382b131bfe10c87c5c81985f5bafa54 +refs/heads/master: e274a31e29b6a097c32f526493f4ebce10856dcb diff --git a/trunk/drivers/usb/dwc3/ep0.c b/trunk/drivers/usb/dwc3/ep0.c index 1315e787a316..9b94886b66e5 100644 --- a/trunk/drivers/usb/dwc3/ep0.c +++ b/trunk/drivers/usb/dwc3/ep0.c @@ -474,6 +474,7 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) { u32 cfg; int ret; + u32 reg; dwc->start_config_issued = false; cfg = le16_to_cpu(ctrl->wValue); @@ -488,6 +489,14 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) /* if the cfg matches and the cfg is non zero */ if (cfg && (!ret || (ret == USB_GADGET_DELAYED_STATUS))) { dwc->dev_state = DWC3_CONFIGURED_STATE; + /* + * Enable transition to U1/U2 state when + * nothing is pending from application. + */ + reg = dwc3_readl(dwc->regs, DWC3_DCTL); + reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA); + dwc3_writel(dwc->regs, DWC3_DCTL, reg); + dwc->resize_fifos = true; dev_dbg(dwc->dev, "resize fifos flag SET\n"); } diff --git a/trunk/drivers/usb/dwc3/gadget.c b/trunk/drivers/usb/dwc3/gadget.c index e7450931125a..39626e366a82 100644 --- a/trunk/drivers/usb/dwc3/gadget.c +++ b/trunk/drivers/usb/dwc3/gadget.c @@ -2020,7 +2020,6 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc) reg = dwc3_readl(dwc->regs, DWC3_DCTL); reg &= ~DWC3_DCTL_TSTCTRL_MASK; - reg |= (DWC3_DCTL_ACCEPTU1ENA | DWC3_DCTL_ACCEPTU2ENA); dwc3_writel(dwc->regs, DWC3_DCTL, reg); dwc->test_mode = false;