Configure flag to debug remain on channel issues.

Add flag to configuration file to debug remain on
channel. This flag is used to send marker frames
at start and end of remain on channel.

Change-Id: I0a61e205144004617b0b21551e174c424323cece
CRs-Fixed: 594906
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 8290952..6e69baf 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2004,6 +2004,11 @@
 #define CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MIN              (0)
 #define CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MAX              (100)
 
+//Enable debug for remain on channel issues
+#define CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME    "gDebugP2pRemainOnChannel"
+#define CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT ( 0 )
+#define CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN     ( 0 )
+#define CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX     ( 1 )
 
 /*--------------------------------------------------------------------------- 
   Type declarations
@@ -2422,6 +2427,7 @@
    v_U32_t                     gAsdProbeInterval;
    v_U32_t                     gAsdTriggerThreshold;
    v_U32_t                     gAsdRTTRssiHystThreshold;
+   v_BOOL_t                    debugP2pRemainOnChannel;
 } 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 93e4049..0e621cb 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2856,6 +2856,13 @@
                  CFG_ASD_RTT_RSSI_HYST_THRESHOLD_DEFAULT,
                  CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MIN,
                  CFG_ASD_RTT_RSSI_HYST_THRESHOLD_MAX),
+
+   REG_VARIABLE( CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
+                 hdd_config_t, debugP2pRemainOnChannel,
+                 VAR_FLAGS_OPTIONAL,
+                 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
+                 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
+                 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX ),
 };
 
 
@@ -4480,6 +4487,40 @@
        fStatus = FALSE;
        hddLog(LOGE, "Could not pass on WNI_BTC_ACTIVE_BT_LEN to CCM");
    }
+
+   if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASD_PROBE_INTERVAL,
+                    pConfig->gAsdProbeInterval, NULL,
+                    eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+   {
+      fStatus = FALSE;
+      hddLog(LOGE, "Could not pass on WNI_CFG_ASD_PROBE_INTERVAL to CCM");
+   }
+
+   if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASD_TRIGGER_THRESHOLD,
+                    pConfig->gAsdTriggerThreshold, NULL,
+                    eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+   {
+      fStatus = FALSE;
+      hddLog(LOGE, "Could not pass on WNI_CFG_ASD_TRIGGER_THRESHOLD to CCM");
+   }
+
+   if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD,
+                    pConfig->gAsdRTTRssiHystThreshold, NULL,
+                    eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+   {
+      fStatus = FALSE;
+      hddLog(LOGE, "Could not pass on WNI_CFG_ASD_RSSI_HYST_THRESHOLD to CCM");
+   }
+
+   if (ccmCfgSetInt(pHddCtx->hHal,
+                    WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
+                    pConfig->debugP2pRemainOnChannel,
+                    NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+   {
+       fStatus = FALSE;
+       hddLog(LOGE,
+              "Could not pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CCM");
+   }
    return fStatus;
 }
 
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index fad5ada..5612755 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -369,10 +369,11 @@
 #define WNI_CFG_BTC_ACTIVE_BT_LEN    308
 #define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN    309
 #define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN    310
-#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL    311
-#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY    312
-#define WNI_CFG_ASD_PROBE_INTERVAL    313
-#define WNI_CFG_ASD_TRIGGER_THRESHOLD    314
+#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY    311
+#define WNI_CFG_ASD_PROBE_INTERVAL    312
+#define WNI_CFG_ASD_TRIGGER_THRESHOLD    313
+#define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD    314
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL    315
 
 /*
  * String parameter lengths 
@@ -2644,10 +2645,18 @@
 #define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_APMAX    100
 #define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_APDEF    0
 
-#define CFG_PARAM_MAX_NUM         315
-#define CFG_AP_IBUF_MAX_SIZE      254
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMIN    0
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMAX    1
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STADEF    0
+
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_APMIN    0
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_APMAX    1
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_APDEF    0
+
+#define CFG_PARAM_MAX_NUM         316
+#define CFG_AP_IBUF_MAX_SIZE      255
 #define CFG_AP_SBUF_MAX_SIZE      3422
-#define CFG_STA_IBUF_MAX_SIZE     249
+#define CFG_STA_IBUF_MAX_SIZE     250
 #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 8865914..570725c 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -363,10 +363,11 @@
 #define WNI_CFG_BTC_ACTIVE_BT_LEN    308
 #define WNI_CFG_BTC_SAP_ACTIVE_WLAN_LEN    309
 #define WNI_CFG_BTC_SAP_ACTIVE_BT_LEN    310
-#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL    311
-#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY    312
-#define WNI_CFG_ASD_PROBE_INTERVAL    313
-#define WNI_CFG_ASD_TRIGGER_THRESHOLD    314
+#define WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY    311
+#define WNI_CFG_ASD_PROBE_INTERVAL    312
+#define WNI_CFG_ASD_TRIGGER_THRESHOLD    313
+#define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD    314
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL    315
 
 /*
  * String parameter lengths 
@@ -1709,8 +1710,12 @@
 #define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_STAMAX    100
 #define WNI_CFG_ASD_RTT_RSSI_HYST_THRESHOLD_STADEF    0
 
-#define CFG_PARAM_MAX_NUM        315
-#define CFG_STA_IBUF_MAX_SIZE    249
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMIN    0
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STAMAX    1
+#define WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_STADEF    0
+
+#define CFG_PARAM_MAX_NUM        316
+#define CFG_STA_IBUF_MAX_SIZE    250
 #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 41310b0..90601de 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -344,6 +344,7 @@
     (unsigned char *)"ASD_PROBE_INTERVAL",
     (unsigned char *)"ASD_TRIGGER_THRESHOLD",
     (unsigned char *)"ASD_RTT_RSSI_HYST_THRESHOLD",
+    (unsigned char *)"DEBUG_P2P_REMAIN_ON_CHANNEL",
 };
 
 
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index a3f2eb0..631f0ac 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -4697,3 +4697,15 @@
 0    100    0
 *
 *
+
+* Debug p2p remain on channel
+*
+WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL    I    4    7
+V    RW    NP
+NONE
+0    1    0
+V    RW    NP
+NONE
+0    1    0
+*
+*
diff --git a/firmware_bin/WCNSS_cfg.dat b/firmware_bin/WCNSS_cfg.dat
index 5685e79..764a7e0 100644
--- a/firmware_bin/WCNSS_cfg.dat
+++ b/firmware_bin/WCNSS_cfg.dat
Binary files differ