wlan: enhance HDD and TL logging in data path

Enhance MTRACE logging in TL so that we know
exactly when TL is notifed of a packet in HDD
Add some MTRACE logs in HDD when applying
backpressure to OS queues and when the backpressure
is removed.

Change-Id: Ife89e8425fded83b8a39ca11e16836b4df9ced08
CRs-Fixed: 770925
diff --git a/CORE/HDD/inc/wlan_hdd_trace.h b/CORE/HDD/inc/wlan_hdd_trace.h
index 191ec49..0737996 100644
--- a/CORE/HDD/inc/wlan_hdd_trace.h
+++ b/CORE/HDD/inc/wlan_hdd_trace.h
@@ -97,7 +97,10 @@
     TRACE_CODE_HDD_CFG80211_SET_REKEY_DATA,
     TRACE_CODE_HDD_UNSUPPORTED_IOCTL,
     TRACE_CODE_HDD_SETROAMSCANCHANNELMINTIME_IOCTL,
-    TRACE_CODE_HDD_GETROAMSCANCHANNELMINTIME_IOCTL
+    TRACE_CODE_HDD_GETROAMSCANCHANNELMINTIME_IOCTL,
+    TRACE_CODE_HDD_STOP_NETDEV,
+    TRACE_CODE_HDD_WAKE_NETDEV,
+    TRACE_CODE_HDD_FLUSH_TX_QUEUES,
 };
 
 extern void hddTraceDump(void *pMac, tpvosTraceRecord pRecord, tANI_U16 recIndex);
diff --git a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c
index a5b02a6..a2fa7a1 100644
--- a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c
@@ -59,6 +59,7 @@
 #include <mach/subsystem_restart.h>
 #endif
 #include "sapInternal.h"
+#include  "wlan_hdd_trace.h"
 
 /*--------------------------------------------------------------------------- 
   Preprocessor definitions and constants
@@ -414,6 +415,8 @@
        pSapCtx->aStaInfo[STAId].txSuspended[ac] = VOS_TRUE;
        netif_stop_subqueue(dev, skb_get_queue_mapping(skb));
        txSuspended = VOS_TRUE;
+       MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_STOP_NETDEV,
+                        pAdapter->sessionId, ac));
     }
 
     /* If 3/4th of the max queue size is used then enable the flag.
@@ -1377,6 +1380,8 @@
                  "%s: TX queue re-enabled", __func__);
       pSapCtx->aStaInfo[STAId].txSuspended[ac] = VOS_FALSE;
       netif_wake_subqueue(pAdapter->dev, skb_get_queue_mapping(skb));
+      MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_WAKE_NETDEV,
+                       pAdapter->sessionId, ac));
    }    
 
    // We're giving the packet to TL so consider it transmitted from
diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c
index 33ff895..3985fad 100644
--- a/CORE/HDD/src/wlan_hdd_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_tx_rx.c
@@ -67,6 +67,7 @@
 #include "vos_utils.h"
 #endif
 #include  "sapInternal.h"
+#include  "wlan_hdd_trace.h"
 /*--------------------------------------------------------------------------- 
   Preprocessor definitions and constants
   -------------------------------------------------------------------------*/ 
@@ -204,6 +205,9 @@
 
    pAdapter->isVosLowResource = VOS_FALSE;
 
+   MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_FLUSH_TX_QUEUES,
+                    pAdapter->sessionId, 0));
+
    while (++i != NUM_TX_QUEUES) 
    {
       //Free up any packets in the Tx queue
@@ -865,6 +869,8 @@
          netif_tx_stop_queue(netdev_get_tx_queue(dev, skb_get_queue_mapping(skb)));
          pAdapter->isTxSuspended[ac] = VOS_TRUE;
          txSuspended = VOS_TRUE;
+         MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_STOP_NETDEV,
+                          pAdapter->sessionId, ac));
    }
 
    /* If 3/4th of the max queue size is used then enable the flag.
@@ -1764,6 +1770,8 @@
       pAdapter->isTxSuspended[ac] = VOS_FALSE;      
       netif_tx_wake_queue(netdev_get_tx_queue(pAdapter->dev, 
                                         skb_get_queue_mapping(skb) ));
+      MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_WAKE_NETDEV,
+                       pAdapter->sessionId, ac));
    }
 
 
diff --git a/CORE/TL/src/wlan_qct_tl.c b/CORE/TL/src/wlan_qct_tl.c
index 5a3b4b7..67c9db4 100644
--- a/CORE/TL/src/wlan_qct_tl.c
+++ b/CORE/TL/src/wlan_qct_tl.c
@@ -2082,6 +2082,11 @@
 
       vos_atomic_set_U8( &pClientSTA->ucPktPending, 1);
 
+      MTRACE(vos_trace(VOS_MODULE_ID_TL, TRACE_CODE_TL_STA_PKT_PENDING, ucSTAId,
+                       (pTLCb->ucTxSuspended << 31) |
+                       ((pTLCb->uResCount >=  WDA_TLI_MIN_RES_DATA) << 30) |
+                       pClientSTA->tlState));
+
       /*------------------------------------------------------------------------
         Check if there are enough resources for transmission and tx is not
         suspended.
@@ -2089,8 +2094,6 @@
        if (( pTLCb->uResCount >=  WDA_TLI_MIN_RES_DATA ) &&
           ( 0 == pTLCb->ucTxSuspended ))
       {
-        MTRACE(vos_trace(VOS_MODULE_ID_TL, TRACE_CODE_TL_STA_PKT_PENDING,
-                      ucSTAId, pClientSTA->tlState ));
 
         TLLOG2(VOS_TRACE( VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_INFO_HIGH,
               "Issuing Xmit start request to BAL"));
@@ -6907,13 +6910,12 @@
    WLANTL_CbType* pTLCb = NULL;
    WLANTL_STAClientType* pClientSTA = NULL;
    int i = 0;
-   tWDA_CbContext *pWDA = NULL;
+   v_U8_t uFlowMask; // TX FlowMask from WDA
 
    TLLOGE(VOS_TRACE( VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_FATAL,
         "WLAN TL: %s Enter ", __func__));
 
    pTLCb = VOS_GET_TL_CB(pVosContext);
-   pWDA = (tWDA_CbContext *)vos_get_global_context(VOS_MODULE_ID_WDA, pVosContext);
 
    if ( NULL == pVosContext || NULL == pTLCb )
    {
@@ -6922,11 +6924,12 @@
         return;
    }
 
-   if (NULL != pWDA)
+   if (VOS_STATUS_SUCCESS == WDA_DS_GetTxFlowMask(pVosContext, &uFlowMask))
    {
         TLLOGE(VOS_TRACE(VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_ERROR,
-              "WDA uTxFlowMask: %d", pWDA->uTxFlowMask));
+              "WDA uTxFlowMask: 0x%x", uFlowMask));
    }
+
    TLLOGE(VOS_TRACE(VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_ERROR,
           "************************TL DUMP INFORMATION**************"));