From 9da81d05559d6fa914795247157dc893bce12ed7 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Wed, 30 Aug 2017 16:26:03 +0530 Subject: [PATCH] qcacld-3.0: Fix SAP close issue in dual band SAP In Dual band SAP+SAP, if channel change for a SAP, the SAP get stuck in eSAP_DISCONNECTING state, waiting for channel change indication for the concurrent SAP, which may never come as this is Dual band SAP+SAP and both are on different bands. Now when stop adapter is called for this SAP, the stop BSS fails as its already in disconnecting state and due to this it is not deleted cleanly. To fix this if DBS is enabled change the channel of the AP on which CSA was initiated without waiting for other SAP interface. Change-Id: I54d903d4fc0694b16c1f1debf52ffe2a6dad0ba9 CRs-Fixed: 2097002 --- core/sap/src/sap_api_link_cntl.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c index 9ca306c44db8..bc0d435d34af 100644 --- a/core/sap/src/sap_api_link_cntl.c +++ b/core/sap/src/sap_api_link_cntl.c @@ -612,9 +612,13 @@ wlansap_roam_process_dfs_chansw_update(tHalHandle hHal, * Fetch the number of SAP interfaces. If the number of sap Interface * more than one then we will make is_sap_ready_for_chnl_chng to true * for that sapctx. If there is only one SAP interface then process - * immediately + * immediately. If Dual BAND SAP is enabled then also process + * immediately, as in this case the both SAP will be in different band + * and channel change on one SAP doesnt mean channel change on + * other interface. */ - if (sap_get_total_number_sap_intf(hHal) <= 1) { + if (sap_get_total_number_sap_intf(hHal) <= 1 || + policy_mgr_is_current_hwmode_dbs(mac_ctx->psoc)) { /* Send channel switch request */ sap_event.event = eWNI_SME_CHANNEL_CHANGE_REQ; sap_event.params = 0;