summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManjeet Singh <manjee@codeaurora.org>2016-08-11 15:40:29 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-01-12 06:40:29 -0800
commit734aba032238347109e469631f5a9ee47de9963f (patch)
tree40e4ca025504e91421292ba92575f7f0770f2317
parent2b3c6a3606ba75cd6abce04256a75c706dc917d3 (diff)
qcacld-3.0: Follow interface spec for NL80211_CMD_START_SCHED_SCAN
qcacld-2.0 to qcacld-3.0 propagation. If no SSID are passed to NL80211_CMD_START_SCHED_SCAN cmd, interface spec requires that an active scan is not needed. Therefore a passive scan is now requested by cfg80211_sched_scan_request for this case. Change-Id: I1b1b9232ffb9d8d5c0bc9a1d75145d39c9fe9e6b CRs-Fixed: 902092
-rw-r--r--core/hdd/src/wlan_hdd_scan.c5
-rw-r--r--core/mac/inc/sir_api.h2
-rw-r--r--core/wma/src/wma_scan_roam.c1
3 files changed, 8 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c
index 629660cb5120..63b0e0d57fe4 100644
--- a/core/hdd/src/wlan_hdd_scan.c
+++ b/core/hdd/src/wlan_hdd_scan.c
@@ -2633,6 +2633,11 @@ static int __wlan_hdd_cfg80211_sched_scan_start(struct wiphy *wiphy,
pPnoRequest->aNetworks[i].rssiThreshold =
request->match_sets[i].rssi_thold;
}
+ /* set scan to passive if no SSIDs are specified in the request */
+ if (0 == request->n_ssids)
+ pPnoRequest->do_passive_scan = true;
+ else
+ pPnoRequest->do_passive_scan = false;
for (i = 0; i < request->n_ssids; i++) {
j = 0;
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index d92dcf726474..5afff55896ae 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -2908,6 +2908,7 @@ typedef struct {
* struct sSirPNOScanReq - PNO Scan request structure
* @enable: flag to enable or disable
* @modePNO: PNO Mode
+ * @do_passive_scan: Flag to request passive scan to fw
* @ucNetworksCount: Number of networks
* @aNetworks: Preferred network list
* @sessionId: Session identifier
@@ -2922,6 +2923,7 @@ typedef struct {
typedef struct sSirPNOScanReq {
uint8_t enable;
eSirPNOMode modePNO;
+ bool do_passive_scan;
uint8_t ucNetworksCount;
tSirNetworkType aNetworks[SIR_PNO_MAX_SUPP_NETWORKS];
uint8_t sessionId;
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 036cc37d8c72..93ec5567feac 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -3033,6 +3033,7 @@ QDF_STATUS wma_pno_start(tp_wma_handle wma, tpSirPNOScanReq pno)
params->enable = pno->enable;
params->modePNO = (enum pno_mode) pno->modePNO;
params->ucNetworksCount = pno->ucNetworksCount;
+ params->do_passive_scan = pno->do_passive_scan;
params->sessionId = pno->sessionId;
params->fast_scan_period = pno->fast_scan_period;
params->slow_scan_period = pno->slow_scan_period;