Merge "prima: Driver not able to configure the VHT-SAP" into wlan-driver.lnx.1.0
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 941befb..050d9b8 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -4038,7 +4038,7 @@
   REG_VARIABLE_STRING(CFG_ENABLE_DEFAULT_SAP, WLAN_PARAM_String,
                       hdd_config_t, enabledefaultSAP,
                       VAR_FLAGS_NONE,
-                      (void *)CFG_ENABLE_DEFAULT_SAP),
+                      (void *)CFG_ENABLE_DEFAULT_SAP_DEFAULT),
 
 };
 
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index ca45a93..e3686e8 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -13954,7 +13954,8 @@
       goto err_close_adapter;
    }
 
-   if (strlen(pHddCtx->cfg_ini->enabledefaultSAP) != 0) {
+   if ((strlen(pHddCtx->cfg_ini->enabledefaultSAP) != 0) &&
+       (strcmp(pHddCtx->cfg_ini->enabledefaultSAP, "") != 0)) {
        softapAdapter = hdd_open_adapter( pHddCtx, WLAN_HDD_SOFTAP,
                                        pHddCtx->cfg_ini->enabledefaultSAP,
                                        wlan_hdd_get_intf_addr(pHddCtx), FALSE);
@@ -14190,13 +14191,11 @@
        wlan_logging_set_log_level();
 
    hdd_register_mcast_bcast_filter(pHddCtx);
-   if (VOS_STA_SAP_MODE != hdd_get_conparam())
-   {
-      /* Action frame registered in one adapter which will
-       * applicable to all interfaces 
-       */
-      wlan_hdd_cfg80211_register_frames(pAdapter);
-   }
+
+   /* Action frame registered in one adapter which will
+    * applicable to all interfaces
+    */
+   wlan_hdd_cfg80211_register_frames(pAdapter);
 
    mutex_init(&pHddCtx->sap_lock);
    mutex_init(&pHddCtx->roc_lock);
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index 77edd48..8a7a8e8 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -1238,6 +1238,7 @@
 tANI_BOOLEAN csrIsAnySessionInConnectState( tpAniSirGlobal pMac );
 tANI_BOOLEAN csrIsAllSessionDisconnected( tpAniSirGlobal pMac );
 tANI_BOOLEAN csrIsStaSessionConnected( tpAniSirGlobal pMac );
+tANI_BOOLEAN csrIsP2pGoSessionConnected( tpAniSirGlobal pMac );
 tANI_BOOLEAN csrIsP2pSessionConnected( tpAniSirGlobal pMac );
 tANI_BOOLEAN csrIsAnySessionConnected( tpAniSirGlobal pMac );
 tANI_BOOLEAN csrIsInfraConnected( tpAniSirGlobal pMac );
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 4e46942..901e2da 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -392,7 +392,7 @@
      * candidates and resulting in disconnects.
      */
 
-    if (csrIsInfraApStarted(pMac))
+    if (csrIsInfraApStarted(pMac) && !csrIsP2pGoSessionConnected(pMac))
     {
       nNumChanCombinedConc = 1;
     }
@@ -7310,7 +7310,7 @@
          * candidates and resulting in disconnects.
          */
 
-        if (csrIsInfraApStarted(pMac))
+        if (csrIsInfraApStarted(pMac) && !csrIsP2pGoSessionConnected(pMac))
         {
             nNumChanCombinedConc = 1;
         }
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index 916caff..3d23fa5 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -1585,6 +1585,31 @@
     return( fRc );
 }
 
+tANI_BOOLEAN csrIsP2pGoSessionConnected( tpAniSirGlobal pMac )
+{
+    tANI_U32 i;
+    tCsrRoamSession *pSession = NULL;
+
+    for( i = 0; i < CSR_ROAM_SESSION_MAX; i++ )
+    {
+        if(CSR_IS_SESSION_VALID( pMac, i) &&
+           !csrIsConnStateDisconnected(pMac, i))
+        {
+            pSession = CSR_GET_SESSION(pMac, i);
+
+            if (NULL != pSession->pCurRoamProfile)
+            {
+                if (pSession->pCurRoamProfile->csrPersona == VOS_P2P_GO_MODE) {
+                    return eANI_BOOLEAN_TRUE;
+                }
+            }
+        }
+    }
+
+    return eANI_BOOLEAN_FALSE;
+}
+
+
 tANI_BOOLEAN csrIsP2pSessionConnected( tpAniSirGlobal pMac )
 {
     tANI_U32 i;
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index f500757..140206c 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -20389,6 +20389,8 @@
    }
    if ( pWdaParams->wdaMsgParam != NULL)
       vos_mem_free(pWdaParams->wdaMsgParam);
+   if (pWdaParams->wdaWdiApiMsgParam != NULL)
+       vos_mem_free(pWdaParams->wdaWdiApiMsgParam);
 
    vos_mem_free(pWdaParams) ;
    vosMsg.type = eWNI_SME_ROAM_SCAN_TRIGGER_RSP;
@@ -20424,6 +20426,8 @@
    }
    if ( pWdaParams->wdaMsgParam != NULL)
       vos_mem_free(pWdaParams->wdaMsgParam);
+   if (pWdaParams->wdaWdiApiMsgParam != NULL)
+       vos_mem_free(pWdaParams->wdaWdiApiMsgParam);
 
    vos_mem_free(pWdaParams) ;
    vosMsg.type = eWNI_SME_ROAM_SCAN_OFFLOAD_RSP;