summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/mac/src/pe/lim/lim_send_sme_rsp_messages.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index 6656d27ab49d..b4bc8fe0ffd5 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -2215,7 +2215,8 @@ void lim_handle_csa_offload_msg(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
if (session_entry->vhtCapability &&
session_entry->htSupportedChannelWidthSet) {
- if (csa_params->ies_present_flag & lim_wbw_ie_present) {
+ if (csa_params->ies_present_flag & lim_wbw_ie_present &&
+ csa_params->new_ch_width) {
lim_process_csa_wbw_ie(mac_ctx, csa_params,
chnl_switch_info, session_entry);
lim_ch_switch->sec_ch_offset =
@@ -2270,6 +2271,18 @@ void lim_handle_csa_offload_msg(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
lim_ch_switch->sec_ch_offset =
ch_params.sec_ch_offset;
+ } else {
+ lim_ch_switch->state =
+ eLIM_CHANNEL_SWITCH_PRIMARY_AND_SECONDARY;
+ ch_params.ch_width = CH_WIDTH_40MHZ;
+ cds_set_channel_params(csa_params->channel,
+ 0, &ch_params);
+ lim_ch_switch->sec_ch_offset =
+ ch_params.sec_ch_offset;
+ chnl_switch_info->newChanWidth = CH_WIDTH_40MHZ;
+ chnl_switch_info->newCenterChanFreq0 =
+ ch_params.center_freq_seg0;
+ chnl_switch_info->newCenterChanFreq1 = 0;
}
session_entry->gLimChannelSwitch.ch_center_freq_seg0 =
chnl_switch_info->newCenterChanFreq0;