Wlan:Enable scan and aggregation if WLAN disconnects during VOIP call.

When VOIP call starts, HOST will disable SCAN and aggregation and
allow them only after VOIP call ends. But if WLAN disconnects during
VOIP call, HOST is not taking care of enabling scan and aggregation.
Hence enabling scan and aggregation if WLAN disconnects during VOIP
call.

Change-Id: I3f83afe5d80fbd0b742b90e614f800284c5c4524
CRs-Fixed: 715266.
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index 120adbe..1dc1de6 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -2702,6 +2702,7 @@
         case eCSR_ROAM_FT_REASSOC_FAILED:
             hddLog(LOGE, FL("Reassoc Failed with roamStatus: %d roamResult: %d SessionID: %d"),
                           roamStatus, roamResult, pAdapter->sessionId);
+            sme_resetCoexEevent(WLAN_HDD_GET_HAL_CTX(pAdapter));
             halStatus = hdd_DisConnectHandler( pAdapter, pRoamInfo, roamId, roamStatus, roamResult );
             /* Check if Mcast/Bcast Filters are set, if yes clear the filters here */
             if ((WLAN_HDD_GET_CTX(pAdapter))->hdd_mcastbcast_filter_set == TRUE) {
@@ -2786,6 +2787,7 @@
             {
                 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
                         "****eCSR_ROAM_DISASSOCIATED****");
+                sme_resetCoexEevent(WLAN_HDD_GET_HAL_CTX(pAdapter));
                 halStatus = hdd_DisConnectHandler( pAdapter, pRoamInfo, roamId, roamStatus, roamResult );
                 /* Check if Mcast/Bcast Filters are set, if yes clear the filters here */
                 pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h
index 1b73eeb..32433c2 100644
--- a/CORE/SME/inc/sme_Api.h
+++ b/CORE/SME/inc/sme_Api.h
@@ -3438,4 +3438,7 @@
                                      tANI_U8 tdlsSwMode);
 
 void sme_SetMiracastMode (tHalHandle hHal,tANI_U8 mode);
+
+void sme_resetCoexEevent(tHalHandle hHal);
+
 #endif //#if !defined( __SME_API_H )
diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c
index 818faeb..3e5ff6c 100644
--- a/CORE/SME/src/sme_common/sme_Api.c
+++ b/CORE/SME/src/sme_common/sme_Api.c
@@ -11489,3 +11489,26 @@
     pMac->miracast_mode = mode;
 }
 #endif /* WLAN_FEATURE_EXTSCAN */
+
+void sme_resetCoexEevent(tHalHandle hHal)
+{
+    tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
+
+    if (pMac == NULL)
+    {
+        printk("btc: %s pMac is NULL \n",__func__);
+        return;
+    }
+
+    VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO,
+              FL("isCoexScoIndSet: %d"), pMac->isCoexScoIndSet);
+
+    if (pMac->isCoexScoIndSet)
+    {
+        pMac->isCoexScoIndSet = 0;
+        ccmCfgSetInt(pMac, WNI_CFG_DEL_ALL_RX_TX_BA_SESSIONS_2_4_G_BTC, 0,
+                             NULL, eANI_BOOLEAN_FALSE);
+    }
+
+    return;
+}