From 9d41f61a0cbc8ee41d752a48103455255e745f59 Mon Sep 17 00:00:00 2001 From: Kiran Kumar Lokere Date: Wed, 11 May 2016 19:41:44 -0700 Subject: [PATCH] qcacld-3.0: Send the correct phy mode in SAP+STA mode In STA+SAP concurrency case the SAP channel is changed to due to concurrency operation. Since the new channel params are not updated in sap context, the old channel params are sent to WMA, hence the PHY MODE is passed as UNKNOWN to FW. Set the channel params when the SAP operating channel is changed due to concurrent operation. Change-Id: I8ac503a1b8993401b6fbdc247872539b72901564 CRs-Fixed: 1014368 --- core/cds/src/cds_reg_service.c | 7 +++++++ core/sap/src/sap_fsm.c | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/core/cds/src/cds_reg_service.c b/core/cds/src/cds_reg_service.c index 42cde31fe19f..67886938a56c 100644 --- a/core/cds/src/cds_reg_service.c +++ b/core/cds/src/cds_reg_service.c @@ -509,6 +509,13 @@ static void cds_set_2g_channel_params(uint16_t oper_ch, if (CH_WIDTH_MAX <= ch_params->ch_width) ch_params->ch_width = CH_WIDTH_40MHZ; + if ((cds_bw_value(ch_params->ch_width) > 20) && !sec_ch_2g) { + if (oper_ch >= 1 && oper_ch <= 5) + sec_ch_2g = oper_ch + 4; + else if (oper_ch >= 6 && oper_ch <= 13) + sec_ch_2g = oper_ch - 4; + } + while (ch_params->ch_width != CH_WIDTH_INVALID) { chan_state = cds_get_2g_bonded_channel_state(oper_ch, ch_params->ch_width, diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c index 9be884d40020..faea47e5d849 100644 --- a/core/sap/src/sap_fsm.c +++ b/core/sap/src/sap_fsm.c @@ -2148,6 +2148,8 @@ 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; + cds_set_channel_params(sap_context->channel, 0, + &sap_context->ch_params); } } #endif @@ -2180,6 +2182,8 @@ 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; + cds_set_channel_params(sap_context->channel, 0, + &sap_context->ch_params); } } #endif