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

qcacld-3.0: Not wait for all peer delete completion for P2P device

For P2P Device, firstly it will delete the last peer in wma vdev
detach, so not wait before deliver WMA_DEL_STA_SELF_REQ. Secondly,
no throughput case run on P2P device, and no need to take care the
case which no vdev stop response from FW and then deliver
WMI_VDEV_DELETE before WMI_PEER_DELETE.

Change-Id: I36358cbc6045db2dd77b354a37817991f261d856
CRs-Fixed: 2204327
Wu Gao 7 жил өмнө
parent
commit
6fff99355c

+ 13 - 1
core/wma/src/wma_dev_if.c

@@ -718,7 +718,7 @@ VDEV_DETACH:
 
 /**
  * wma_vdev_wait_for_peer_delete_completion(): wait for all peers of the vdev
- * to be deleted.
+ * to be deleted except vdev type is P2P device.
  * @wma_handle: wma handle
  * @vdev_id: vdev id
  *
@@ -734,6 +734,18 @@ void wma_vdev_wait_for_peer_delete_completion(tp_wma_handle wma_handle,
 		return;
 	}
 
+	/* For P2P Device, firstly it will delete the last peer in
+	 * wma vdev detach, so not wait before deliver
+	 * WMA_DEL_STA_SELF_REQ. Secondly, no throughput case run on
+	 * P2P device, and no need to take care the case which no
+	 * vdev stop response from FW.
+	 */
+	if ((iface->type == WMI_VDEV_TYPE_AP) &&
+	    (iface->sub_type == WMI_UNIFIED_VDEV_SUBTYPE_P2P_DEVICE)) {
+		WMA_LOGD("%s: P2P devices, do not wait", __func__);
+		return;
+	}
+
 	qdf_wait_for_event_completion(&iface->fw_peer_delete_completion,
 				      WMA_WAIT_PEER_DELETE_COMPLETION_TIMEOUT);
 }