wlan: Adding MTRACE functionality to HDD

This  fix will add  MTRACE funcionality to HDD

Change-Id:Ica270091034f3373a786a52c35cd240110ee9823
CRs-Fixed: 594600
(cherry picked from commit c7437b7abe0b059f7b3a050c4cb4ca02f3240e30)
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 62694e6..77bce68 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -81,6 +81,9 @@
 #include "wlan_hdd_main.h"
 #include "wlan_hdd_assoc.h"
 #include "wlan_hdd_power.h"
+#include "wlan_hdd_trace.h"
+#include "vos_types.h"
+#include "vos_trace.h"
 #ifdef WLAN_BTAMP_FEATURE
 #include "bap_hdd_misc.h"
 #endif
@@ -610,7 +613,6 @@
 {
     struct wiphy *wiphy;
     ENTER();
-
     /*
      *   Create wiphy device
      */
@@ -637,6 +639,7 @@
     eNVChannelEnabledType channelEnabledState;
 
     ENTER();
+
     for (i = 0; i < IEEE80211_NUM_BANDS; i++)
     {
 
@@ -1704,15 +1707,16 @@
                                    enum nl80211_channel_type channel_type
                                  )
 {
+    hdd_adapter_t *pAdapter = NULL;
     v_U32_t num_ch = 0;
     int channel = 0;
-    hdd_adapter_t *pAdapter = NULL;
     int freq = chan->center_freq; /* freq is in MHZ */
     hdd_context_t *pHddCtx;
     int status;
 
     ENTER();
 
+
     if( NULL == dev )
     {
         hddLog(VOS_TRACE_LEVEL_ERROR,
@@ -1721,6 +1725,9 @@
     }
     pAdapter = WLAN_HDD_GET_PRIV_PTR( dev );
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_CHANNEL, pAdapter->sessionId,
+                     channel_type ));
     hddLog(VOS_TRACE_LEVEL_INFO,
                 "%s: device_mode = %d  freq = %d", __func__,
                             pAdapter->device_mode, chan->center_freq);
@@ -2256,7 +2263,6 @@
         VOS_ASSERT(0);
     }
 
-    //Succesfully started Bss update the state bit.
     set_bit(SOFTAP_BSS_STARTED, &pHostapdAdapter->event_flags);
 
 #ifdef WLAN_FEATURE_P2P_DEBUG
@@ -2294,6 +2300,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_ADD_BEACON,
+                     pAdapter->sessionId, params->interval));
     hddLog(VOS_TRACE_LEVEL_INFO_HIGH, "device mode=%d",pAdapter->device_mode);
 
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
@@ -2345,11 +2354,14 @@
                                         struct beacon_parameters *params)
 {
     hdd_adapter_t *pAdapter =  WLAN_HDD_GET_PRIV_PTR(dev);
+    hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
     hdd_context_t  *pHddCtx;
     int status;
 
     ENTER();
-
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_BEACON,
+                     pAdapter->sessionId, pHddStaCtx->conn_info.authType));
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
                                 __func__,pAdapter->device_mode);
 
@@ -2421,6 +2433,9 @@
         return -ENODEV;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_STOP_AP,
+                     pAdapter->sessionId, pAdapter->device_mode));
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
     status = wlan_hdd_validate_context(pHddCtx);
 
@@ -2510,8 +2525,8 @@
                     VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
                              ("ERROR: HDD vos wait for single_event failed!!"));
                     VOS_ASSERT(0);
-                }
-            }
+                 }
+             }
             clear_bit(SOFTAP_BSS_STARTED, &pAdapter->event_flags);
         }
         mutex_unlock(&pHddCtx->sap_lock);
@@ -2585,6 +2600,9 @@
         return -ENODEV;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_START_AP, pAdapter->sessionId,
+                     params-> beacon_interval));
     if (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)
     {
         VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -2657,6 +2675,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_CHANGE_BEACON,
+                     pAdapter->sessionId, pAdapter->device_mode));
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
                                 __func__, pAdapter->device_mode);
 
@@ -2714,6 +2735,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_CHANGE_BSS,
+                     pAdapter->sessionId, params->ap_isolate));
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
                                __func__,pAdapter->device_mode);
 
@@ -2767,7 +2791,7 @@
 
     ENTER();
 
-    if (!pAdapter)
+   if (!pAdapter)
     {
         VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
                   "%s: Adapter context is null", __func__);
