summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgaurank kathpalia <gkathpal@codeaurora.org>2019-12-12 16:25:06 +0530
committerIsaac Chiou <isaacchiou@google.com>2020-02-04 10:21:45 +0800
commit935d36afa1e13d5cbe5bcd72db86e6aac4c525c9 (patch)
tree268db4eaf468024d4404ac8bc49840fd233f958b
parent03dac54f7f20be6d799aa0349fcae5466cf5117a (diff)
downloadqcacld-935d36afa1e13d5cbe5bcd72db86e6aac4c525c9.tar.gz
qcacld-3.0: Lower down the channel BW in 2.4ghz case
Currently the driver in case of force SCC picks up 2.4ghz SCC channel if any other STA/AP is already up on that channel, so in the process of shifting in the API sap_validate_channel it picks up 2.4ghz and calls a reg API to set the freq related params to it. Now since the frequency for 2.4ghz is 40 mhz capable the max BW supported for 2.4ghz becomes 40 and the driver starts the SAP on 40mhz. Now since the OBSS scan is offloaded to the hostpad and now since it was driver which started the SAP on 40mhz there is no mechanism to start OBSS scan from driver, which leads to channel blockage if any legacy 11g, 11b lient is operating on the channel. Fix is to lower down the BW to 20Mhz if the SAP does a force SCC in 2.4ghz. Bug: 145577504 Test: au drop test Merged-In: I0d85dfb5e9e8332957d853173063e77d18ea600c Change-Id: I0d85dfb5e9e8332957d853173063e77d18ea600c CRs-Fixed: 2581495 Signed-off-by: Isaac Chiou <isaacchiou@google.com>
-rw-r--r--core/sap/src/sap_fsm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c
index a6387edc7c..614ebd8103 100644
--- a/core/sap/src/sap_fsm.c
+++ b/core/sap/src/sap_fsm.c
@@ -2360,6 +2360,9 @@ QDF_STATUS sap_goto_channel_sel(ptSapContext sap_context,
"%s: Override ch %d to %d due to CC Intf",
__func__, sap_context->channel, con_ch);
sap_context->channel = con_ch;
+ if (CDS_IS_CHANNEL_24GHZ(con_ch))
+ sap_context->ch_params.ch_width =
+ CH_WIDTH_20MHZ;
cds_set_channel_params(sap_context->channel, 0,
&sap_context->ch_params);
}
@@ -2421,6 +2424,9 @@ QDF_STATUS sap_goto_channel_sel(ptSapContext sap_context,
__func__, sap_context->channel,
con_ch);
sap_context->channel = con_ch;
+ if (CDS_IS_CHANNEL_24GHZ(con_ch))
+ sap_context->ch_params.ch_width =
+ CH_WIDTH_20MHZ;
cds_set_channel_params(sap_context->channel, 0,
&sap_context->ch_params);
}