Skip to contentSkip to conversation

usb: dwc3: gadget: Report isoc scheduled frame number

PATCH Superseded Felipe Balbi 1 participant 1 message Nov 8, 2018 USB

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 2/2 usb: dwc3: gadget: Report isoc scheduled frame number

Hi,

Quoted 15 lines · Thinh Nguyen

Report the scheduled frame number of an isochronous request.

---
Change in v2:
- Capture frame number at request cleanup

 drivers/usb/dwc3/gadget.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/usb/dwc3/gadget.c +0 -0
index 679c12e14522..5e5e799699de 100644

drivers/usb/dwc3/gadget.c static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep, · line 2350

Quoted 6 lines
drivers/usb/dwc3/gadget.c +3 -0
@@ -2345,6 +2345,10 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
 
 	req->request.actual = req->request.length - req->remaining;
 
+	/* Report scheduled frame number for isoc transfers */
+	if (usb_endpoint_xfer_isoc(dep->endpoint.desc))
+		req->request.start_frame = dep->frame_number;

yeah, this is really wrong. Since you're setting start_frame when cleaning up the request, this means that dep->frame_number was already updated due to XferComplete/XferInProgress. This means thart start_frame will report frame number of completion event, not start. So your debugging will be misleading.