summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrunal Soni <ksoni@codeaurora.org>2016-07-14 23:36:00 -0700
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-07-29 18:15:21 -0700
commit35b404c2069bbf5dcaa5e821bca4fad327f83987 (patch)
treee60e01e35330dbcf2e1a75c6b39a4aef70d96803
parent4442777004aa670a0425643a0521250f9e391e95 (diff)
qcacld-3.0: Fix to avoid checking PCL when BSSID is given by upper layer
New flavor of OS is sending bssid along with STA connect command. When connect command comes with bssids then don't allow Preferred channel list algorithm as it won't be of any use and skipping the algorithm will improve initial scan time. Add log to inform whether BSSID hint is given by upper layer. Change-Id: I9c1f41a0e00f9b2afc19629558b93a2482da6581 CRs-Fixed: 1047052
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c6
-rw-r--r--core/sme/src/csr/csr_api_scan.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 626d8ef8e8e1..400fbe4320e4 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -9502,6 +9502,7 @@ int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
*/
qdf_mem_copy((void *)(pWextState->req_bssId.bytes),
bssid, QDF_MAC_ADDR_SIZE);
+ hdd_info("bssid is given by upper layer %pM", bssid);
} else if (bssid_hint) {
pRoamProfile->BSSIDs.numOfBSSIDs = 1;
qdf_mem_copy((void *)(pRoamProfile->BSSIDs.bssid),
@@ -9513,11 +9514,12 @@ int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
*/
qdf_mem_copy((void *)(pWextState->req_bssId.bytes),
bssid_hint, QDF_MAC_ADDR_SIZE);
- hdd_warn(" bssid_hint "MAC_ADDRESS_STR,
- MAC_ADDR_ARRAY(bssid_hint));
+ hdd_info("bssid_hint is given by upper layer %pM",
+ bssid_hint);
} else {
qdf_mem_zero((void *)(pRoamProfile->BSSIDs.bssid),
QDF_MAC_ADDR_SIZE);
+ hdd_info("no bssid given by upper layer");
}
hdd_notice("Connect to SSID: %.*s operating Channel: %u",
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index 99d024d36247..3967119f1e4f 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -1962,6 +1962,11 @@ static QDF_STATUS csr_calc_pref_val_by_pcl(tpAniSirGlobal mac_ctx,
if (NULL == mac_ctx || NULL == bss_descr)
return QDF_STATUS_E_FAILURE;
+ if (filter && (0 != filter->BSSIDs.numOfBSSIDs)) {
+ sms_log(mac_ctx, LOGW,
+ FL("filter has specific bssid, no point of boosting"));
+ return QDF_STATUS_SUCCESS;
+ }
if (is_channel_found_in_pcl(mac_ctx,
bss_descr->Result.BssDescriptor.channelId, filter) &&
@@ -2010,7 +2015,7 @@ csr_parse_scan_results(tpAniSirGlobal pMac,
csr_ll_lock(&pMac->scan.scanResultList);
- if (pFilter) {
+ if (pFilter && (0 == pFilter->BSSIDs.numOfBSSIDs)) {
if (cds_map_concurrency_mode(
&pFilter->csrPersona, &new_mode)) {
status = cds_get_pcl(new_mode,