diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index bb5ba7989e..d4102b2118 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -2493,14 +2493,14 @@ typedef struct sSirScanOffloadEvent { /** * struct sSirUpdateChanParam - channel parameters - * @chanId: ID of the channel + * @freq: Frequency of the channel * @pwr: power level * @dfsSet: is dfs supported or not * @half_rate: is the channel operating at 10MHz * @quarter_rate: is the channel operating at 5MHz */ typedef struct sSirUpdateChanParam { - uint8_t chanId; + uint32_t freq; uint8_t pwr; bool dfsSet; bool half_rate; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index c9209e6b73..87837c2a58 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -672,39 +672,40 @@ static void csr_roam_arrange_ch_list(struct mac_context *mac_ctx, /* Fist copy Non-DFS 5g channels */ for (i = 0; i < num_channel; i++) { - if (WLAN_REG_IS_5GHZ_CH(chan_list[i].chanId) && + if (WLAN_REG_IS_5GHZ_CH_FREQ(chan_list[i].freq) && !wlan_reg_is_dfs_ch(mac_ctx->pdev, - chan_list[i].chanId)) { + wlan_reg_freq_to_chan + (mac_ctx->pdev, chan_list[i].freq))) { qdf_mem_copy(&tmp_list[j++], &chan_list[i], sizeof(tSirUpdateChanParam)); - chan_list[i].chanId = INVALID_CHANNEL_ID; + chan_list[i].freq = 0; } } if (prefer_dfs) { /* next copy DFS channels (remaining channels in 5G) */ for (i = 0; i < num_channel; i++) { - if (WLAN_REG_IS_5GHZ_CH(chan_list[i].chanId)) { + if (WLAN_REG_IS_5GHZ_CH_FREQ(chan_list[i].freq)) { qdf_mem_copy(&tmp_list[j++], &chan_list[i], sizeof(tSirUpdateChanParam)); - chan_list[i].chanId = INVALID_CHANNEL_ID; + chan_list[i].freq = 0; } } } else { /* next copy 2G channels */ for (i = 0; i < num_channel; i++) { - if (WLAN_REG_IS_24GHZ_CH(chan_list[i].chanId)) { + if (WLAN_REG_IS_24GHZ_CH_FREQ(chan_list[i].freq)) { qdf_mem_copy(&tmp_list[j++], &chan_list[i], sizeof(tSirUpdateChanParam)); - chan_list[i].chanId = INVALID_CHANNEL_ID; + chan_list[i].freq = 0; } } } /* copy rest of the channels in same order to tmp list */ for (i = 0; i < num_channel; i++) { - if (chan_list[i].chanId != INVALID_CHANNEL_ID) { + if (chan_list[i].freq) { qdf_mem_copy(&tmp_list[j++], &chan_list[i], sizeof(tSirUpdateChanParam)); - chan_list[i].chanId = INVALID_CHANNEL_ID; + chan_list[i].freq = 0; } } /* copy tmp list to original channel list buffer */ @@ -767,8 +768,10 @@ static void csr_roam_sort_channel_for_early_stop(struct mac_context *mac_ctx, */ for (i = 0; i < num_channel; i++) { for (j = 0; j < num_fixed_greedy_chan; j++) { - if (chan_list->chanParam[i].chanId == - fixed_greedy_chan_list[j]) { + if (chan_list->chanParam[i].freq == + wlan_reg_chan_to_freq + (mac_ctx->pdev, + fixed_greedy_chan_list[j])) { match_found = true; break; } @@ -790,8 +793,9 @@ static void csr_roam_sort_channel_for_early_stop(struct mac_context *mac_ctx, */ for (i = 0; i < num_fixed_greedy_chan; i++) { for (j = 0; j < num_channel; j++) { - if (fixed_greedy_chan_list[i] == - chan_list->chanParam[j].chanId) { + if (wlan_reg_chan_to_freq(mac_ctx->pdev, + fixed_greedy_chan_list[i]) == + chan_list->chanParam[j].freq) { qdf_mem_copy( &chan_list_greedy->chanParam[num_greedy_chan], &chan_list->chanParam[j], @@ -903,8 +907,9 @@ static void csr_add_social_channels(struct mac_context *mac, if (wlan_reg_get_channel_state(mac->pdev, social_channel[i]) != CHANNEL_STATE_ENABLE) continue; - chan_list->chanParam[no_chan].chanId = - social_channel[i]; + chan_list->chanParam[no_chan].freq = + wlan_reg_chan_to_freq(mac->pdev, + social_channel[i]); chan_list->chanParam[no_chan].pwr = csr_find_channel_pwr(pScan->defaultPowerTable, social_channel[i]); @@ -1021,15 +1026,18 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac) continue; } } - pChanList->chanParam[num_channel].chanId = - pScan->base_channels.channelList[i]; + pChanList->chanParam[num_channel].freq = + wlan_reg_chan_to_freq + (mac->pdev, + pScan->base_channels.channelList[i]); pChanList->chanParam[num_channel].pwr = - csr_find_channel_pwr(pScan->defaultPowerTable, - pChanList->chanParam[num_channel].chanId); + csr_find_channel_pwr + (pScan->defaultPowerTable, + pScan->base_channels.channelList[i]); if (pScan->fcc_constraint) { - if (12 == pChanList->chanParam[num_channel]. - chanId) { + if (12 == + pScan->base_channels.channelList[i]) { pChanList->chanParam[num_channel].pwr = MAX_PWR_FCC_CHAN_12; QDF_TRACE(QDF_MODULE_ID_SME, @@ -1037,8 +1045,8 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac) "txpow for channel 12 is %d", MAX_PWR_FCC_CHAN_12); } - if (13 == pChanList->chanParam[num_channel]. - chanId) { + if (13 == + pScan->base_channels.channelList[i]) { pChanList->chanParam[num_channel].pwr = MAX_PWR_FCC_CHAN_13; QDF_TRACE(QDF_MODULE_ID_SME, @@ -1061,8 +1069,8 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac) else if (cds_is_10_mhz_enabled()) pChanList->chanParam[num_channel].half_rate = 1; QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, - "channel:%d, pwr=%d, DFS=%d qrate %d hrate %d ", - pChanList->chanParam[num_channel].chanId, + "Freq:%d, pwr=%d, DFS=%d qrate %d hrate %d ", + pChanList->chanParam[num_channel].freq, pChanList->chanParam[num_channel].pwr, pChanList->chanParam[num_channel].dfsSet, pChanList->chanParam[num_channel].quarter_rate, diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 7dad107d48..f10428a04e 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -121,16 +121,15 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, chan_list->vht_en, chan_list->vht_24_en); for (i = 0; i < chan_list->numChan; ++i) { - chan_p->mhz = - cds_chan_to_freq(chan_list->chanParam[i].chanId); + chan_p->mhz = chan_list->chanParam[i].freq; chan_p->cfreq1 = chan_p->mhz; chan_p->cfreq2 = 0; wma_handle->saved_chan.channel_list[i] = - chan_list->chanParam[i].chanId; + wlan_reg_freq_to_chan(wma_handle->pdev, + chan_list->chanParam[i].freq); - WMA_LOGD("chan[%d] = freq:%u chan:%d DFS:%d tx power:%d", + WMA_LOGD("chan[%d] = freq:%u DFS:%d tx power:%d", i, chan_p->mhz, - chan_list->chanParam[i].chanId, chan_list->chanParam[i].dfsSet, chan_list->chanParam[i].pwr);