@@ -2782,6 +2806,9 @@
         return VOS_STATUS_E_FAILURE;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_CHANGE_IFACE,
+                     pAdapter->sessionId, type));
     status = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != status)
@@ -3392,6 +3419,9 @@
         return -EINVAL;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CHANGE_STATION,
+                      pAdapter->sessionId, params->listen_interval));
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
     pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
 
@@ -3570,6 +3600,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_ADD_KEY,
+                      pAdapter->sessionId, params->key_len));
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
     status = wlan_hdd_validate_context(pHddCtx);
 
@@ -3932,6 +3965,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_GET_KEY,
+                     pAdapter->sessionId, params.cipher));
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
                                  __func__,pAdapter->device_mode);
 
@@ -4119,6 +4155,10 @@
        return -EINVAL;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_DEFAULT_KEY,
+                     pAdapter->sessionId, key_index));
+
     pWextState = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter);
     pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
 
@@ -4542,6 +4582,10 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_UPDATE_BSS,
+                       NO_SESSION, pAdapter->sessionId));
+
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
 
     if (pHddCtx->isLogpInProgress)
@@ -5037,6 +5081,10 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SCAN,
+                     pAdapter->sessionId, request->n_channels));
+
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
                                    __func__,pAdapter->device_mode);
 
@@ -6408,13 +6456,9 @@
 
     ENTER();
 
-    if (!pAdapter)
-    {
-        VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
-                  "%s: Adapter context is null", __func__);
-        return VOS_STATUS_E_FAILURE;
-    }
-
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_CONNECT,
+                      pAdapter->sessionId, pAdapter->device_mode));
     hddLog(VOS_TRACE_LEVEL_INFO,
              "%s: device_mode = %d",__func__,pAdapter->device_mode);
 
@@ -6584,7 +6628,10 @@
 
     ENTER();
 
-    hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_DISCONNECT,
+                     pAdapter->sessionId, reason));
+    hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d\n",
                                     __func__,pAdapter->device_mode);
 
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: Disconnect called with reason code %d",
@@ -6790,6 +6837,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_JOIN_IBSS,
+                     pAdapter->sessionId, pAdapter->device_mode));
     hddLog(VOS_TRACE_LEVEL_INFO,
                   "%s: device_mode = %d",__func__,pAdapter->device_mode);
 
@@ -6956,6 +7006,9 @@
 
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_LEAVE_IBSS,
+                      pAdapter->sessionId, eCSR_DISCONNECT_REASON_IBSS_LEAVE));
     status = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != status)
@@ -7004,7 +7057,9 @@
     int status;
 
     ENTER();
-
+     MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                      TRACE_CODE_HDD_CFG80211_SET_WIPHY_PARAMS,
+                       NO_SESSION, wiphy->rts_threshold));
     status = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != status)
@@ -7142,7 +7197,9 @@
     int status;
 
     ENTER();
-
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                      TRACE_CODE_HDD_CFG80211_SET_TXPOWER,
+                      NO_SESSION, type ));
     status = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != status)
@@ -7635,6 +7692,9 @@
        STATION_INFO_TX_RETRIES |
        STATION_INFO_TX_FAILED;
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_GET_STA,
+                      pAdapter->sessionId, maxRate));
        EXIT();
        return 0;
 }
@@ -7655,6 +7715,10 @@
         return -ENODEV;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_POWER_MGMT,
+                     pAdapter->sessionId, timeout));
+
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
     status = wlan_hdd_validate_context(pHddCtx);
 
@@ -7737,12 +7801,17 @@
     v_U8_t staId;
 
     ENTER();
+
     if ( NULL == pAdapter )
     {
         hddLog(VOS_TRACE_LEVEL_ERROR, "%s: Invalid Adapter" ,__func__);
         return -EINVAL;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_DEL_STA,
+                     pAdapter->sessionId, pAdapter->device_mode));
+
     pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
     status = wlan_hdd_validate_context(pHddCtx);
 
@@ -7829,10 +7898,15 @@
 static int wlan_hdd_cfg80211_add_station(struct wiphy *wiphy,
           struct net_device *dev, u8 *mac, struct station_parameters *params)
 {
+    hdd_adapter_t *pAdapter =  WLAN_HDD_GET_PRIV_PTR(dev);
     int status = -EPERM;
 #ifdef FEATURE_WLAN_TDLS
     u32 mask, set;
     ENTER();
+
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_ADD_STA,
+                     pAdapter->sessionId, params->listen_interval));
     mask = params->sta_flags_mask;
 
     set = params->sta_flags_set;
