From: John Stultz <john.stultz@linaro.org>
To: stable@vger.kernel.org
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>,
Fei Yang <fei.yang@intel.com>,
Sam Protsenko <semen.protsenko@linaro.org>,
Felipe Balbi <balbi@kernel.org>,
linux-usb@vger.kernel.org, John Stultz <john.stultz@linaro.org>
Subject: [PATCH 4.19.y 3/9] usb: dwc3: gadget: use num_trbs when skipping TRBs on ->dequeue()
Date: Thu, 27 Jun 2019 20:52:34 +0000 [thread overview]
Message-ID: <20190627205240.38366-4-john.stultz@linaro.org> (raw)
In-Reply-To: <20190627205240.38366-1-john.stultz@linaro.org>
From: Felipe Balbi <felipe.balbi@linux.intel.com>
commit c3acd59014148470dc58519870fbc779785b4bf7 upstream
Now that we track how many TRBs a request uses, it's easier to skip
over them in case of a call to usb_ep_dequeue(). Let's do so and
simplify the code a bit.
Cc: Fei Yang <fei.yang@intel.com>
Cc: Sam Protsenko <semen.protsenko@linaro.org>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: linux-usb@vger.kernel.org
Cc: stable@vger.kernel.org # 4.19.y
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
(cherry picked from commit c3acd59014148470dc58519870fbc779785b4bf7)
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
drivers/usb/dwc3/gadget.c | 28 ++++------------------------
1 file changed, 4 insertions(+), 24 deletions(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 019643a6ce9d..cb6dfea5d5e7 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1370,6 +1370,8 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
break;
}
if (r == req) {
+ int i;
+
/* wait until it is processed */
dwc3_stop_active_transfer(dep, true);
@@ -1407,32 +1409,12 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
if (!r->trb)
goto out0;
- if (r->num_pending_sgs) {
+ for (i = 0; i < r->num_trbs; i++) {
struct dwc3_trb *trb;
- int i = 0;
-
- for (i = 0; i < r->num_pending_sgs; i++) {
- trb = r->trb + i;
- trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
- dwc3_ep_inc_deq(dep);
- }
-
- if (r->needs_extra_trb) {
- trb = r->trb + r->num_pending_sgs + 1;
- trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
- dwc3_ep_inc_deq(dep);
- }
- } else {
- struct dwc3_trb *trb = r->trb;
+ trb = r->trb + i;
trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
dwc3_ep_inc_deq(dep);
-
- if (r->needs_extra_trb) {
- trb = r->trb + 1;
- trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
- dwc3_ep_inc_deq(dep);
- }
}
goto out1;
}
@@ -1443,8 +1425,6 @@ static int dwc3_gadget_ep_dequeue(struct usb_ep *ep,
}
out1:
- /* giveback the request */
-
dwc3_gadget_giveback(dep, req, -ECONNRESET);
out0:
--
2.17.1
next prev parent reply other threads:[~2019-06-27 20:52 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-27 20:52 [PATCH 4.19.y 0/9] Fix scheduling while atomic in dwc3_gadget_ep_dequeue John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 1/9] usb: dwc3: gadget: combine unaligned and zero flags John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 2/9] usb: dwc3: gadget: track number of TRBs per request John Stultz
2019-06-27 20:52 ` John Stultz [this message]
2019-06-27 20:52 ` [PATCH 4.19.y 4/9] usb: dwc3: gadget: extract dwc3_gadget_ep_skip_trbs() John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 5/9] usb: dwc3: gadget: introduce cancelled_list John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 6/9] usb: dwc3: gadget: move requests to cancelled_list John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 7/9] usb: dwc3: gadget: remove wait_end_transfer John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 8/9] Revert "usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup" John Stultz
2019-06-28 5:54 ` Jack Pham
2019-06-28 17:34 ` John Stultz
2019-06-27 20:52 ` [PATCH 4.19.y 9/9] usb: dwc3: gadget: Clear req->needs_extra_trb flag on cleanup John Stultz
2019-06-28 10:10 ` [PATCH 4.19.y 0/9] Fix scheduling while atomic in dwc3_gadget_ep_dequeue Gopal, Saranya
2019-06-28 18:14 ` John Stultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190627205240.38366-4-john.stultz@linaro.org \
--to=john.stultz@linaro.org \
--cc=balbi@kernel.org \
--cc=fei.yang@intel.com \
--cc=felipe.balbi@linux.intel.com \
--cc=linux-usb@vger.kernel.org \
--cc=semen.protsenko@linaro.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.