diff options
| author | Manjeet Singh <manjee@codeaurora.org> | 2016-08-11 15:40:29 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-01-12 06:40:29 -0800 |
| commit | 734aba032238347109e469631f5a9ee47de9963f (patch) | |
| tree | 40e4ca025504e91421292ba92575f7f0770f2317 | |
| parent | 2b3c6a3606ba75cd6abce04256a75c706dc917d3 (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.c | 5 | ||||
| -rw-r--r-- | core/mac/inc/sir_api.h | 2 | ||||
| -rw-r--r-- | core/wma/src/wma_scan_roam.c | 1 |
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; |
