From 6fff99355c2ec2bcc3a46cec775d0bd234eb171c Mon Sep 17 00:00:00 2001 From: Wu Gao Date: Fri, 23 Mar 2018 15:16:51 +0800 Subject: [PATCH] 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 --- core/wma/src/wma_dev_if.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 90a0cb077c6d..ef81fb274714 100644 --- a/core/wma/src/wma_dev_if.c +++ b/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); }