wlan: adding cfg.ini parameter to configure ATH.

this gerit provides an option to configure(enable/disable)
Adaptive TH, throuth cfg.ini.

Change-Id: I873a3719a5efec7e63c6b9be62550bab720b724b
CRs-Fixed: 552703
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 1fa8604..fd15ea9 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1943,6 +1943,11 @@
 #define CFG_COALESING_IN_IBSS_MAX                 (1)
 #define CFG_COALESING_IN_IBSS_DEFAULT             (0) //disabled
 
+#define CFG_DISABLE_ATH_NAME                       "gAthDisable"
+#define CFG_DISABLE_ATH_MIN                        (0)
+#define CFG_DISABLE_ATH_MAX                        (1)
+#define CFG_DISABLE_ATH_DEFAULT                    (0)
+
 /*--------------------------------------------------------------------------- 
   Type declarations
   -------------------------------------------------------------------------*/ 
@@ -2347,6 +2352,7 @@
    v_U8_t                      isAmsduSupportInAMPDU;
    v_U8_t                      nSelect5GHzMargin;
    v_U8_t                      isCoalesingInIBSSAllowed;
+   v_BOOL_t                    cfgAthDisable;
 } hdd_config_t;
 /*--------------------------------------------------------------------------- 
   Function declarations and documenation
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 1a97f16..a46e9cd 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2812,6 +2812,13 @@
                  CFG_COALESING_IN_IBSS_DEFAULT,
                  CFG_COALESING_IN_IBSS_MIN,
                  CFG_COALESING_IN_IBSS_MAX ),
+
+   REG_VARIABLE( CFG_DISABLE_ATH_NAME , WLAN_PARAM_Integer,
+                 hdd_config_t, cfgAthDisable,
+                 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+                 CFG_DISABLE_ATH_DEFAULT,
+                 CFG_DISABLE_ATH_MIN,
+                 CFG_DISABLE_ATH_MAX ),
 };
 
 /*
@@ -4365,6 +4372,13 @@
       hddLog(LOGE, "Could not pass on WNI_CFG_ANTENNA_DIVESITY to CCM");
    }
 
+   if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ATH_DISABLE,
+                    pConfig->cfgAthDisable, NULL,
+                    eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+   {
+      fStatus = FALSE;
+      hddLog(LOGE, "Could not pass on WNI_CFG_ATH_DISABLE to CCM");
+   }
    return fStatus;
 }
 
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index 4766533..cb481b9 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -363,6 +363,7 @@
 #define WNI_CFG_FLEX_CONNECT_POWER_FACTOR    303
 #define WNI_CFG_ANTENNA_DIVESITY    304
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT    305
+#define WNI_CFG_ATH_DISABLE    306
 
 /*
  * String parameter lengths 
@@ -2562,10 +2563,18 @@
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT_APMAX    50
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT_APDEF    10
 
-#define CFG_PARAM_MAX_NUM         306
-#define CFG_AP_IBUF_MAX_SIZE      245
+#define WNI_CFG_ATH_DISABLE_STAMIN    0
+#define WNI_CFG_ATH_DISABLE_STAMAX    1
+#define WNI_CFG_ATH_DISABLE_STADEF    0
+
+#define WNI_CFG_ATH_DISABLE_APMIN    0
+#define WNI_CFG_ATH_DISABLE_APMAX    1
+#define WNI_CFG_ATH_DISABLE_APDEF    0
+
+#define CFG_PARAM_MAX_NUM         307
+#define CFG_AP_IBUF_MAX_SIZE      246
 #define CFG_AP_SBUF_MAX_SIZE      3422
-#define CFG_STA_IBUF_MAX_SIZE     240
+#define CFG_STA_IBUF_MAX_SIZE     241
 #define CFG_STA_SBUF_MAX_SIZE     3388
 #define CFG_SEM_MAX_NUM           19
 
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index 93a7b50..84218bd 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -357,6 +357,7 @@
 #define WNI_CFG_FLEX_CONNECT_POWER_FACTOR    303
 #define WNI_CFG_ANTENNA_DIVESITY    304
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT    305
+#define WNI_CFG_ATH_DISABLE    306
 
 /*
  * String parameter lengths 
@@ -1663,8 +1664,12 @@
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT_STAMAX    50
 #define WNI_CFG_GO_LINK_MONITOR_TIMEOUT_STADEF    10
 
-#define CFG_PARAM_MAX_NUM        306
-#define CFG_STA_IBUF_MAX_SIZE    240
+#define WNI_CFG_ATH_DISABLE_STAMIN    0
+#define WNI_CFG_ATH_DISABLE_STAMAX    1
+#define WNI_CFG_ATH_DISABLE_STADEF    0
+
+#define CFG_PARAM_MAX_NUM        307
+#define CFG_STA_IBUF_MAX_SIZE    241
 #define CFG_STA_SBUF_MAX_SIZE    3388
 #define CFG_SEM_MAX_NUM          19
 
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index d79ce86..0aba866 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -335,6 +335,7 @@
     (unsigned char *)"FLEX_CONNECT_POWER_FACTOR",
     (unsigned char *)"ANTENNA_DIVESITY",
     (unsigned char *)"GO_LINK_MONITOR_TIMEOUT",
+    (unsigned char *)"ATH_DISABLE",
 };
 
 
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index 17cea99..f7836e5 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -18,35 +18,17 @@
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  * PERFORMANCE OF THIS SOFTWARE.
  */
