diff options
author | Pratyush Anand <pratyush.anand@st.com> | 2012-06-15 10:24:00 +0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-06-15 15:42:49 +0400 |
commit | e8d4e8be860d935099ffcf695dcd29b55ae50b36 (patch) | |
tree | 4f20b9dd6a93aaebdd30c6d60f8bbbeda0bebbeb /drivers/usb | |
parent | 2347fc440558993013e8132791c409239da4fc0d (diff) | |
download | linux-e8d4e8be860d935099ffcf695dcd29b55ae50b36.tar.xz |
usb: dwc3: fix giveback of queued request in ep_dequeue
In case of ep_dequeue , if dequeued request was submitted for dma
transfer, then endpoint is stopped. Once endpoint is stooped, callback
for the dequeued request must be called.
Signed-off-by: Pratyush Anand <pratyush.anand@st.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 3df1a1973b05..ec70df7aba17 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -1091,7 +1091,7 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep, if (r == req) { /* wait until it is processed */ dwc3_stop_active_transfer(dwc, dep->number); - goto out0; + goto out1; } dev_err(dwc->dev, "request %p was not queued to %s\n", request, ep->name); @@ -1099,6 +1099,7 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep, goto out0; } +out1: /* giveback the request */ dwc3_gadget_giveback(dep, req, -ECONNRESET); |