@@ -7870,7 +7944,6 @@
     int status;
     tANI_U8  BSSIDMatched = 0;
     hdd_context_t *pHddCtx;
-
     hddLog(VOS_TRACE_LEVEL_DEBUG, "%s: set PMKSA for " MAC_ADDRESS_STR,
            __func__, MAC_ADDR_ARRAY(pmksa->bssid));
 
@@ -7944,6 +8017,9 @@
     result = sme_RoamSetPMKIDCache(halHandle,pAdapter->sessionId,
                                     PMKIDCache,
                                     PMKIDCacheIndex);
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_PMKSA,
+                     pAdapter->sessionId, result));
     return 0;
 }
 
@@ -8129,6 +8205,9 @@
 
     pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_UPDATE_FT_IES,
+                     pAdapter->sessionId, pHddStaCtx->conn_info.connState));
     // Added for debug on reception of Re-assoc Req.
     if (eConnectionState_Associated != pHddStaCtx->conn_info.connState)
     {
@@ -8558,6 +8637,9 @@
     int responder;
     long rc;
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_TDLS_MGMT,
+                     pAdapter->sessionId, action_code));
     if (NULL == pHddCtx || NULL == pHddCtx->cfg_ini)
     {
         VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -8769,6 +8851,9 @@
     int status;
     hddTdlsPeer_t *pTdlsPeer;
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_TDLS_OPER,
+                     pAdapter->sessionId, oper));
     if ( NULL == peer )
     {
         VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -9113,6 +9198,7 @@
 
     ENTER();
 
+
     if (NULL == pAdapter)
     {
         VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
@@ -9120,6 +9206,10 @@
         return -ENODEV;
     }
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_SET_REKEY_DATA,
+                     pAdapter->sessionId, pAdapter->device_mode));
+
     result = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != result)
@@ -9477,7 +9567,6 @@
 
     ENTER();
 
