Эх сурвалжийг харах

qcacmn: Flush HTT endpoint TxLookUpQueue during de-init

If SSR happens, before any tx_completion is received for
packets queued on copy-engine, there will not be any
tx completions received for these packets and should be
freed during de-init.

Currently the TxLookUpQueue is being flushed only for
WMI and HTC_CTRL endpoint only. HTT_DATA_SVC endpoint
also has interrupt based tx completion processing
enabled for certain targets, and the packets for this
endpoint are not being flushed during de-init.

Fix the above issue, by flushing the TxLookUpQueue for
HTT_DATA_SVC endpoint if interrupt based tx completions
has been enabled for this CE pipe.

Change-Id: If79c2ace17c3bfb8ffeb03cb69c142f7ad43aedb
CRs-Fixed: 3307267
Rakesh Pillai 2 жил өмнө
parent
commit
8e7416b1e6
1 өөрчлөгдсөн 3 нэмэгдсэн , 1 устгасан
  1. 3 1
      htc/htc.c

+ 3 - 1
htc/htc.c

@@ -1022,7 +1022,9 @@ void htc_stop(HTC_HANDLE HTCHandle)
 		endpoint = &target->endpoint[i];
 		if (endpoint->service_id == WMI_CONTROL_SVC)
 			htc_flush_endpoint_txlookupQ(target, i, false);
-		else if (endpoint->service_id == HTC_CTRL_RSVD_SVC)
+		else if (endpoint->service_id == HTC_CTRL_RSVD_SVC ||
+			 (endpoint->service_id == HTT_DATA_MSG_SVC &&
+			  !endpoint->ul_is_polled))
 			htc_flush_endpoint_txlookupQ(target, i, true);
 	}
 	HTC_INFO("%s: resetting endpoints state\n", __func__);