mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
usb: dwc3: gadget: Refactor dwc3_gadget_ep_dequeue
The flow from function dwc3_gadget_ep_dequeue() is not easy to follow. Refactor it for easier read. No functional change in this commit. Change-Id: I254081abaf3ff7c6a7a598bf859804ecf3454a15 Signed-off-by: Thinh Nguyen <thinhn@synopsys.com> Signed-off-by: Felipe Balbi <balbi@kernel.org> Git-commit: fcd2def6639293c2bde2dc4f5dab63641a60b5b3 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git [mrana@codeaurora.org: resolve merge conflict related to debug log] Signed-off-by: Mayank Rana <mrana@codeaurora.org>
This commit is contained in:
parent
5d1c891218
commit
f9296fedb2
1 changed files with 20 additions and 18 deletions
|
|
@ -1679,27 +1679,33 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
|
|||
}
|
||||
|
||||
trace_dwc3_ep_dequeue(req);
|
||||
dbg_ep_dequeue(dep->number, req);
|
||||
|
||||
spin_lock_irqsave(&dwc->lock, flags);
|
||||
|
||||
list_for_each_entry(r, &dep->cancelled_list, list) {
|
||||
if (r == req)
|
||||
goto out0;
|
||||
if (r == req) {
|
||||
dbg_log_string("req:%pK found cancelled list",
|
||||
&req->request);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each_entry(r, &dep->pending_list, list) {
|
||||
if (r == req)
|
||||
break;
|
||||
if (r == req) {
|
||||
dbg_log_string("req:%pK found pending list",
|
||||
&req->request);
|
||||
dwc3_gadget_giveback(dep, req, -ECONNRESET);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (r != req) {
|
||||
list_for_each_entry(r, &dep->started_list, list) {
|
||||
if (r == req)
|
||||
break;
|
||||
}
|
||||
list_for_each_entry(r, &dep->started_list, list) {
|
||||
if (r == req) {
|
||||
struct dwc3_request *t;
|
||||
|
||||
dbg_log_string("req:%pK found started list",
|
||||
&req->request);
|
||||
/* wait until it is processed */
|
||||
dwc3_stop_active_transfer(dep, true, true);
|
||||
|
||||
|
|
@ -1710,18 +1716,14 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
|
|||
list_for_each_entry_safe(r, t, &dep->started_list, list)
|
||||
dwc3_gadget_move_cancelled_request(r);
|
||||
|
||||
goto out0;
|
||||
goto out;
|
||||
}
|
||||
dev_err(dwc->dev, "request %pK was not queued to %s\n",
|
||||
request, ep->name);
|
||||
ret = -EINVAL;
|
||||
goto out0;
|
||||
}
|
||||
|
||||
dbg_ep_dequeue(dep->number, req);
|
||||
dwc3_gadget_giveback(dep, req, -ECONNRESET);
|
||||
|
||||
out0:
|
||||
dev_err(dwc->dev, "request %pK was not queued to %s\n",
|
||||
request, ep->name);
|
||||
ret = -EINVAL;
|
||||
out:
|
||||
spin_unlock_irqrestore(&dwc->lock, flags);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in a new issue