qcacld-3.0: Replace channel with frequency in sSirUpdateChanParam

Replace channel ID with frequency in struct sSirUpdateChanParam.

Change-Id: I5b4b355b154ed94980aa54a2beacc436cf2e0c17
CRs-Fixed: 2491919
This commit is contained in:
Tushnim Bhattacharyya
2019-07-17 11:44:03 -07:00
committed by nshrivas
parent 954840d5fe
commit 41668c648e
3 changed files with 39 additions and 32 deletions

View File

@@ -2493,14 +2493,14 @@ typedef struct sSirScanOffloadEvent {
/** /**
* struct sSirUpdateChanParam - channel parameters * struct sSirUpdateChanParam - channel parameters
* @chanId: ID of the channel * @freq: Frequency of the channel
* @pwr: power level * @pwr: power level
* @dfsSet: is dfs supported or not * @dfsSet: is dfs supported or not
* @half_rate: is the channel operating at 10MHz * @half_rate: is the channel operating at 10MHz
* @quarter_rate: is the channel operating at 5MHz * @quarter_rate: is the channel operating at 5MHz
*/ */
typedef struct sSirUpdateChanParam { typedef struct sSirUpdateChanParam {
uint8_t chanId; uint32_t freq;
uint8_t pwr; uint8_t pwr;
bool dfsSet; bool dfsSet;
bool half_rate; bool half_rate;

View File

@@ -672,39 +672,40 @@ static void csr_roam_arrange_ch_list(struct mac_context *mac_ctx,
/* Fist copy Non-DFS 5g channels */ /* Fist copy Non-DFS 5g channels */
for (i = 0; i < num_channel; i++) { 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, !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++], qdf_mem_copy(&tmp_list[j++],
&chan_list[i], sizeof(tSirUpdateChanParam)); &chan_list[i], sizeof(tSirUpdateChanParam));
chan_list[i].chanId = INVALID_CHANNEL_ID; chan_list[i].freq = 0;
} }
} }
if (prefer_dfs) { if (prefer_dfs) {
/* next copy DFS channels (remaining channels in 5G) */ /* next copy DFS channels (remaining channels in 5G) */
for (i = 0; i < num_channel; i++) { 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], qdf_mem_copy(&tmp_list[j++], &chan_list[i],
sizeof(tSirUpdateChanParam)); sizeof(tSirUpdateChanParam));
chan_list[i].chanId = INVALID_CHANNEL_ID; chan_list[i].freq = 0;
} }
} }
} else { } else {
/* next copy 2G channels */ /* next copy 2G channels */
for (i = 0; i < num_channel; i++) { 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], qdf_mem_copy(&tmp_list[j++], &chan_list[i],
sizeof(tSirUpdateChanParam)); 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 */ /* copy rest of the channels in same order to tmp list */
for (i = 0; i < num_channel; i++) { 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], qdf_mem_copy(&tmp_list[j++], &chan_list[i],
sizeof(tSirUpdateChanParam)); sizeof(tSirUpdateChanParam));
chan_list[i].chanId = INVALID_CHANNEL_ID; chan_list[i].freq = 0;
} }
} }
/* copy tmp list to original channel list buffer */ /* 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 (i = 0; i < num_channel; i++) {
for (j = 0; j < num_fixed_greedy_chan; j++) { for (j = 0; j < num_fixed_greedy_chan; j++) {
if (chan_list->chanParam[i].chanId == if (chan_list->chanParam[i].freq ==
fixed_greedy_chan_list[j]) { wlan_reg_chan_to_freq
(mac_ctx->pdev,
fixed_greedy_chan_list[j])) {
match_found = true; match_found = true;
break; 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 (i = 0; i < num_fixed_greedy_chan; i++) {
for (j = 0; j < num_channel; j++) { for (j = 0; j < num_channel; j++) {
if (fixed_greedy_chan_list[i] == if (wlan_reg_chan_to_freq(mac_ctx->pdev,
chan_list->chanParam[j].chanId) { fixed_greedy_chan_list[i]) ==
chan_list->chanParam[j].freq) {
qdf_mem_copy( qdf_mem_copy(
&chan_list_greedy->chanParam[num_greedy_chan], &chan_list_greedy->chanParam[num_greedy_chan],
&chan_list->chanParam[j], &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, if (wlan_reg_get_channel_state(mac->pdev,
social_channel[i]) != CHANNEL_STATE_ENABLE) social_channel[i]) != CHANNEL_STATE_ENABLE)
continue; continue;
chan_list->chanParam[no_chan].chanId = chan_list->chanParam[no_chan].freq =
social_channel[i]; wlan_reg_chan_to_freq(mac->pdev,
social_channel[i]);
chan_list->chanParam[no_chan].pwr = chan_list->chanParam[no_chan].pwr =
csr_find_channel_pwr(pScan->defaultPowerTable, csr_find_channel_pwr(pScan->defaultPowerTable,
social_channel[i]); social_channel[i]);
@@ -1021,15 +1026,18 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac)
continue; continue;
} }
} }
pChanList->chanParam[num_channel].chanId = pChanList->chanParam[num_channel].freq =
pScan->base_channels.channelList[i]; wlan_reg_chan_to_freq
(mac->pdev,
pScan->base_channels.channelList[i]);
pChanList->chanParam[num_channel].pwr = pChanList->chanParam[num_channel].pwr =
csr_find_channel_pwr(pScan->defaultPowerTable, csr_find_channel_pwr
pChanList->chanParam[num_channel].chanId); (pScan->defaultPowerTable,
pScan->base_channels.channelList[i]);
if (pScan->fcc_constraint) { if (pScan->fcc_constraint) {
if (12 == pChanList->chanParam[num_channel]. if (12 ==
chanId) { pScan->base_channels.channelList[i]) {
pChanList->chanParam[num_channel].pwr = pChanList->chanParam[num_channel].pwr =
MAX_PWR_FCC_CHAN_12; MAX_PWR_FCC_CHAN_12;
QDF_TRACE(QDF_MODULE_ID_SME, 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", "txpow for channel 12 is %d",
MAX_PWR_FCC_CHAN_12); MAX_PWR_FCC_CHAN_12);
} }
if (13 == pChanList->chanParam[num_channel]. if (13 ==
chanId) { pScan->base_channels.channelList[i]) {
pChanList->chanParam[num_channel].pwr = pChanList->chanParam[num_channel].pwr =
MAX_PWR_FCC_CHAN_13; MAX_PWR_FCC_CHAN_13;
QDF_TRACE(QDF_MODULE_ID_SME, 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()) else if (cds_is_10_mhz_enabled())
pChanList->chanParam[num_channel].half_rate = 1; pChanList->chanParam[num_channel].half_rate = 1;
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG, QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"channel:%d, pwr=%d, DFS=%d qrate %d hrate %d ", "Freq:%d, pwr=%d, DFS=%d qrate %d hrate %d ",
pChanList->chanParam[num_channel].chanId, pChanList->chanParam[num_channel].freq,
pChanList->chanParam[num_channel].pwr, pChanList->chanParam[num_channel].pwr,
pChanList->chanParam[num_channel].dfsSet, pChanList->chanParam[num_channel].dfsSet,
pChanList->chanParam[num_channel].quarter_rate, pChanList->chanParam[num_channel].quarter_rate,

View File

@@ -121,16 +121,15 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle,
chan_list->vht_en, chan_list->vht_24_en); chan_list->vht_en, chan_list->vht_24_en);
for (i = 0; i < chan_list->numChan; ++i) { for (i = 0; i < chan_list->numChan; ++i) {
chan_p->mhz = chan_p->mhz = chan_list->chanParam[i].freq;
cds_chan_to_freq(chan_list->chanParam[i].chanId);
chan_p->cfreq1 = chan_p->mhz; chan_p->cfreq1 = chan_p->mhz;
chan_p->cfreq2 = 0; chan_p->cfreq2 = 0;
wma_handle->saved_chan.channel_list[i] = 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, i, chan_p->mhz,
chan_list->chanParam[i].chanId,
chan_list->chanParam[i].dfsSet, chan_list->chanParam[i].dfsSet,
chan_list->chanParam[i].pwr); chan_list->chanParam[i].pwr);