-
     if (NULL == pAdapter)
     {
         VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index ba1a830..930bcd5 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -83,6 +83,9 @@
 #ifdef FEATURE_WLAN_CH_AVOID
 #include "wcnss_wlan.h"
 #endif /* FEATURE_WLAN_CH_AVOID */
+#include "wlan_hdd_trace.h"
+#include "vos_types.h"
+#include "vos_trace.h"
 
 #define    IS_UP(_dev) \
     (((_dev)->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
@@ -95,7 +98,7 @@
  */
 #define WE_SAP_MAX_STA_INFO 0x7FF
 
-#define SAP_24GHZ_CH_COUNT (14) 
+#define SAP_24GHZ_CH_COUNT (14)
 
 #ifdef FEATURE_WLAN_CH_AVOID
 /* Channle/Freqency table */
@@ -151,13 +154,13 @@
 };
 #endif /* FEATURE_WLAN_CH_AVOID */
 
-/*--------------------------------------------------------------------------- 
+/*---------------------------------------------------------------------------
  *   Function definitions
  *-------------------------------------------------------------------------*/
 /**---------------------------------------------------------------------------
-  
+
   \brief hdd_hostapd_open() - HDD Open function for hostapd interface
-  
+
   This is called in response to ifconfig up
   
   \param  - dev Pointer to net_device structure
@@ -169,6 +172,8 @@
 {
    ENTER();
 
+   MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                    TRACE_CODE_HDD_HOSTAPD_OPEN_REQUEST, NO_SESSION, 0));
    //Turn ON carrier state
    netif_carrier_on(dev);
    //Enable all Tx queues  
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index b10f4e5..5cea9e8 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -88,7 +88,9 @@
 #include <bap_hdd_main.h>
 #include <bapInternal.h>
 #endif // WLAN_BTAMP_FEATURE
-
+#include "wlan_hdd_trace.h"
+#include "vos_types.h"
+#include "vos_trace.h"
 #include <linux/wireless.h>
 #include <net/cfg80211.h>
 #include <linux/inetdevice.h>
@@ -1960,6 +1962,13 @@
 
        if (strncmp(command, "P2P_DEV_ADDR", 12) == 0 )
        {
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_P2P_DEV_ADDR_IOCTL,
+                            pAdapter->sessionId, (unsigned)
+                            (*(pHddCtx->p2pDeviceAddress.bytes+2)<<24 |
+                             *(pHddCtx->p2pDeviceAddress.bytes+3)<<16 |
+                             *(pHddCtx->p2pDeviceAddress.bytes+4)<<8  |
+                             *(pHddCtx->p2pDeviceAddress.bytes+5))));
            if (copy_to_user(priv_data.buf, pHddCtx->p2pDeviceAddress.bytes,
                                                            sizeof(tSirMacAddr)))
            {
@@ -2042,6 +2051,9 @@
            tANI_U8 *ptr = (tANI_U8*)command + 15;
 
            suspend = *ptr - '0';
+            MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                             TRACE_CODE_HDD_SETSUSPENDMODE_IOCTL,
+                             pAdapter->sessionId, suspend));
            hdd_set_wlan_suspend_mode(suspend);
        }
 #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
@@ -2084,6 +2096,9 @@
                goto exit;
            }
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_SETROAMTRIGGER_IOCTL,
+                            pAdapter->sessionId, lookUpThreshold));
            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
                       "%s: Received Command to Set Roam trigger"
                       " (Neighbor lookup threshold) = %d", __func__, lookUpThreshold);
@@ -2107,7 +2122,9 @@
            int rssi = (-1) * lookUpThreshold;
            char extra[32];
            tANI_U8 len = 0;
-
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETROAMTRIGGER_IOCTL,
+                            pAdapter->sessionId, lookUpThreshold));
            len = scnprintf(extra, sizeof(extra), "%s %d", command, rssi);
            if (copy_to_user(priv_data.buf, &extra, len + 1))
            {
@@ -2151,7 +2168,10 @@
                       (CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX/1000));
                ret = -EINVAL;
                goto exit;
-           }
+              }
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_SETROAMSCANPERIOD_IOCTL,
+                            pAdapter->sessionId, roamScanPeriod));
            neighborEmptyScanRefreshPeriod = roamScanPeriod * 1000;
 
            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
@@ -2167,6 +2187,9 @@
            char extra[32];
            tANI_U8 len = 0;
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETROAMSCANPERIOD_IOCTL,
+                            pAdapter->sessionId, nEmptyScanRefreshPeriod));
            len = scnprintf(extra, sizeof(extra), "%s %d",
                    "GETROAMSCANPERIOD", (nEmptyScanRefreshPeriod/1000));
            /* Returned value is in units of seconds */
@@ -2364,6 +2387,9 @@
            char extra[32];
            tANI_U8 len = 0;
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETROAMDELTA_IOCTL,
+                            pAdapter->sessionId, roamRssiDiff));
            len = scnprintf(extra, sizeof(extra), "%s %d",
                    command, roamRssiDiff);
            if (copy_to_user(priv_data.buf, &extra, len + 1))
@@ -2383,6 +2409,9 @@
            tANI_U8 len = 0;
            hdd_getBand_helper(pHddCtx, &band);
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETBAND_IOCTL,
+                            pAdapter->sessionId, band));
            len = scnprintf(extra, sizeof(extra), "%s %d", command, band);
            if (copy_to_user(priv_data.buf, &extra, len + 1))
            {
@@ -2408,6 +2437,9 @@
                goto exit;
            }
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_SETROAMSCANCHANNELS_IOCTL,
+                            pAdapter->sessionId, numChannels));
            if (numChannels > WNI_CFG_VALID_CHANNEL_LIST_LEN)
            {
                VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -2442,6 +2474,9 @@
                ret = -EFAULT;
                goto exit;
            }
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETROAMSCANCHANNELS_IOCTL,
+                            pAdapter->sessionId, numChannels));
            /* output channel list is of the format
            [Number of roam scan channels][Channel1][Channel2]... */
            /* copy the number of channels in the 0th index */
@@ -2582,6 +2617,9 @@
                goto exit;
            }
 
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_SETROAMSCANCHANNELMINTIME_IOCTL,
+                            pAdapter->sessionId, minTime));
            VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
                       "%s: Received Command to change channel min time = %d", __func__, minTime);
 