-* Copyright (c) 2012, The Linux Foundation. All rights reserved.
-*
-* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
-*
-*
-* Permission to use, copy, modify, and/or distribute this software for
-* any purpose with or without fee is hereby granted, provided that the
-* above copyright notice and this permission notice appear in all
-* copies.
-*
-* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
-* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
-* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-* PERFORMANCE OF THIS SOFTWARE.
-
-*
-* Woodside Networks, Inc proprietary. All rights reserved.
-* This is the data definition file for the CFG module.
-* Author:         Kevin Nguyen
-* Date:           03/18/02
-* History:-
-* 03/18/02        Created.
-* 08/10/05  ww: add maoe channels to have a complete channel listing: (see WNI_CFG_VALID_CHANNEL_LIST)
-* 08/10/05 ww: WNI_CFG_SCAN_CONTROL_LIST has a new contents
-* --------------------------------------------------------------------
+/*
+ * Woodside Networks, Inc proprietary. All rights reserved.
+ * This is the data definition file for the CFG module.
+ * Author:         Kevin Nguyen
+ * Date:           03/18/02
+ * History:-
+ * 03/18/02        Created.
+ * 08/10/05  ww: add maoe channels to have a complete channel listing: (see WNI_CFG_VALID_CHANNEL_LIST)
+ * 08/10/05 ww: WNI_CFG_SCAN_CONTROL_LIST has a new contents
+ * --------------------------------------------------------------------
+ */
 
 **********************************************************************
 *
@@ -4610,3 +4592,13 @@
 3   50    10
 *
 *
+
+* ATH Enable/Disable
+*
+WNI_CFG_ATH_DISABLE	I    4    7
+V    RW    NP
+NONE
+0   1    0
+V    RW    NP
+NONE
+0   1    0
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 0ca8570..367bf17 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -1665,6 +1665,20 @@
    tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
                             + sizeof(tHalCfg) + tlvStruct->length) ;
 
+   /* QWLAN_HAL_CFG_ATH_DISABLE */
+   tlvStruct->type = QWLAN_HAL_CFG_ATH_DISABLE ;
+   tlvStruct->length = sizeof(tANI_U32);
+   configDataValue = (tANI_U32 *)(tlvStruct + 1);
+   if(wlan_cfgGetInt(pMac, WNI_CFG_ATH_DISABLE,
+                                            configDataValue ) != eSIR_SUCCESS)
+   {
+      VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+               "Failed to get value for WNI_CFG_ATH_DISABLE");
+      goto handle_failure;
+   }
+   tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+                            + sizeof(tHalCfg) + tlvStruct->length) ;
+
    wdiStartParams->usConfigBufferLen = (tANI_U8 *)tlvStruct - tlvStructStart ;
 #ifdef WLAN_DEBUG
    {
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index 14de0da..14c7780 100644
--- a/firmware_bin/WCNSS_cfg.dat
+++ b/firmware_bin/WCNSS_cfg.dat
Binary files differ