Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3dae06c authored by AKASH KUMAR's avatar AKASH KUMAR
Browse files

dwc3: Add check for sg queued trbs while reclaiming



If we're in the middle of series of chained TRBs, DWC3 will
avoid clearing HWO and SW has to do it manually.
We are doing it while reclaiming trbs for sg transfers.

Add check for sg queued trb and reclaim it as DWC3 skips
clearing HWO bit during sg transfers.

Change-Id: I200254728c0549da6534aea51daad94be6b6295e
Signed-off-by: default avatarAKASH KUMAR <quic_akakum@quicinc.com>
parent 8be449ff
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3277,7 +3277,13 @@ static int dwc3_gadget_ep_cleanup_completed_request(struct dwc3_ep *dep,
	 * processed by the core. Hence do not reclaim it until
	 * it is processed by the core.
	 */
	if (req->trb->ctrl & DWC3_TRB_CTRL_HWO) {
	/*
	 * If sg transfer are in progress, avoid checking
	 * HWO bit here as these will get cleared during
	 * ep reclaim.
	 */
	if ((req->trb->ctrl & DWC3_TRB_CTRL_HWO)
		       && (req->num_queued_sgs == 0))	{
		dbg_event(0xFF, "PEND TRB", dep->number);
		return 1;
	}