From 121bcb3def0846ed8a8b55c786d6157a54fc5359 Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Fri, 12 Jul 2019 13:26:09 +0800 Subject: [PATCH] qcacld-3.0: Add curr_op_freq in pe_session Add curr_op_freq in pe_session. And finally remove currentOperChannel from pe_session in next few changes. Change-Id: I2529a1637299b8dacf7fa6e2a81db851584453ee CRs-Fixed: 2489613 --- core/mac/src/pe/include/lim_session.h | 1 + core/mac/src/pe/lim/lim_ft.c | 4 +++- .../src/pe/lim/lim_process_sme_req_messages.c | 21 ++++++++++++------- core/mac/src/pe/lim/lim_reassoc_utils.c | 5 ++++- core/mac/src/pe/lim/lim_utils.c | 11 ++++++---- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h index 045e506bf87f..fad4ca7f2472 100644 --- a/core/mac/src/pe/include/lim_session.h +++ b/core/mac/src/pe/include/lim_session.h @@ -217,6 +217,7 @@ struct pe_session { tSirMacRateSet rateSet; tSirMacRateSet extRateSet; tSirMacHTOperatingMode htOperMode; + uint32_t curr_op_freq; uint8_t currentOperChannel; uint32_t curr_req_chan_freq; uint8_t LimRxedBeaconCntDuringHB; diff --git a/core/mac/src/pe/lim/lim_ft.c b/core/mac/src/pe/lim/lim_ft.c index a7670c6412e4..14b6a92d3c0c 100644 --- a/core/mac/src/pe/lim/lim_ft.c +++ b/core/mac/src/pe/lim/lim_ft.c @@ -597,7 +597,9 @@ void lim_fill_ft_session(struct mac_context *mac, ft_session->ssId.length); /* Copy The channel Id to the session Table */ ft_session->limReassocChannelId = pbssDescription->channelId; - ft_session->currentOperChannel = pbssDescription->channelId; + ft_session->curr_op_freq = pbssDescription->chan_freq; + ft_session->currentOperChannel = + wlan_reg_freq_to_chan(mac->pdev, ft_session->curr_op_freq); ft_session->limRFBand = lim_get_rf_band( ft_session->currentOperChannel); diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index f245830c6e7d..e92f4930635a 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -620,9 +620,11 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu session->beaconParams.beaconInterval = sme_start_bss_req->beaconInterval; - /* Store the channel number in session Table */ - session->currentOperChannel = - sme_start_bss_req->channelId; + /* Store the oper freq in session Table */ + session->curr_op_freq = wlan_reg_chan_to_freq( + mac_ctx->pdev, sme_start_bss_req->channelId); + session->currentOperChannel = wlan_reg_freq_to_chan( + mac_ctx->pdev, session->curr_op_freq); /* Store Persona */ session->opmode = sme_start_bss_req->bssPersona; @@ -1423,9 +1425,10 @@ __lim_process_sme_join_req(struct mac_context *mac_ctx, void *msg_buf) session->nwType, session->dot11mode, sme_join_req->force_24ghz_in_ht20); - /* Copy The channel Id to the session Table */ - session->currentOperChannel = bss_desc->channelId; - + /* Copy oper freq to the session Table */ + session->curr_op_freq = bss_desc->chan_freq; + session->currentOperChannel = wlan_reg_freq_to_chan( + mac_ctx->pdev, session->curr_op_freq); session->vhtCapability = IS_DOT11_MODE_VHT(session->dot11mode); if (session->vhtCapability) { @@ -5069,8 +5072,10 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx, (ch_change_req->ch_width ? 1 : 0); session_entry->htRecommendedTxWidthSet = session_entry->htSupportedChannelWidthSet; - session_entry->currentOperChannel = - ch_change_req->targetChannel; + session_entry->curr_op_freq = wlan_reg_chan_to_freq( + mac_ctx->pdev, ch_change_req->targetChannel); + session_entry->currentOperChannel = wlan_reg_freq_to_chan( + mac_ctx->pdev, session_entry->curr_op_freq); session_entry->limRFBand = lim_get_rf_band(session_entry->currentOperChannel); session_entry->cac_duration_ms = ch_change_req->cac_duration_ms; diff --git a/core/mac/src/pe/lim/lim_reassoc_utils.c b/core/mac/src/pe/lim/lim_reassoc_utils.c index 8ce0a3e9e2b6..362bb0b53d63 100644 --- a/core/mac/src/pe/lim/lim_reassoc_utils.c +++ b/core/mac/src/pe/lim/lim_reassoc_utils.c @@ -64,7 +64,10 @@ void lim_update_re_assoc_globals(struct mac_context *mac, tpSirAssocRsp pAssocRs /* Update the current Bss Information */ qdf_mem_copy(pe_session->bssId, pe_session->limReAssocbssId, sizeof(tSirMacAddr)); - pe_session->currentOperChannel = pe_session->limReassocChannelId; + pe_session->curr_op_freq = wlan_reg_chan_to_freq( + mac->pdev, pe_session->limReassocChannelId); + pe_session->currentOperChannel = wlan_reg_freq_to_chan( + mac->pdev, pe_session->curr_op_freq); pe_session->htSecondaryChannelOffset = pe_session->reAssocHtSupportedChannelWidthSet; pe_session->htRecommendedTxWidthSet = diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index ce98a3d187c3..155881d9bb44 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -2187,9 +2187,9 @@ void lim_switch_channel_cback(struct mac_context *mac, QDF_STATUS status, struct scheduler_msg mmhMsg = { 0 }; struct switch_channel_ind *pSirSmeSwitchChInd; - pe_session->currentOperChannel = - wlan_reg_freq_to_chan(mac->pdev, - pe_session->curr_req_chan_freq); + pe_session->curr_op_freq = pe_session->curr_req_chan_freq; + pe_session->currentOperChannel = wlan_reg_freq_to_chan( + mac->pdev, pe_session->curr_op_freq); /* We need to restore pre-channelSwitch state on the STA */ if (lim_restore_pre_channel_switch_state(mac, pe_session) != @@ -2322,7 +2322,10 @@ void lim_switch_primary_secondary_channel(struct mac_context *mac, if (pe_session->currentOperChannel != new_channel) { pe_warn("switch old chnl: %d --> new chnl: %d", pe_session->currentOperChannel, new_channel); - pe_session->currentOperChannel = new_channel; + pe_session->curr_op_freq = wlan_reg_chan_to_freq( + mac->pdev, new_channel); + pe_session->currentOperChannel = wlan_reg_freq_to_chan( + mac->pdev, pe_session->curr_op_freq); } if (pe_session->htSecondaryChannelOffset != pe_session->gLimChannelSwitch.sec_ch_offset) {