summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreelakshmi Konamki <c_skonam@qti.qualcomm.com>2016-04-19 11:34:13 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-04-20 18:28:24 +0530
commit6bda2d3ab94bb2cbcc96d01bf8573cef105011b6 (patch)
tree31819d02d86343d2155da5da1e86105ce77e17c6
parent98233bb198166ff225dfb50c157daaa37c396790 (diff)
qcacld-2.0: Fix to remove 11P channels from channel list during scan
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_cfg80211.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index f4268bc4f4b2..dd37b86812f2 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -16387,6 +16387,7 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
hdd_adapter_t *con_sap_adapter;
uint16_t con_dfs_ch;
bool is_p2p_scan = false;
+ uint8_t num_chan = 0;
ENTER();
@@ -16588,14 +16589,25 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy,
}
for (i = 0, len = 0; i < request->n_channels ; i++ )
{
- channelList[i] = request->channels[i]->hw_value;
- len += snprintf(chList+len, 5, "%d ", channelList[i]);
+ if (!vos_is_dsrc_channel(vos_chan_to_freq(
+ request->channels[i]->hw_value))) {
+ channelList[num_chan] = request->channels[i]->hw_value;
+ len += snprintf(chList+len, 5, "%d ", channelList[i]);
+ num_chan++;
+ }
}
hddLog(VOS_TRACE_LEVEL_INFO, "Channel-List: %s", chList);
}
- scanRequest.ChannelInfo.numOfChannels = request->n_channels;
+
+ if (!num_chan) {
+ hddLog(LOGE, FL("Received zero non-dsrc channels"));
+ status = -EINVAL;
+ goto free_mem;
+ }
+
+ scanRequest.ChannelInfo.numOfChannels = num_chan;
scanRequest.ChannelInfo.ChannelList = channelList;
/* set requestType to full scan */