summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreelakshmi Konamki <skonam@codeaurora.org>2016-07-13 11:16:38 +0530
committerVishwajith Upendra <vishwaji@codeaurora.org>2016-08-17 11:21:47 -0700
commit752f5b133809ebf8c5e7c94ef4f3db759cb954de (patch)
tree2a6db7e2ce1130ccb3fe68bb96471bfdeef7e9ff
parent2e8180d84ba8c682dacbe6eba26c2279aa49eb0c (diff)
qcacld-3.0: Fix to remove 11P channels from channel list during scan
qcacld-2.0 to qcacld-3.0 propagation As per current implementation 11P channels are added to 5G band as part of driver initialization if FEATURE_STATICALLY_ADD_11P_CHANNELS is not defined. Kernel has enabled 11P channels due to which it gives 11p channels as part of scan command. This increases the scan time. Add changes to remove 11P channels from the received channel list during scan command. Change-Id: I4ae24a1813ac5d4738022b2f15a93736c2f05978 CRs-Fixed: 1003326
-rw-r--r--core/hdd/src/wlan_hdd_scan.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c
index 34cac57260e1..38da16492b67 100644
--- a/core/hdd/src/wlan_hdd_scan.c
+++ b/core/hdd/src/wlan_hdd_scan.c
@@ -48,6 +48,7 @@
#include "wlan_hdd_scan.h"
#include "cds_concurrency.h"
#include "wma_api.h"
+#include "cds_utils.h"
#define MAX_RATES 12
#define HDD_WAKE_LOCK_SCAN_DURATION (5 * 1000) /* in msec */
@@ -1263,6 +1264,7 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
uint8_t *pP2pIe = NULL;
hdd_adapter_t *con_sap_adapter;
uint16_t con_dfs_ch;
+ uint8_t num_chan = 0;
ENTER();
@@ -1442,14 +1444,22 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
goto free_mem;
}
for (i = 0, len = 0; i < request->n_channels; i++) {
- channelList[i] = request->channels[i]->hw_value;
+ if (cds_is_dsrc_channel(cds_chan_to_freq(
+ request->channels[i]->hw_value)))
+ continue;
+ channelList[num_chan] = request->channels[i]->hw_value;
len += snprintf(chList + len, 5, "%d ", channelList[i]);
+ num_chan++;
}
-
hdd_notice("Channel-List: %s", chList);
-
}
- scan_req.ChannelInfo.numOfChannels = request->n_channels;
+ if (!num_chan) {
+ hdd_err("Received zero non-dsrc channels");
+ status = -EINVAL;
+ goto free_mem;
+ }
+
+ scan_req.ChannelInfo.numOfChannels = num_chan;
scan_req.ChannelInfo.ChannelList = channelList;
/* set requestType to full scan */