diff mbox series

usb: dwc2: Set actual frame number for completed ISOC transfer

Message ID 5b2622f12cb88519089e533f30444588c9f4bb13.1552382749.git.hminas@synopsys.com (mailing list archive)
State Mainlined
Commit c8006f67ae0371900e601112d9f9cd8fff1c8387
Headers show
Series usb: dwc2: Set actual frame number for completed ISOC transfer | expand

Commit Message

Minas Harutyunyan March 12, 2019, 9:27 a.m. UTC
On ISOC transfer completion, in DDMA mode, set actual frame
number returning to function driver in usb_request.

Due to core limitation, returning frame number is 11-bit wide.

Signed-off-by: Minas Harutyunyan <hminas@synopsys.com>
---
 drivers/usb/dwc2/gadget.c | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index 6812a8a3a98b..7e05032fbd87 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -2157,6 +2157,11 @@  static void dwc2_gadget_complete_isoc_request_ddma(struct dwc2_hsotg_ep *hs_ep)
 			 */
 			if (!hs_ep->dir_in && ureq->length & 0x3)
 				ureq->actual += 4 - (ureq->length & 0x3);
+
+			/* Set actual frame number for completed transfers */
+			ureq->frame_number =
+				(desc_sts & DEV_DMA_ISOC_FRNUM_MASK) >>
+				DEV_DMA_ISOC_FRNUM_SHIFT;
 		}
 
 		dwc2_hsotg_complete_request(hsotg, hs_ep, hs_req, 0);