diff options
| author | Kiran Kumar Lokere <klokere@codeaurora.org> | 2016-12-20 14:52:03 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-01-06 20:48:47 -0800 |
| commit | bb9b5d072481a64e3a25af00a7c0aabc8f4a5f18 (patch) | |
| tree | 59f5fddad8d7f646bf6719601602082953969350 | |
| parent | 917f0e94fcc283762e577160e59f61291db74fbd (diff) | |
qcacld-3.0: Fix CSA handling to the same channel
Currently CSA event is ignored if the new channel is same as
current channel and there is no check for the BW comparison.
CSA can be done to the same channel with different BW. Allow the
CSA processing with same channel if the CSA has the different BW
Change-Id: Ib12c86dccf1c745dfa66c9e712d283af2df7809e
CRs-Fixed: 1102539
| -rw-r--r-- | core/mac/src/pe/lim/lim_send_sme_rsp_messages.c | 7 | ||||
| -rw-r--r-- | core/wma/src/wma_features.c | 3 |
2 files changed, 8 insertions, 2 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 cedfe43d706c..5f950cc2c0e4 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 @@ -2310,6 +2310,13 @@ void lim_handle_csa_offload_msg(tpAniSirGlobal mac_ctx, tpSirMsgQ msg) } lim_log(mac_ctx, LOG1, FL("new ch width = %d space:%d"), session_entry->gLimChannelSwitch.ch_width, chan_space); + if ((session_entry->currentOperChannel == csa_params->channel) && + (session_entry->ch_width == + session_entry->gLimChannelSwitch.ch_width)) { + lim_log(mac_ctx, LOGE, FL( + "Ignore CSA, no change in ch and bw")); + goto err; + } lim_prepare_for11h_channel_switch(mac_ctx, session_entry); csa_offload_ind = qdf_mem_malloc(sizeof(tSmeCsaOffloadInd)); diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index f9fd707f4f60..927898c2db15 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -1665,8 +1665,7 @@ int wma_csa_offload_handler(void *handle, uint8_t *event, uint32_t len) * basic sanity check: requested channel should not be 0 * and equal to home channel */ - if ((0 == csa_offload_event->channel) || - (cur_chan == csa_offload_event->channel)) { + if (0 == csa_offload_event->channel) { WMA_LOGE("CSA Event with channel %d. Ignore !!", csa_offload_event->channel); qdf_mem_free(csa_offload_event); |
