qcacld-3.0: Add FW Profiling support

Add Profiling stats support in HOST driver to
have CPU based profiling for critical data
path functions in FW.

Change-Id: Ib6d4f0b220f622cf304536c8e538d4dc34c6434b
CRs-Fixed: 921950
diff --git a/core/hdd/inc/qc_sap_ioctl.h b/core/hdd/inc/qc_sap_ioctl.h
index 5fee04f..6983a7a 100644
--- a/core/hdd/inc/qc_sap_ioctl.h
+++ b/core/hdd/inc/qc_sap_ioctl.h
@@ -147,6 +147,7 @@
 /* Private ioctls and their sub-ioctls */
 #define QCSAP_PRIV_GET_CHAR_SET_NONE   (SIOCIWFIRSTPRIV + 13)
 #define QCSAP_GET_STATS 1
+#define QCSAP_LIST_FW_PROFILE 2
 #define QCSAP_IOCTL_CLR_STATS         (SIOCIWFIRSTPRIV+14)
 
 #define QCSAP_IOCTL_PRIV_SET_THREE_INT_GET_NONE (SIOCIWFIRSTPRIV+15)
@@ -171,6 +172,8 @@
 #define QCSAP_IOCTL_SET_FW_CRASH_INJECT 1
 #endif
 #define QCSAP_IOCTL_DUMP_DP_TRACE_LEVEL 2
+#define QCSAP_ENABLE_FW_PROFILE          3
+#define QCSAP_SET_FW_PROFILE_HIST_INTVL  4
 
 #define MAX_VAR_ARGS         7
 #define QCSAP_IOCTL_PRIV_GET_SOFTAP_LINK_SPEED (SIOCIWFIRSTPRIV + 31)
@@ -237,6 +240,8 @@
 	QCASAP_DUMP_STATS,
 	QCASAP_CLEAR_STATS,
 	QCASAP_SET_RADAR_DBG,
+	QCSAP_GET_FW_PROFILE_DATA,
+	QCSAP_START_FW_PROFILING
 };
 
 int iw_softap_get_channel_list(struct net_device *dev,
diff --git a/core/hdd/inc/wlan_hdd_wext.h b/core/hdd/inc/wlan_hdd_wext.h
index 1f78e49..7bb8606 100644
--- a/core/hdd/inc/wlan_hdd_wext.h
+++ b/core/hdd/inc/wlan_hdd_wext.h
@@ -306,6 +306,8 @@
 
 extern void hdd_wlan_get_stats(hdd_adapter_t *pAdapter, uint16_t *length,
 			       char *buffer, uint16_t buf_len);
+extern void hdd_wlan_list_fw_profile(uint16_t *length,
+			       char *buffer, uint16_t buf_len);
 
 extern int iw_set_essid(struct net_device *dev,
 			struct iw_request_info *info,