@@ -2708,6 +2746,9 @@
            /* value is interms of msec */
            len = scnprintf(extra, sizeof(extra), "%s %d",
                    "GETROAMSCANCHANNELMINTIME", val);
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_GETROAMSCANCHANNELMINTIME_IOCTL,
+                            pAdapter->sessionId, val));
            if (copy_to_user(priv_data.buf, &extra, len + 1))
            {
                VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
@@ -3746,6 +3787,9 @@
        }
 #endif /* FEATURE_WLAN_CCX && FEATURE_WLAN_CCX_UPLOAD */
        else {
+           MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                            TRACE_CODE_HDD_UNSUPPORTED_IOCTL,
+                            pAdapter->sessionId, 0));
            hddLog( VOS_TRACE_LEVEL_WARN, "%s: Unsupported GUI command %s",
                    __func__, command);
        }
@@ -4611,6 +4655,8 @@
    }
    
    pHddCtx = (hdd_context_t*)pAdapter->pHddCtx;
+   MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_OPEN_REQUEST,
+                    pAdapter->sessionId, pAdapter->device_mode));
    if (NULL == pHddCtx)
    {
       VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
@@ -4692,14 +4738,14 @@
    v_BOOL_t enter_standby = TRUE;
    
    ENTER();
-
    if (NULL == pAdapter)
    {
       VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
          "%s: pAdapter is Null", __func__);
       return -ENODEV;
    }
-
+   MTRACE(vos_trace(VOS_MODULE_ID_HDD, TRACE_CODE_HDD_OPEN_REQUEST,
+                    pAdapter->sessionId, pAdapter->device_mode));
    pHddCtx = (hdd_context_t*)pAdapter->pHddCtx;
    if (NULL == pHddCtx)
    {
@@ -8717,6 +8763,7 @@
    wake_lock_init(&wlan_wake_lock, WAKE_LOCK_SUSPEND, "wlan");
 #endif
 
+   hddTraceInit();
    pr_info("%s: loading driver v%s\n", WLAN_MODULE_NAME,
            QWLAN_VERSIONSTR TIMER_MANAGER_STR MEMORY_DEBUG_STR);
 
diff --git a/CORE/HDD/src/wlan_hdd_p2p.c b/CORE/HDD/src/wlan_hdd_p2p.c
index a58ed13..c230be3 100644
--- a/CORE/HDD/src/wlan_hdd_p2p.c
+++ b/CORE/HDD/src/wlan_hdd_p2p.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -44,7 +44,6 @@
 #include "wlan_hdd_p2p.h"
 #include "sapApi.h"
 #include "wlan_hdd_main.h"
-
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
 #include <linux/etherdevice.h>
@@ -52,7 +51,9 @@
 #ifdef FEATURE_WLAN_TDLS
 #include "wlan_hdd_tdls.h"
 #endif
-
+#include "wlan_hdd_trace.h"
+#include "vos_types.h"
+#include "vos_trace.h"
 //Ms to Micro Sec
 #define MS_TO_MUS(x)   ((x)*1000);
 
@@ -455,6 +456,11 @@
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0))
     struct net_device *dev = wdev->netdev;
 #endif
+    hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( dev );
+
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_REMAIN_ON_CHANNEL,
+                     pAdapter->sessionId, REMAIN_ON_CHANNEL_REQUEST));
     return wlan_hdd_request_remain_on_channel(wiphy, dev,
                                         chan,
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0))
@@ -469,6 +475,10 @@
     hdd_cfg80211_state_t *cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter );
     hdd_remain_on_chan_ctx_t* pRemainChanCtx = cfgState->remain_on_chan_ctx;
 
+    hddLog( LOG1, "Ready on chan ind");
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_REMAINCHANREADYHANDLER,
+                     pAdapter->sessionId, pRemainChanCtx->duration));
     if( pRemainChanCtx != NULL )
     {
         // Removing READY_EVENT_PROPOGATE_TIME from current time which gives
@@ -523,6 +533,12 @@
     hdd_cfg80211_state_t *cfgState = WLAN_HDD_GET_CFG_STATE_PTR( pAdapter );
     hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
     int status;
+    u64 cookie_dummy;
+    cookie_dummy = cookie << 32;
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_CFG80211_CANCEL_REMAIN_ON_CHANNEL,
+                     pAdapter->sessionId, cookie_dummy));
+    hddLog( LOG1, "Cancel remain on channel req");
 
     status = wlan_hdd_validate_context(pHddCtx);
 
@@ -652,6 +668,9 @@
 #endif
     u64 old_cookie = 0;
 
