Browse Source

qcacld-3.0: Change to retrieve valid non 11P channels

11P channels are wrongly retrieved along with other valid channels
while using csr_get_cfg_valid_channels function call.
AS per the current implementation the above function call is used
to get the valid channel used for scan and roaming scenarios. Since
11P channels are not valid in scan and roaming scenarios
csr_get_cfg_valid_channels function is updated to retrieve non 11P
valid channels.

Change-Id: I25567b2791ac776480534534e10d900c2f9a6184
CRs-Fixed: 965218
Edhar, Mahesh Kumar 9 years ago
parent
commit
eb31abd2bf
1 changed files with 12 additions and 0 deletions
  1. 12 0
      core/sme/src/csr/csr_api_roam.c

+ 12 - 0
core/sme/src/csr/csr_api_roam.c

@@ -11856,10 +11856,22 @@ CDF_STATUS csr_roam_issue_stop_bss(tpAniSirGlobal pMac, uint32_t sessionId,
 CDF_STATUS csr_get_cfg_valid_channels(tpAniSirGlobal pMac, uint8_t *pChannels,
 				      uint32_t *pNumChan)
 {
+	uint8_t num_chan_temp = 0;
+	int i;
+
 	if (!IS_SIR_STATUS_SUCCESS(wlan_cfg_get_str(pMac,
 					WNI_CFG_VALID_CHANNEL_LIST,
 					(uint8_t *) pChannels, pNumChan)))
 		return CDF_STATUS_E_FAILURE;
+
+	for (i = 0; i < *pNumChan; i++) {
+		if (!cds_is_dsrc_channel(cds_chan_to_freq(pChannels[i]))) {
+			pChannels[num_chan_temp] = pChannels[i];
+			num_chan_temp++;
+		}
+	}
+
+	*pNumChan = num_chan_temp;
 	return CDF_STATUS_SUCCESS;
 }