diff options
author | Peter Chen <peter.chen@nxp.com> | 2020-02-14 15:14:13 +0800 |
---|---|---|
committer | Peter Chen <peter.chen@nxp.com> | 2020-02-28 11:15:58 +0800 |
commit | b201be894582f00db6081332fd14a0db258765aa (patch) | |
tree | 56b4cce5376902bc19bf59bd2a1ffb2c72687561 /drivers/usb/cdns3 | |
parent | ff01b0f10d5f5ada52140561b21387092dadf446 (diff) |
MLK-23349-3 usb: cdns3: gadget: link trb should point to next request
It has marked the dequeue trb as link trb, but its next segment
pointer is still itself, it causes the transfer can't go on. Fix
it by set its pointer as the trb address for the next request.
Reviewed-by: Jun Li <jun.li@nxp.com>
Fixes: f616c3bda47e ("usb: cdns3: Fix dequeue implementation")
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Diffstat (limited to 'drivers/usb/cdns3')
-rw-r--r-- | drivers/usb/cdns3/gadget.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c index 47ba0422caf1..450281eebe06 100644 --- a/drivers/usb/cdns3/gadget.c +++ b/drivers/usb/cdns3/gadget.c @@ -1878,7 +1878,7 @@ found: /* Update ring only if removed request is on pending_req_list list */ if (req_on_hw_ring) { link_trb->buffer = TRB_BUFFER(priv_ep->trb_pool_dma + - (priv_req->start_trb * TRB_SIZE)); + ((priv_req->end_trb + 1) * TRB_SIZE)); link_trb->control = (link_trb->control & TRB_CYCLE) | TRB_TYPE(TRB_LINK) | TRB_CHAIN; |