+     MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                      TRACE_CODE_HDD_ACTION, pAdapter->sessionId,
+                      pAdapter->device_mode ));
     status = wlan_hdd_validate_context(pHddCtx);
 
     if (0 != status)
@@ -996,6 +1015,10 @@
                                           struct wireless_dev *wdev,
                                           u64 cookie)
 {
+    u64 cookie_dummy;
+    cookie_dummy = cookie << 32;
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_MGMT_TX_CANCEL_WAIT, NO_SESSION, cookie_dummy));
     return wlan_hdd_cfg80211_cancel_remain_on_channel( wiphy, wdev, cookie );
 }
 #else
@@ -1003,6 +1026,12 @@
                                           struct net_device *dev,
                                           u64 cookie)
 {
+    u64 cookie_dummy;
+    hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( dev );
+    cookie_dummy = cookie << 32;
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_MGMT_TX_CANCEL_WAIT,
+                     pAdapter->sessionId, cookie_dummy));
     return wlan_hdd_cfg80211_cancel_remain_on_channel( wiphy, dev, cookie );
 }
 #endif
@@ -1350,10 +1379,11 @@
 #endif
 {
     hdd_context_t *pHddCtx = (hdd_context_t*) wiphy_priv(wiphy);
-    hdd_adapter_t* pAdapter = NULL;
-
+    hdd_adapter_t *pAdapter = NULL;
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_ADD_VIRTUAL_INTF, NO_SESSION, type));
     if(hdd_get_adapter(pHddCtx, wlan_hdd_get_session_type(type)) != NULL)
     {
        hddLog(VOS_TRACE_LEVEL_ERROR,"%s: Interface type %d already exists. Two"
@@ -1420,10 +1450,14 @@
     struct net_device *dev = wdev->netdev;
 #endif
     hdd_context_t *pHddCtx = (hdd_context_t*) wiphy_priv(wiphy);
+    hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR( dev );
     hdd_adapter_t *pVirtAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
     int status;
     ENTER();
 
+    MTRACE(vos_trace(VOS_MODULE_ID_HDD,
+                     TRACE_CODE_HDD_DEL_VIRTUAL_INTF,
+                     pAdapter->sessionId, pAdapter->device_mode));
     hddLog(VOS_TRACE_LEVEL_INFO, "%s: device_mode = %d",
            __func__,pVirtAdapter->device_mode);
 
diff --git a/Kbuild b/Kbuild
index 1afd1eb..79046b0 100644
--- a/Kbuild
+++ b/Kbuild
@@ -137,6 +137,7 @@
 		$(HDD_SRC_DIR)/wlan_hdd_scan.o \
 		$(HDD_SRC_DIR)/wlan_hdd_softap_tx_rx.o \
 		$(HDD_SRC_DIR)/wlan_hdd_tx_rx.o \
+                $(HDD_SRC_DIR)/wlan_hdd_trace.o \
 		$(HDD_SRC_DIR)/wlan_hdd_wext.o \
 		$(HDD_SRC_DIR)/wlan_hdd_wmm.o \
 		$(HDD_SRC_DIR)/wlan_hdd_wowl.o
diff --git a/prima/CORE/HDD/inc/wlan_hdd_trace.h b/prima/CORE/HDD/inc/wlan_hdd_trace.h
new file mode 100644
index 0000000..b0c26e0
--- /dev/null
+++ b/prima/CORE/HDD/inc/wlan_hdd_trace.h
@@ -0,0 +1,86 @@
+/**=========================================================================
+  \file wlan_hdd_trace.h
+   Copyright 2014 (c) Qualcomm Technologies, Inc.  All Rights Reserved.
+   Qualcomm Technologies Confidential and Proprietary.
+  ========================================================================*/
+
+#ifndef __WLAN_HDD_TRACE_H__
+#define __WLAN_HDD_TRACE_H__
+
+#include "macTrace.h"
+
+#define NO_SESSION 0xFF
+
+enum
+{
+    TRACE_CODE_HDD_OPEN_REQUEST,
+    TRACE_CODE_HDD_STOP_REQUEST,
+    TRACE_CODE_HDD_TX_TIMEOUT,
+    TRACE_CODE_HDD_P2P_DEV_ADDR_IOCTL,
+    TRACE_CODE_HDD_SETSUSPENDMODE_IOCTL,
+    TRACE_CODE_HDD_SETROAMTRIGGER_IOCTL,
+    TRACE_CODE_HDD_GETROAMTRIGGER_IOCTL,
+    TRACE_CODE_HDD_SETROAMSCANPERIOD_IOCTL,
+    TRACE_CODE_HDD_GETROAMSCANPERIOD_IOCTL,
+    TRACE_CODE_HDD_SETROAMDELTA_IOCTL,
+    TRACE_CODE_HDD_GETROAMDELTA_IOCTL,
+    TRACE_CODE_HDD_GETBAND_IOCTL,
+    TRACE_CODE_HDD_GETCOUNTRYREV_IOCTL,
+    TRACE_CODE_HDD_SETROAMSCANCHANNELS_IOCTL,
+    TRACE_CODE_HDD_GETROAMSCANCHANNELS_IOCTL,
+    TRACE_CODE_HDD_HOSTAPD_OPEN_REQUEST,
+    TRACE_CODE_HDD_HOSTAPD_STOP_REQUEST,
+    TRACE_CODE_HDD_HOSTAPD_UNINIT_REQUEST,
+    TRACE_CODE_HDD_SOFTAP_TX_TIMEOUT,
+    TRACE_CODE_HDD_HOSTAPD_SET_MAC_ADDR,
+    TRACE_CODE_HDD_HOSTAPD_P2P_SET_NOA_IOCTL,
+    TRACE_CODE_HDD_HOSTAPD_P2P_SET_PS_IOCTL,
+    TRACE_CODE_HDD_HOSTAPD_SET_SAP_CHANNEL_LIST_IOCTL,
+    TRACE_CODE_HDD_ADD_VIRTUAL_INTF,
+    TRACE_CODE_HDD_DEL_VIRTUAL_INTF,
+    TRACE_CODE_HDD_CHANGE_VIRTUAL_INTF,
+    TRACE_CODE_HDD_CFG80211_START_AP,
+    TRACE_CODE_HDD_CFG80211_CHANGE_BEACON,
+    TRACE_CODE_HDD_CFG80211_STOP_AP,
+    TRACE_CODE_HDD_CFG80211_CHANGE_BSS,
+    TRACE_CODE_HDD_CFG80211_ADD_KEY,
+    TRACE_CODE_HDD_CFG80211_GET_KEY,
+    TRACE_CODE_HDD_CFG80211_SET_DEFAULT_KEY,
+    TRACE_CODE_HDD_CFG80211_CONNECT,
+    TRACE_CODE_HDD_CFG80211_DISCONNECT,
+    TRACE_CODE_HDD_CFG80211_JOIN_IBSS,
+    TRACE_CODE_HDD_CFG80211_LEAVE_IBSS,
+    TRACE_CODE_HDD_CFG80211_SET_WIPHY_PARAMS,
+    TRACE_CODE_HDD_CFG80211_SET_TXPOWER,
+    TRACE_CODE_HDD_CFG80211_GET_TXPOWER,
+    TRACE_CODE_HDD_CFG80211_SET_CHANNEL,
+    TRACE_CODE_HDD_CFG80211_ADD_BEACON,
+    TRACE_CODE_HDD_CFG80211_SET_BEACON,
+    TRACE_CODE_HDD_CFG80211_CHANGE_IFACE,
+    TRACE_CODE_HDD_CHANGE_STATION,
+    TRACE_CODE_HDD_CFG80211_UPDATE_BSS,
+    TRACE_CODE_HDD_CFG80211_SCAN,
+    TRACE_CODE_HDD_REMAIN_ON_CHANNEL,
+    TRACE_CODE_HDD_REMAINCHANREADYHANDLER,
+    TRACE_CODE_HDD_CFG80211_CANCEL_REMAIN_ON_CHANNEL,
+    TRACE_CODE_HDD_ACTION,
+    TRACE_CODE_HDD_MGMT_TX_CANCEL_WAIT,
+    TRACE_CODE_HDD_CFG80211_GET_STA,
+    TRACE_CODE_HDD_CFG80211_SET_POWER_MGMT,
+    TRACE_CODE_HDD_CFG80211_DEL_STA,
+    TRACE_CODE_HDD_CFG80211_ADD_STA,
+    TRACE_CODE_HDD_CFG80211_SET_PMKSA,
+    TRACE_CODE_HDD_CFG80211_UPDATE_FT_IES,
+    TRACE_CODE_HDD_CFG80211_TDLS_MGMT,
+    TRACE_CODE_HDD_CFG80211_TDLS_OPER,
+    TRACE_CODE_HDD_CFG80211_SET_REKEY_DATA,
+    TRACE_CODE_HDD_UNSUPPORTED_IOCTL,
+    TRACE_CODE_HDD_SETROAMSCANCHANNELMINTIME_IOCTL,
+    TRACE_CODE_HDD_GETROAMSCANCHANNELMINTIME_IOCTL
+};
+
+extern void hddTraceDump(void *pMac, tpvosTraceRecord pRecord, tANI_U16 recIndex);
+extern void hddTraceInit(void);
+#endif
+
+
diff --git a/prima/CORE/HDD/src/wlan_hdd_trace.c b/prima/CORE/HDD/src/wlan_hdd_trace.c
new file mode 100644
index 0000000..433bbbb
--- /dev/null
+++ b/prima/CORE/HDD/src/wlan_hdd_trace.c
@@ -0,0 +1,92 @@
+/*========================================================================
+  \file  wlan_hdd_trace.c
+
+  \brief WLAN Host Device Driver trace implementation
+
+   Copyright 2014 (c) Qualcomm Technologies, Inc.  All Rights Reserved.
+
+   Qualcomm Technologies Confidential and Proprietary.
+
+  ========================================================================*/
+
+#include "vos_trace.h"
+#include "vos_types.h"
+#include "wlan_hdd_trace.h"
+#include "wlan_hdd_main.h"
+
+static tANI_U8* hddTraceGetEventString(tANI_U32 code)
+{
+    switch(code)
+    {
+           CASE_RETURN_STRING(TRACE_CODE_HDD_OPEN_REQUEST);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_STOP_REQUEST);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_TX_TIMEOUT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_P2P_DEV_ADDR_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETSUSPENDMODE_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETROAMTRIGGER_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETROAMTRIGGER_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETROAMSCANPERIOD_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETROAMSCANPERIOD_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETROAMDELTA_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETROAMDELTA_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETBAND_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETCOUNTRYREV_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETROAMSCANCHANNELS_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETROAMSCANCHANNELS_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_OPEN_REQUEST);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_STOP_REQUEST);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_UNINIT_REQUEST);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SOFTAP_TX_TIMEOUT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_SET_MAC_ADDR);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_P2P_SET_NOA_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_P2P_SET_PS_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_HOSTAPD_SET_SAP_CHANNEL_LIST_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_ADD_VIRTUAL_INTF);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_DEL_VIRTUAL_INTF);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CHANGE_VIRTUAL_INTF);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_START_AP);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_CHANGE_BEACON);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_STOP_AP);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_CHANGE_BSS);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_ADD_KEY);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_GET_KEY    );
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_SET_DEFAULT_KEY);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_CONNECT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_DISCONNECT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_JOIN_IBSS);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_LEAVE_IBSS);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_SET_WIPHY_PARAMS);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_SET_TXPOWER);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_GET_TXPOWER);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_REMAIN_ON_CHANNEL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_REMAINCHANREADYHANDLER);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_CANCEL_REMAIN_ON_CHANNEL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_ACTION);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_MGMT_TX_CANCEL_WAIT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_GET_STA);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_SET_POWER_MGMT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_DEL_STA);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_ADD_STA);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_SET_PMKSA);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_UPDATE_FT_IES);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_CFG80211_TDLS_MGMT);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_UNSUPPORTED_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_SETROAMSCANCHANNELMINTIME_IOCTL);
+           CASE_RETURN_STRING(TRACE_CODE_HDD_GETROAMSCANCHANNELMINTIME_IOCTL);
+           default:
+               return ("UNKNOWN");
+               break;
+    }
+}
+
+void hddTraceDump(void *pMac, tpvosTraceRecord pRecord, tANI_U16 recIndex)
+{
+    hddLog(LOGE, "%04d    %012u  S%d    %-14s  %-30s(0x%x) ",
+                  recIndex, pRecord->time, pRecord->session,
+                  "HDD Event:", hddTraceGetEventString(pRecord->code), pRecord->data);
+}
+
+void hddTraceInit()
+{
+    vosTraceRegister(VOS_MODULE_ID_HDD, (tpvosTraceCb)&hddTraceDump);
+}