qcacld-3.0: Abort any ongoing p2p scans while enabling NAN

Framework disables p2p before enabling NAN as P2P+NAN concurrency
is not supported. NAN operations happens through wifihal and p2p
operations happen through wpa_supplicant which are two different
userspace components. Wifihal call to enable NAN may come to host
driver before disabling p2p through wpa_supplicant. There are high
chances for p2p scan to be in running state while NAN enable is
received. Firmware NAN state machine goes to inconsistent state
and disables NAN as p2p scan is running in such cases.
So, stop the ongoing p2p scan before enabling NAN as P2P+NAN
concurrency is not supported currently.
Also, forward the pdev to NAN component inorder to iterate through
all P2P vdevs.

Change-Id: Ibe30a5ebe90514aee4f6721cdc5476570524cad8
CRs-Fixed: 3054576
This commit is contained in:
Srinivas Dasari
2021-10-12 20:47:42 +05:30
committed by Madan Koyyalamudi
parent c7c5e7e32e
commit 3d0e41cad1
10 changed files with 88 additions and 16 deletions

View File

@@ -677,7 +677,7 @@ QDF_STATUS ucfg_nan_discovery_req(void *in_req, uint32_t req_type)
return status;
}
status = nan_discovery_pre_enable(psoc,
status = nan_discovery_pre_enable(req->pdev,
req->social_chan_2g_freq);
if (QDF_IS_STATUS_SUCCESS(status)) {
len = sizeof(struct nan_enable_req) +
@@ -1190,6 +1190,7 @@ QDF_STATUS ucfg_disable_nan_discovery(struct wlan_objmgr_psoc *psoc,
nan_req = qdf_mem_malloc(sizeof(*nan_req) + data_len);
if (!nan_req)
return -ENOMEM;
qdf_mem_zero(nan_req, sizeof(*nan_req) + data_len);
nan_req->psoc = psoc;
nan_req->disable_2g_discovery = true;