--- a/drivers/net/wireless/ath/ath10k/Makefile
+++ b/drivers/net/wireless/ath/ath10k/Makefile
@@ -12,7 +12,8 @@ ath10k_core-y += mac.o \
 		 bmi.o \
 		 hw.o \
 		 p2p.o \
-		 swap.o
+		 swap.o \
+		 fwlog.o
 
 ath10k_core-$(CPTCFG_ATH10K_DEBUGFS) += spectral.o
 ath10k_core-$(CPTCFG_NL80211_TESTMODE) += testmode.o
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -30,6 +30,7 @@
 #include "htt.h"
 #include "testmode.h"
 #include "wmi-ops.h"
+#include "fwlog.h"
 
 unsigned int ath10k_debug_mask;
 static unsigned int ath10k_cryptmode_param;
@@ -1680,6 +1681,7 @@ static int ath10k_core_init_firmware_fea
 		ar->htt.max_num_pending_tx = TARGET_10X_NUM_MSDU_DESC;
 		ar->fw_stats_req_mask = WMI_STAT_PEER;
 		ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM;
+		ar->fwlog_max_moduleid = ATH10K_FWLOG_MODULE_ID_MAX_10_2_4;
 		break;
 	case ATH10K_FW_WMI_OP_VERSION_TLV:
 		ar->max_num_peers = TARGET_TLV_NUM_PEERS;
@@ -1701,6 +1703,7 @@ static int ath10k_core_init_firmware_fea
 		ar->fw_stats_req_mask = WMI_10_4_STAT_PEER |
 					WMI_10_4_STAT_PEER_EXTD;
 		ar->max_spatial_stream = ar->hw_params.max_spatial_stream;
+		ar->fwlog_max_moduleid = ATH10K_FWLOG_MODULE_ID_MAX_10_4;
 
 		if (test_bit(ATH10K_FW_FEATURE_PEER_FLOW_CONTROL,
 			     fw_file->fw_features))
@@ -2213,6 +2216,8 @@ static void ath10k_core_register_work(st
 		goto err_spectral_destroy;
 	}
 
+	ath10k_fwlog_register(ar);
+
 	set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags);
 	return;
 
@@ -2275,6 +2280,8 @@ void ath10k_core_unregister(struct ath10
 	ath10k_core_free_board_files(ar);
 
 	ath10k_debug_unregister(ar);
+
+	ath10k_fwlog_unregister(ar);
 }
 EXPORT_SYMBOL(ath10k_core_unregister);
 
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -47,6 +47,8 @@
 #define ATH10K_FLUSH_TIMEOUT_HZ (5 * HZ)
 #define ATH10K_CONNECTION_LOSS_HZ (3 * HZ)
 #define ATH10K_NUM_CHANS 39
+#define ATH10K_FWLOG_MODULE_ID_MAX_10_2_4 28
+#define ATH10K_FWLOG_MODULE_ID_MAX_10_4	34
 
 /* Antenna noise floor */
 #define ATH10K_DEFAULT_NOISE_FLOOR -95
@@ -740,6 +742,7 @@ struct ath10k {
 	u32 vht_cap_info;
 	u32 num_rf_chains;
 	u32 max_spatial_stream;
+	u32 fwlog_max_moduleid;
 	/* protected by conf_mutex */
 	bool ani_enabled;
 
@@ -948,6 +951,9 @@ struct ath10k {
 		u32 reg_ack_cts_timeout_orig;
 	} fw_coverage;
 
+	struct work_struct fwlog_tx_work;
+	struct sk_buff_head fwlog_tx_queue;
+
 	/* must be last */
 	u8 drv_priv[0] __aligned(sizeof(void *));
 };
--- /dev/null
+++ b/drivers/net/wireless/ath/ath10k/fwlog.c
@@ -0,0 +1,1549 @@
+/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ *
+ * 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.
+ */
+
+#include "core.h"
+#include "debug.h"
+
+#define FW_DBGLOG_TIMESTAMP_OFFSET	0
+#define FW_DBGLOG_TIMESTAMP_MASK	0xFFFFFFFF /* Bit 0-15. Contains bit
+                                                       8-23 of the LF0 timer */
+#define FW_DBGLOG_DBGID_OFFSET		0
+#define FW_DBGLOG_DBGID_MASK		0x000003FF /* Bit 0-9 */
+#define FW_DBGLOG_DBGID_NUM_MAX		256 /* Upper limit is width of mask */
+
+#define FW_DBGLOG_MODULEID_OFFSET	10
+#define FW_DBGLOG_MODULEID_MASK		0x0003FC00 /* Bit 10-17 */
+#define FW_DBGLOG_MODULEID_NUM_MAX	32 /* Upper limit is width of mask */
+
+#define FW_DBGLOG_VAPID_OFFSET		18
+#define FW_DBGLOG_VAPID_MASK		0x03FC0000 /* Bit 20-25*/
+#define FW_DBGLOG_VAPID_NUM_MAX		16
+
+#define FW_DBGLOG_NUM_ARGS_OFFSET	26
+#define FW_DBGLOG_NUM_ARGS_MASK		0xFC000000 /* Bit 26-31 */
+#define FW_DBGLOG_NUM_ARGS_MAX		5 /* it is limited bcoz of limitatios
+                                             with Xtensa tool */
+
+
+
+#define FW_DBGLOG_GET_DBGID(arg) \
+    ((arg & FW_DBGLOG_DBGID_MASK) >> FW_DBGLOG_DBGID_OFFSET)
+
+#define FW_DBGLOG_GET_MODULEID(arg) \
+    ((arg & FW_DBGLOG_MODULEID_MASK) >> FW_DBGLOG_MODULEID_OFFSET)
+
+#define FW_DBGLOG_GET_VAPID(arg) \
+    ((arg & FW_DBGLOG_VAPID_MASK) >> FW_DBGLOG_VAPID_OFFSET)
+
+#define FW_DBGLOG_GET_NUMARGS(arg) \
+    ((arg & FW_DBGLOG_NUM_ARGS_MASK) >> FW_DBGLOG_NUM_ARGS_OFFSET)
+
+#define FW_DBGLOG_GET_TIME_STAMP(arg) \
+    ((arg & FW_DBGLOG_TIMESTAMP_MASK) >> FW_DBGLOG_TIMESTAMP_OFFSET)
+
+#define ATH10K_FWLOG_MAX_EVT_QUEUE 100
+#define FW_DBGLOG_PRINT_PREFIX "FWLOG: "
+#define MAX_DBG_MSGS 256
+
+typedef enum {
+  WLAN_MODULE_ID_MIN = 0,
+  WLAN_MODULE_INF = WLAN_MODULE_ID_MIN,
+  WLAN_MODULE_WMI,
+  WLAN_MODULE_STA_PWRSAVE,
+  WLAN_MODULE_WHAL,
+  WLAN_MODULE_COEX,
+  WLAN_MODULE_ROAM,
+  WLAN_MODULE_RESMGR_CHAN_MANAGER,
+  WLAN_MODULE_RESMGR_OCS,
+  WLAN_MODULE_VDEV_MGR,
+  WLAN_MODULE_SCAN,
+  WLAN_MODULE_RATECTRL,
+  WLAN_MODULE_AP_PWRSAVE,
+  WLAN_MODULE_BLOCKACK,
+  WLAN_MODULE_MGMT_TXRX,
+  WLAN_MODULE_DATA_TXRX,
+  WLAN_MODULE_HTT,
+  WLAN_MODULE_HOST,
+  WLAN_MODULE_BEACON,
+  WLAN_MODULE_OFFLOAD,
+  WLAN_MODULE_WAL,
+  WAL_MODULE_DE,
+  WLAN_MODULE_PCIELP,
+  WLAN_MODULE_RTT,
+  WLAN_MODULE_RESOURCE,
+  WLAN_MODULE_DCS,
+  WLAN_MODULE_ANI,
+  WLAN_MODULE_CACHEMGR,
+  WLAN_MODULE_DEBUG,
+  WLAN_MODULE_ID_MAX,
+  WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
+} WLAN_MODULE_ID;
+
+typedef enum {
+	/* Add various modules supported by 10.4 fw
+	 * when module IDs are needed to be used
+	 */
+	WLAN_10_4_MODULE_ID_MAX = 34,
+	WLAN_10_4_MODULE_ID_INVALID = WLAN_10_4_MODULE_ID_MAX,
+} WLAN_10_4_MODULE_ID;
+
+
+char * DBG_MSG_ARR[WLAN_MODULE_ID_MAX][MAX_DBG_MSGS] =
+{
+{
+	"INF_MSG_START",
+	"INF_ASSERTION_FAILED",
+	"INF_TARGET_ID",
+	"INF_MSG_END"
+},
+{
+	"WMI_DBGID_DEFINITION_START",
+	"WMI_CMD_RX_XTND_PKT_TOO_SHORT",
+	"WMI_EXTENDED_CMD_NOT_HANDLED",
+	"WMI_CMD_RX_PKT_TOO_SHORT",
+	"WMI_CALLING_WMI_EXTENSION_FN",
+	"WMI_CMD_NOT_HANDLED",
+	"WMI_IN_SYNC",
+	"WMI_TARGET_WMI_SYNC_CMD",
+	"WMI_SET_SNR_THRESHOLD_PARAMS",
+	"WMI_SET_RSSI_THRESHOLD_PARAMS",
+	"WMI_SET_LQ_TRESHOLD_PARAMS",
+	"WMI_TARGET_CREATE_PSTREAM_CMD",
+	"WMI_WI_DTM_INUSE",
+	"WMI_TARGET_DELETE_PSTREAM_CMD",
+	"WMI_TARGET_IMPLICIT_DELETE_PSTREAM_CMD",
+	"WMI_TARGET_GET_BIT_RATE_CMD",
+	"WMI_GET_RATE_MASK_CMD_FIX_RATE_MASK_IS",
+	"WMI_TARGET_GET_AVAILABLE_CHANNELS_CMD",
+	"WMI_TARGET_GET_TX_PWR_CMD",
+	"WMI_FREE_EVBUF_WMIBUF",
+	"WMI_FREE_EVBUF_DATABUF",
+	"WMI_FREE_EVBUF_BADFLAG",
+	"WMI_HTC_RX_ERROR_DATA_PACKET",
+        "WMI_HTC_RX_SYNC_PAUSING_FOR_MBOX",
+	"WMI_INCORRECT_WMI_DATA_HDR_DROPPING_PKT",
+	"WMI_SENDING_READY_EVENT",
+	"WMI_SETPOWER_MDOE_TO_MAXPERF",
+	"WMI_SETPOWER_MDOE_TO_REC",
+	"WMI_BSSINFO_EVENT_FROM",
+	"WMI_TARGET_GET_STATS_CMD",
+	"WMI_SENDING_SCAN_COMPLETE_EVENT",
+	"WMI_SENDING_RSSI_INDB_THRESHOLD_EVENT ",
+	"WMI_SENDING_RSSI_INDBM_THRESHOLD_EVENT",
+	"WMI_SENDING_LINK_QUALITY_THRESHOLD_EVENT",
+	"WMI_SENDING_ERROR_REPORT_EVENT",
+	"WMI_SENDING_CAC_EVENT",
+	"WMI_TARGET_GET_ROAM_TABLE_CMD",
+	"WMI_TARGET_GET_ROAM_DATA_CMD",
+	"WMI_SENDING_GPIO_INTR_EVENT",
+	"WMI_SENDING_GPIO_ACK_EVENT",
+	"WMI_SENDING_GPIO_DATA_EVENT",
+	"WMI_CMD_RX",
+	"WMI_CMD_RX_XTND",
+	"WMI_EVENT_SEND",
+	"WMI_EVENT_SEND_XTND",
+	"WMI_CMD_PARAMS_DUMP_START",
+	"WMI_CMD_PARAMS_DUMP_END",
+	"WMI_CMD_PARAMS",
+	"WMI_EVENT_ALLOC_FAILURE",
+	"WMI_DBGID_DCS_PARAM_CMD",
+	"WMI_DBGOD_DEFNITION_END",
+},
+{
+	"PS_STA_DEFINITION_START",
+	"PS_STA_PM_ARB_REQUEST",
+},
+{
+	"WHAL_DBGID_DEFINITION_START",
+	"WHAL_ERROR_ANI_CONTROL",
+	"WHAL_ERROR_CHIP_TEST1",
+	"WHAL_ERROR_CHIP_TEST2",
+	"WHAL_ERROR_EEPROM_CHECKSUM",
+	"WHAL_ERROR_EEPROM_MACADDR",
+	"WHAL_ERROR_INTERRUPT_HIU",
+	"WHAL_ERROR_KEYCACHE_RESET",
+	"WHAL_ERROR_KEYCACHE_SET",
+	"WHAL_ERROR_KEYCACHE_TYPE",
+	"WHAL_ERROR_KEYCACHE_TKIPENTRY",
+	"WHAL_ERROR_KEYCACHE_WEPLENGTH",
+	"WHAL_ERROR_PHY_INVALID_CHANNEL",
+	"WHAL_ERROR_POWER_AWAKE",
+	"WHAL_ERROR_POWER_SET",
+	"WHAL_ERROR_RECV_STOPDMA",
+	"WHAL_ERROR_RECV_STOPPCU",
+	"WHAL_ERROR_RESET_CHANNF1",
+	"WHAL_ERROR_RESET_CHANNF2",
+	"WHAL_ERROR_RESET_PM",
+	"WHAL_ERROR_RESET_OFFSETCAL",
+	"WHAL_ERROR_RESET_RFGRANT",
+	"WHAL_ERROR_RESET_RXFRAME",
+        "WHAL_ERROR_RESET_STOPDMA",
+	"WHAL_ERROR_RESET_ERRID",
+	"WHAL_ERROR_RESET_ADCDCCAL1",
+	"WHAL_ERROR_RESET_ADCDCCAL2",
+	"WHAL_ERROR_RESET_TXIQCAL",
+	"WHAL_ERROR_RESET_RXIQCAL",
+	"WHAL_ERROR_RESET_CARRIERLEAK",
+	"WHAL_ERROR_XMIT_COMPUTE",
+	"WHAL_ERROR_XMIT_NOQUEUE",
+	"WHAL_ERROR_XMIT_ACTIVEQUEUE",
+	"WHAL_ERROR_XMIT_BADTYPE",
+	"WHAL_ERROR_XMIT_STOPDMA",
+	"WHAL_ERROR_INTERRUPT_BB_PANIC",
+	"WHAL_ERROR_PAPRD_MAXGAIN_ABOVE_WINDOW",
+	"WHAL_SMARTANT_CONFIGURE",
+	"WHAL_SMARTANT_RXANTENNA",
+	"WHAL_TX_ENQUEUE",
+	"WHAL_COEX_RESET",
+	"WHAL_COEX_SELF_GEN_MASK",
+	"WHAL_ERROR_COEX_MCI_ISR",
+	"WHAL_COEX_MCI_ISR_IntRaw",
+	"WHAL_COEX_MCI_ISR_Int1Raw",
+	"WHAL_COEX_MCI_ISR_RxMsgRaw",
+	"WHAL_COEX_SENDMSG_QUEUE",
+	"WHAL_COEX_TX_MCI_REMOTE_RESET",
+	"WHAL_COEX_TX_MCI_TYPE_UNKNOWN",
+	"WHAL_COEX_TX_MCI_SYS_SLEEPING",
+	"WHAL_COEX_TX_MCI_REQ_WAKE",
+	"WHAL_COEX_TX_MCI_SYS_WAKING",
+	"WHAL_COEX_TX_MCI_LNA_TAKE",
+	"WHAL_COEX_TX_MCI_LNA_TRANS",
+	"WHAL_COEX_TX_MCI_GPM_UNKNOWN",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_SET_ACL_INACTIVITY",
+	"WHAL_COEX_TX_MCI_GPM_BT_PAUSE_PROFILE",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_PRIO",
+	"WHAL_COEX_TX_MCI_GPM_BT_STATUS_UPDATE",
+	"WHAL_COEX_TX_MCI_GPM_BT_UPDATE_FLAGS",
+	"WHAL_COEX_TX_MCI_GPM_VERSION_QUERY",
+	"WHAL_COEX_TX_MCI_GPM_VERSION_RESPONSE",
+	"WHAL_COEX_TX_MCI_GPM_STATUS_QUERY",
+	"WHAL_COEX_TX_MCI_GPM_HALT_BT_GPM",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_CHANNELS",
+	"WHAL_COEX_TX_MCI_GPM_BT_PROFILE_INFO",
+	"WHAL_COEX_TX_MCI_GPM_BT_CAL_REQ ",
+	"WHAL_COEX_TX_MCI_GPM_BT_CAL_GRANT",
+	"WHAL_COEX_TX_MCI_GPM_BT_CAL_DONE",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_CAL_REQ",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_CAL_GRANT",
+	"WHAL_COEX_TX_MCI_GPM_WLAN_CAL_DONE",
+	"WHAL_COEX_TX_MCI_GPM_BT_DEBUG",
+	"WHAL_COEX_WHAL_MCI_RESET",
+	"WHAL_COEX_POLL_BT_CAL_DONE_TIMEOUT",
+	"WHAL_COEX_WHAL_PAUSE",
+	"WHAL_COEX_RX_MCI_GPM_BT_CAL_REQ",
+	"WHAL_COEX_RX_MCI_GPM_BT_CAL_DONE",
+	"WHAL_COEX_RX_MCI_GPM_BT_CAL_GRANT",
+	"WHAL_COEX_WLAN_CAL_START",
+	"WHAL_COEX_WLAN_CAL_RESULT ",
+	"WHAL_COEX_BtMciState",
+	"WHAL_COEX_BtCalState",
+	"WHAL_COEX_WlanCalState",
+	"WHAL_COEX_RxReqWakeCount",
+	"WHAL_COEX_RxRemoteResetCount",
+	"WHAL_COEX_RESTART_CAL",
+	"WHAL_COEX_WHAL_COEX_RESET",
+        "WHAL_COEX_SELF_GEN_MASK",
+	"WHAL_DBGID_DEFINITION_END"
+},
+{
+	"COEX_DEBUGID_START",
+	"BTCOEX_DBG_MCI_1",
+	"BTCOEX_DBG_MCI_2",
+	"BTCOEX_DBG_MCI_3",
+	"BTCOEX_DBG_MCI_4",
+	"BTCOEX_DBG_MCI_5",
+	"BTCOEX_DBG_MCI_6",
+	"BTCOEX_DBG_MCI_7",
+	"BTCOEX_DBG_MCI_8",
+	"BTCOEX_DBG_MCI_9",
+	"BTCOEX_DBG_MCI_10",
+	"COEX_WAL_BTCOEX_INIT",
+	"COEX_WAL_PAUSE",
+	"COEX_WAL_RESUME",
+	"COEX_UPDATE_AFH",
+	"COEX_HWQ_EMPTY_CB",
+	"COEX_MCI_TIMER_HANDLER",
+	"COEX_MCI_RECOVER",
+	"ERROR_COEX_MCI_ISR",
+	"ERROR_COEX_MCI_GPM",
+	"COEX_ProfileType",
+	"COEX_LinkID",
+	"COEX_LinkState",
+	"COEX_LinkRole",
+	"COEX_LinkRate",
+	"COEX_VoiceType",
+	"COEX_TInterval",
+	"COEX_WRetrx",
+	"COEX_Attempts",
+	"COEX_PerformanceState",
+	"COEX_LinkType",
+	"COEX_RX_MCI_GPM_VERSION_QUERY",
+	"COEX_RX_MCI_GPM_VERSION_RESPONSE",
+	"COEX_RX_MCI_GPM_STATUS_QUERY",
+	"COEX_STATE_WLAN_VDEV_DOWN",
+	"COEX_STATE_WLAN_VDEV_START",
+	"COEX_STATE_WLAN_VDEV_CONNECTED",
+	"COEX_STATE_WLAN_VDEV_SCAN_STARTED",
+	"COEX_STATE_WLAN_VDEV_SCAN_END",
+	"COEX_STATE_WLAN_DEFAULT",
+	"COEX_CHANNEL_CHANGE",
+	"COEX_POWER_CHANGE",
+	"COEX_CONFIG_MGR",
+	"COEX_TX_MCI_GPM_BT_CAL_REQ",
+	"COEX_TX_MCI_GPM_BT_CAL_GRANT",
+	"COEX_TX_MCI_GPM_BT_CAL_DONE",
+	"COEX_TX_MCI_GPM_WLAN_CAL_REQ",
+	"COEX_TX_MCI_GPM_WLAN_CAL_GRANT",
+	"COEX_TX_MCI_GPM_WLAN_CAL_DONE",
+	"COEX_TX_MCI_GPM_BT_DEBUG",
+	"COEX_TX_MCI_GPM_VERSION_QUERY",
+	"COEX_TX_MCI_GPM_VERSION_RESPONSE",
+	"COEX_TX_MCI_GPM_STATUS_QUERY",
+	"COEX_TX_MCI_GPM_HALT_BT_GPM",
+	"COEX_TX_MCI_GPM_WLAN_CHANNELS",
+	"COEX_TX_MCI_GPM_BT_PROFILE_INFO",
+	"COEX_TX_MCI_GPM_BT_STATUS_UPDATE",
+	"COEX_TX_MCI_GPM_BT_UPDATE_FLAGS",
+	"COEX_TX_MCI_GPM_UNKNOWN",
+	"COEX_TX_MCI_SYS_WAKING",
+	"COEX_TX_MCI_LNA_TAKE",
+	"COEX_TX_MCI_LNA_TRANS",
+	"COEX_TX_MCI_SYS_SLEEPING",
+	"COEX_TX_MCI_REQ_WAKE",
+	"COEX_TX_MCI_REMOTE_RESET",
+	"COEX_TX_MCI_TYPE_UNKNOWN",
+	"COEX_WHAL_MCI_RESET",
+	"COEX_POLL_BT_CAL_DONE_TIMEOUT",
+	"COEX_WHAL_PAUSE",
+	"COEX_RX_MCI_GPM_BT_CAL_REQ",
+	"COEX_RX_MCI_GPM_BT_CAL_DONE",
+	"COEX_RX_MCI_GPM_BT_CAL_GRANT",
+	"COEX_WLAN_CAL_START",
+	"COEX_WLAN_CAL_RESULT",
+	"COEX_BtMciState",
+	"COEX_BtCalState",
+	"COEX_WlanCalState",
+	"COEX_RxReqWakeCount",
+	"COEX_RxRemoteResetCount",
+	"COEX_RESTART_CAL",
+	"COEX_SENDMSG_QUEUE",
+	"COEX_RESETSEQ_LNAINFO_TIMEOUT",
+	"COEX_MCI_ISR_IntRaw",
+	"COEX_MCI_ISR_Int1Raw",
+	"COEX_MCI_ISR_RxMsgRaw",
+	"COEX_WHAL_COEX_RESET",
+	"COEX_WAL_COEX_INIT",
+	"COEX_TXRX_CNT_LIMIT_ISR",
+	"COEX_CH_BUSY",
+	"COEX_REASSESS_WLAN_STATE",
+	"COEX_BTCOEX_WLAN_STATE_UPDATE",
+	"COEX_BT_NUM_OF_PROFILES",
+	"COEX_BT_NUM_OF_HID_PROFILES",
+	"COEX_BT_NUM_OF_ACL_PROFILES",
+	"COEX_BT_NUM_OF_HI_ACL_PROFILES",
+	"COEX_BT_NUM_OF_VOICE_PROFILES",
+	"COEX_WLAN_AGGR_LIMIT",
+	"COEX_BT_LOW_PRIO_BUDGET",
+	"COEX_BT_HI_PRIO_BUDGET",
+	"COEX_BT_IDLE_TIME",
+	"COEX_SET_COEX_WEIGHT",
+	"COEX_WLAN_WEIGHT_GROUP",
+	"COEX_BT_WEIGHT_GROUP",
+	"COEX_BT_INTERVAL_ALLOC",
+	"COEX_BT_SCHEME",
+	"COEX_BT_MGR",
+	"COEX_BT_SM_ERROR",
+	"COEX_SYSTEM_UPDATE",
+	"COEX_LOW_PRIO_LIMIT",
+	"COEX_HI_PRIO_LIMIT",
+	"COEX_BT_INTERVAL_START",
+	"COEX_WLAN_INTERVAL_START",
+	"COEX_NON_LINK_BUDGET",
+	"COEX_CONTENTION_MSG",
+	"COEX_SET_NSS",
+	"COEX_SELF_GEN_MASK",
+	"COEX_PROFILE_ERROR",
+	"COEX_WLAN_INIT",
+	"COEX_BEACON_MISS",
+	"COEX_BEACON_OK",
+	"COEX_BTCOEX_SCAN_ACTIVITY",
+	"COEX_SCAN_ACTIVITY",
+	"COEX_FORCE_QUIETTIME",
+	"COEX_BT_MGR_QUIETTIME",
+	"COEX_BT_INACTIVITY_TRIGGER",
+	"COEX_BT_INACTIVITY_REPORTED",
+	"COEX_TX_MCI_GPM_WLAN_PRIO",
+	"COEX_TX_MCI_GPM_BT_PAUSE_PROFILE",
+	"COEX_TX_MCI_GPM_WLAN_SET_ACL_INACTIVITY",
+	"COEX_RX_MCI_GPM_BT_ACL_INACTIVITY_REPORT",
+	"COEX_GENERIC_ERROR",
+	"COEX_RX_RATE_THRESHOLD",
+	"COEX_RSSI",
+	"COEX_WLAN_VDEV_NOTIF_START", //                 133
+	"COEX_WLAN_VDEV_NOTIF_UP", //                    134
+	"COEX_WLAN_VDEV_NOTIF_DOWN",   //                135
+	"COEX_WLAN_VDEV_NOTIF_STOP",    //               136
+	"COEX_WLAN_VDEV_NOTIF_ADD_PEER",    //           137
+	"COEX_WLAN_VDEV_NOTIF_DELETE_PEER",  //          138
+	"COEX_WLAN_VDEV_NOTIF_CONNECTED_PEER",  //       139
+	"COEX_WLAN_VDEV_NOTIF_PAUSE",   //        140
+	"COEX_WLAN_VDEV_NOTIF_UNPAUSED",    //        141
+	"COEX_STATE_WLAN_VDEV_PEER_ADD",    //           142
+	"COEX_STATE_WLAN_VDEV_CONNECTED_PEER",    //     143
+	"COEX_STATE_WLAN_VDEV_DELETE_PEER",  //          144
+	"COEX_STATE_WLAN_VDEV_PAUSE",  //         145
+	"COEX_STATE_WLAN_VDEV_UNPAUSED",    //        146
+	"COEX_SCAN_CALLBACK",           //    147
+	"COEX_DEBUG_MESSAGE_END"
+},
+{
+	"RO_DBGID_DEFINITION_START",
+	"RO_REFRESH_ROAM_TABLE",
+	"RO_UPDATE_ROAM_CANDIDATE",
+	"RO_UPDATE_ROAM_CANDIDATE_CB",
+	"RO_UPDATE_ROAM_CANDIDATE_FINISH",
+	"RO_REFRESH_ROAM_TABLE_DONE",
+	"RO_PERIODIC_SEARCH_CB",
+	"RO_PERIODIC_SEARCH_TIMEOUT",
+	"RO_INIT",
+	"RO_BMISS_STATE1",
+	"RO_BMISS_STATE2",
+	"RO_SET_PERIODIC_SEARCH_ENABLE",
+	"RO_SET_PERIODIC_SEARCH_DISABLE",
+	"RO_ENABLE_SQ_THRESHOLD",
+	"RO_DISABLE_SQ_THRESHOLD",
+	"RO_ADD_BSS_TO_ROAM_TABLE",
+	"RO_SET_PERIODIC_SEARCH_MODE",
+	"RO_CONFIGURE_SQ_THRESHOLD1",
+	"RO_CONFIGURE_SQ_THRESHOLD2",
+	"RO_CONFIGURE_SQ_PARAMS",
+	"RO_LOW_SIGNAL_QUALITY_EVENT",
+	"RO_HIGH_SIGNAL_QUALITY_EVENT",
+	"RO_REMOVE_BSS_FROM_ROAM_TABLE",
+	"RO_UPDATE_CONNECTION_STATE_METRIC",
+	"RO_LOWRSSI_SCAN_PARAMS",
+	"RO_LOWRSSI_SCAN_START",
+	"RO_LOWRSSI_SCAN_END",
+	"RO_LOWRSSI_SCAN_CANCEL",
+	"RO_LOWRSSI_ROAM_CANCEL",
+	"RO_REFRESH_ROAM_CANDIDATE",
+	"RO_DBGID_DEFINITION_END"
+},
+{
+	"RESMGR_CHMGR_DEFINITION_START",
+	"RESMGR_CHMGR_PAUSE_COMPLETE",
+	"RESMGR_CHMGR_CHANNEL_CHANGE",
+	"RESMGR_CHMGR_RESUME_COMPLETE",
+	"RESMGR_CHMGR_VDEV_PAUSE",
+	"RESMGR_CHMGR_VDEV_UNPAUSE",
+	"RESMGR_CHMGR_DEFINITION_END"
+},
+{
+	"RESMGR_OCS_DEFINITION_START",
+	"RESMGR_OCS_ALLOCRAM_SIZE",
+	"RESMGR_OCS_RESOURCES",
+	"RESMGR_OCS_LINK_CREATE",
+	"RESMGR_OCS_LINK_DELETE",
+	"RESMGR_OCS_CHREQ_CREATE",
+	"RESMGR_OCS_CHREQ_DELETE",
+	"RESMGR_OCS_CHREQ_START",
+	"RESMGR_OCS_CHREQ_STOP",
+	"RESMGR_OCS_SCHEDULER_INVOKED",
+	"RESMGR_OCS_CHREQ_GRANT",
+	"RESMGR_OCS_CHREQ_COMPLETE",
+	"RESMGR_OCS_NEXT_TSFTIME",
+	"RESMGR_OCS_TSF_TIMEOUT_US",
+	"RESMGR_OCS_CURR_CAT_WINDOW",
+	"RESMGR_OCS_CURR_CAT_WINDOW_REQ",
+	"RESMGR_OCS_CURR_CAT_WINDOW_TIMESLOT",
+	"RESMGR_OCS_CHREQ_RESTART",
+	"RESMGR_OCS_CLEANUP_CH_ALLOCATORS",
+	"RESMGR_OCS_PURGE_CHREQ",
+	"RESMGR_OCS_CH_ALLOCATOR_FREE",
+	"RESMGR_OCS_RECOMPUTE_SCHEDULE",
+	"RESMGR_OCS_NEW_CAT_WINDOW_REQ",
+	"RESMGR_OCS_NEW_CAT_WINDOW_TIMESLOT",
+	"RESMGR_OCS_CUR_CH_ALLOC",
+	"RESMGR_OCS_WIN_CH_ALLOC",
+	"RESMGR_OCS_SCHED_CH_CHANGE",
+	"RESMGR_OCS_CONSTRUCT_CAT_WIN",
+	"RESMGR_OCS_CHREQ_PREEMPTED",
+	"RESMGR_OCS_CH_SWITCH_REQ",
+	"RESMGR_OCS_CHANNEL_SWITCHED",
+	"RESMGR_OCS_CLEANUP_STALE_REQS",
+	"RESMGR_OCS_DEFINITION_END"
+},
+{
+	"VDEV_MGR_DEBID_DEFINITION_START", /* vdev Mgr */
+	"VDEV_MGR_BEACON_MISS_TIMER_TIMEOUT",
+	"VDEV_MGR_BEACON_MISS_DETECTED",
+	"VDEV_MGR_BEACON_IN_SYNC",
+	"VDEV_MGR_AP_KEEPALIVE_IDLE",
+	"VDEV_MGR_AP_KEEPALIVE_INACTIVE",
+	"VDEV_MGR_AP_KEEPALIVE_UNRESPONSIVE",
+},
+{
+	"SCAN_START_COMMAND_FAILED", /* scan */
+	"SCAN_STOP_COMMAND_FAILED",
+	"SCAN_EVENT_SEND_FAILED",
+},
+{	"RATECTRL_DBGID_DEFINITION_START", /* Rate ctrl*/
+	"RATECTRL_DBGID_ASSOC",
+	"RATECTRL_DBGID_NSS_CHANGE",
+	"RATECTRL_DBGID_CHAINMASK_ERR",
+	"RATECTRL_DBGID_UNEXPECTED_FRAME",
+	"RATECTRL_DBGID_WAL_RCQUERY",
+	"RATECTRL_DBGID_WAL_RCUPDATE",
+	"RATECTRL_DBGID_DEFINITION_END",
+},
+{
+	"AP_PS_DBGID_DEFINITION_START",
+	"AP_PS_DBGID_UPDATE_TIM",
+	"AP_PS_DBGID_PEER_STATE_CHANGE",
+	"AP_PS_DBGID_PSPOLL",
+	"AP_PS_DBGID_PEER_CREATE",
+	"AP_PS_DBGID_PEER_DELETE",
+	"AP_PS_DBGID_VDEV_CREATE",
+	"AP_PS_DBGID_VDEV_DELETE",
+	"AP_PS_DBGID_SYNC_TIM",
+	"AP_PS_DBGID_NEXT_RESPONSE",
+	"AP_PS_DBGID_START_SP",
+	"AP_PS_DBGID_COMPLETED_EOSP",
+	"AP_PS_DBGID_TRIGGER",
+	"AP_PS_DBGID_DUPLICATE_TRIGGER",
+	"AP_PS_DBGID_UAPSD_RESPONSE",
+	"AP_PS_DBGID_SEND_COMPLETE",
+	"AP_PS_DBGID_SEND_N_COMPLETE",
+},
+{
+	 "" /* Block Ack */
+},
+{
+  "" /* Mgmt TxRx */
+},
+{ "" /* Data TxRx */
+},
+{ "" /* HTT */
+},
+{ "" /* HOST */
+},
+{ "" /* BEACON */
+	"BEACON_EVENT_SWBA_SEND_FAILED",
+},
+{ /* Offload Mgr */
+	"OFFLOAD_MGR_DBGID_DEFINITION_START",
+	"OFFLOADMGR_REGISTER_OFFLOAD",
+	"OFFLOADMGR_DEREGISTER_OFFLOAD",
+	"OFFLOADMGR_NO_REG_DATA_HANDLERS",
+	"OFFLOADMGR_NO_REG_EVENT_HANDLERS",
+	"OFFLOADMGR_REG_OFFLOAD_FAILED",
+	"OFFLOADMGR_DBGID_DEFINITION_END",
+},
+{
+	"WAL_DBGID_DEFINITION_START",
+	"WAL_DBGID_FAST_WAKE_REQUEST",
+	"WAL_DBGID_FAST_WAKE_RELEASE",
+	"WAL_DBGID_SET_POWER_STATE",
+	"WAL_DBGID_MISSING",
+	"WAL_DBGID_CHANNEL_CHANGE_FORCE_RESET",
+	"WAL_DBGID_CHANNEL_CHANGE",
+	"WAL_DBGID_VDEV_START",
+	"WAL_DBGID_VDEV_STOP",
+	"WAL_DBGID_VDEV_UP",
+	"WAL_DBGID_VDEV_DOWN",
+	"WAL_DBGID_SW_WDOG_RESET",
+	"WAL_DBGID_TX_SCH_REGISTER_TIDQ",
+	"WAL_DBGID_TX_SCH_UNREGISTER_TIDQ",
+	"WAL_DBGID_TX_SCH_TICKLE_TIDQ",
+	"WAL_DBGID_XCESS_FAILURES",
+	"WAL_DBGID_AST_ADD_WDS_ENTRY",
+	"WAL_DBGID_AST_DEL_WDS_ENTRY",
+	"WAL_DBGID_AST_WDS_ENTRY_PEER_CHG",
+	"WAL_DBGID_AST_WDS_SRC_LEARN_FAIL",
+	"WAL_DBGID_STA_KICKOUT",
+	"WAL_DBGID_BAR_TX_FAIL",
+	"WAL_DBGID_BAR_ALLOC_FAIL",
+	"WAL_DBGID_LOCAL_DATA_TX_FAIL",
+	"WAL_DBGID_SECURITY_PM4_QUEUED",
+	"WAL_DBGID_SECURITY_GM1_QUEUED",
+	"WAL_DBGID_SECURITY_PM4_SENT",
+	"WAL_DBGID_SECURITY_ALLOW_DATA",
+	"WAL_DBGID_SECURITY_UCAST_KEY_SET",
+	"WAL_DBGID_SECURITY_MCAST_KEY_SET",
+	"WAL_DBGID_SECURITY_ENCR_EN",
+	"WAL_DBGID_BB_WDOG_TRIGGERED",
+	"WAL_DBGID_RX_LOCAL_BUFS_LWM",
+	"WAL_DBGID_RX_LOCAL_DROP_LARGE_MGMT",
+	"WAL_DBGID_VHT_ILLEGAL_RATE_PHY_ERR_DETECTED",
+	"WAL_DBGID_DEV_RESET",
+	"WAL_DBGID_TX_BA_SETUP",
+	"WAL_DBGID_RX_BA_SETUP",
+	"WAL_DBGID_DEV_TX_TIMEOUT",
+	"WAL_DBGID_DEV_RX_TIMEOUT",
+	"WAL_DBGID_STA_VDEV_XRETRY",
+	"WAL_DBGID_DCS",
+	"WAL_DBGID_HCM_BIN",
+	"WAL_DBGID_HCM_BIN_PENALIZE",
+	"WAL_DBGID_HCM_BIN_DEPENALIZE",
+	"WAL_DBGID_AST_UPDATE_WDS_ENTRY",
+	"WAL_DBGID_PEER_EXT_STATS",
+	"WAL_DBGID_TX_AC_BUFFER_SET",
+	"WAL_DBGID_AST_ENTRY_EXIST",
+	"WAL_DBGID_AST_ENTRY_FULL",
+	"WAL_DBGID_SET_HW_FILTER",
+	"WAL_DBGID_TX_PPDU_COMP_ERR",
+	"WAL_DBGID_TX_ENC_KEY_DROP",
+	"WAL_DBGID_PDEV_INFO_PRINT",
+	"WAL_DBGID_VDEV_INFO_PRINT",
+	"WAL_DBGID_DEFINITION_END",
+},
+{
+	"" /* DE */
+},
+{
+	"" /* pcie lp */
+},
+{
+	"" /* RTT */
+},
+{      /* RESOURCE */
+	"RESOURCE_DBGID_DEFINITION_START",
+	"RESOURCE_PEER_ALLOC",
+	"RESOURCE_PEER_FREE",
+	"RESOURCE_PEER_ALLOC_WAL_PEER",
+	"RESOURCE_DBGID_DEFINITION_END",
+},
+{ /* DCS */
+	"WLAN_DCS_DBGID_INIT",
+	"WLAN_DCS_DBGID_WMI_CWINT",
+	"WLAN_DCS_DBGID_TIMER",
+	"WLAN_DCS_DBGID_CMDG",
+	"WLAN_DCS_DBGID_CMDS",
+	"WLAN_DCS_DBGID_DINIT"
+},
+{   /* ANI  */
+	"ANI_DBGID_POLL",
+	"ANI_DBGID_CONTROL",
+	"ANI_DBGID_OFDM_PARAMS",
+	"ANI_DBGID_CCK_PARAMS",
+	"ANI_DBGID_RESET",
+	"ANI_DBGID_RESTART",
+	"ANI_DBGID_OFDM_LEVEL",
+	"ANI_DBGID_CCK_LEVEL",
+	"ANI_DBGID_FIRSTEP",
+	"ANI_DBGID_CYCPWR",
+	"ANI_DBGID_MRC_CCK",
+	"ANI_DBGID_SELF_CORR_LOW",
+	"ANI_DBGID_ENABLE",
+	"ANI_DBGID_CURRENT_LEVEL",
+	"ANI_DBGID_POLL_PERIOD",
+	"ANI_DBGID_LISTEN_PERIOD",
+	"ANI_DBGID_OFDM_LEVEL_CFG",
+	"ANI_DBGID_CCK_LEVEL_CFG",
+},
+{
+	"" /* CACHEMGR */
+},
+{      /* DEBUG */
+	"WLAN_DEBUG_MODULE_DBGID_START",
+	"WLAN_DEBUG_DBGID_PEER",
+	"WLAN_DEBUG_DBGID_PDEV",
+	"WLAN_DEBUG_DBGID_VDEV",
+	"WLAN_DEBUG_MODULE_DBGID_END",
+},
+};
+
+char *FW_10_4_DBG_MSG_ARR[WLAN_10_4_MODULE_ID_MAX][MAX_DBG_MSGS] =
+{
+{
+	"INF_DBGID_DEFINITION_START",
+	"INF_ASSERTION_FAILED",
+	"INF_TARGET_ID",
+	"INF_DBGID_DEFINITION_END",
+},
+
+{
+	"WAL_MODULE_DE_DEFINITION_START",
+	"WAL_MODULE_DE_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_WAL_PDEV_DEFINITION_START",
+	"WLAN_MODULE_WAL_PDEV_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_WAL_VDEV_DEFINITION_START",
+	"WLAN_MODULE_WAL_VDEV_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_ROAM_DEFINITION_START",
+	"WLAN_MODULE_ROAM_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_DATA_TXRX_DEFINITION_START",
+	"WLAN_MODULE_DATA_TXRX_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_BLOCKACK_DEFINITION_START",
+	"WLAN_MODULE_BLOCKACK_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_QBOOST_DEFINITION_START",
+	"WLAN_MODULE_QBOOST_DBGID_WLAN_PEER_NOT_FOUND",
+	"WLAN_MODULE_QBOOST_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_CACHEMGR_DEFINITION_START",
+	"WLAN_MODULE_CACHEMGR_DEFINITION_END",
+},
+
+{
+	"WLAN_MODULE_HOST_DEFINITION_START",
+	"WLAN_MODULE_HOST_DEFINITION_END",
+},
+
+{
+	"WMI_DBGID_DEFINITION_START",
+	"WMI_CMD_RX_XTND_PKT_TOO_SHORT",
+	"WMI_EXTENDED_CMD_NOT_HANDLED",
+	"WMI_CMD_RX_PKT_TOO_SHORT",
+	"WMI_CALLING_WMI_EXTENSION_FN",
+	"WMI_CMD_NOT_HANDLED",
+	"WMI_IN_SYNC",
+	"WMI_TARGET_WMI_SYNC_CMD",
+	"WMI_SET_SNR_THRESHOLD_PARAMS",
+	"WMI_SET_RSSI_THRESHOLD_PARAMS",
+	"WMI_SET_LQ_THRESHOLD_PARAMS",
+	"WMI_TARGET_CREATE_PSTREAM_CMD",
+	"WMI_WI_DTM_INUSE",
+	"WMI_TARGET_DELETE_PSTREAM_CMD",
+	"WMI_TARGET_IMPLICIT_DELETE_PSTREAM_CMD",
+	"WMI_TARGET_GET_BIT_RATE_CMD",
+	"WMI_GET_RATE_MASK_CMD_FIX_RATE_MASK_IS",
+	"WMI_TARGET_GET_AVAILABLE_CHANNELS_CMD",
+	"WMI_TARGET_GET_TX_PWR_CMD",
+	"WMI_FREE_EVBUF_WMIBUF",
+	"WMI_FREE_EVBUF_DATABUF",
+	"WMI_FREE_EVBUF_BADFLAG",
+	"WMI_HTC_RX_ERROR_DATA_PACKET",
+	"WMI_HTC_RX_SYNC_PAUSING_FOR_MBOX",
+	"WMI_INCORRECT_WMI_DATA_HDR_DROPPING_PKT",
+	"WMI_SENDING_READY_EVENT",
+	"WMI_SETPOWER_MDOE_TO_MAXPERF",
+	"WMI_SETPOWER_MDOE_TO_REC",
+	"WMI_BSSINFO_EVENT_FROM",
+	"WMI_TARGET_GET_STATS_CMD",
+	"WMI_SENDING_SCAN_COMPLETE_EVENT",
+	"WMI_SENDING_RSSI_INDB_THRESHOLD_EVENT",
+	"WMI_SENDING_RSSI_INDBM_THRESHOLD_EVENT",
+	"WMI_SENDING_LINK_QUALITY_THRESHOLD_EVENT",
+	"WMI_SENDING_ERROR_REPORT_EVENT",
+	"WMI_SENDING_CAC_EVENT",
+	"WMI_TARGET_GET_ROAM_TABLE_CMD",
+	"WMI_TARGET_GET_ROAM_DATA_CMD",
+	"WMI_SENDING_GPIO_INTR_EVENT",
+	"WMI_SENDING_GPIO_ACK_EVENT",
+	"WMI_SENDING_GPIO_DATA_EVENT",
+	"WMI_CMD_RX",
+	"WMI_CMD_RX_XTND",
+	"WMI_EVENT_SEND",
+	"WMI_EVENT_SEND_XTND",
+	"WMI_CMD_PARAMS_DUMP_START",
+	"WMI_CMD_PARAMS_DUMP_END",
+	"WMI_CMD_PARAMS",
+	"WMI_EVENT_ALLOC_FAILURE",
+	"WMI_DBGID_DCS_PARAM_CMD",
+	"WMI_DBGID_DEFINITION_END",
+},
+
+{
+	"PS_STA_DEFINITION_START",
+	"PS_STA_PM_ARB_REQUEST",
+	"PS_STA_DELIVER_EVENT",
+},
+
+{
+	"RESMGR_OCS_DEFINITION_START",
+	"RESMGR_OCS_ALLOCRAM_SIZE",
+	"RESMGR_OCS_RESOURCES",
+	"RESMGR_OCS_LINK_CREATE",
+	"RESMGR_OCS_LINK_DELETE",
+	"RESMGR_OCS_CHREQ_CREATE",
+	"RESMGR_OCS_CHREQ_DELETE",
+	"RESMGR_OCS_CHREQ_START",
+	"RESMGR_OCS_CHREQ_STOP",
+	"RESMGR_OCS_SCHEDULER_INVOKED",
+	"RESMGR_OCS_CHREQ_GRANT",
+	"RESMGR_OCS_CHREQ_COMPLETE",
+	"RESMGR_OCS_NEXT_TSFTIME",
+	"RESMGR_OCS_TSF_TIMEOUT_US",
+	"RESMGR_OCS_CURR_CAT_WINDOW",
+	"RESMGR_OCS_CURR_CAT_WINDOW_REQ",
+	"RESMGR_OCS_CURR_CAT_WINDOW_TIMESLOT",
+	"RESMGR_OCS_CHREQ_RESTART",
+	"RESMGR_OCS_CLEANUP_CH_ALLOCATORS",
+	"RESMGR_OCS_PURGE_CHREQ",
+	"RESMGR_OCS_CH_ALLOCATOR_FREE",
+	"RESMGR_OCS_RECOMPUTE_SCHEDULE",
+	"RESMGR_OCS_NEW_CAT_WINDOW_REQ",
+	"RESMGR_OCS_NEW_CAT_WINDOW_TIMESLOT",
+	"RESMGR_OCS_CUR_CH_ALLOC",
+	"RESMGR_OCS_WIN_CH_ALLOC",
+	"RESMGR_OCS_SCHED_CH_CHANGE",
+	"RESMGR_OCS_CONSTRUCT_CAT_WIN",
+	"RESMGR_OCS_CHREQ_PREEMPTED",
+	"RESMGR_OCS_CH_SWITCH_REQ",
+	"RESMGR_OCS_CHANNEL_SWITCHED",
+	"RESMGR_OCS_CLEANUP_STALE_REQS",
+	"RESMGR_OCS_CHREQ_UPDATE",
+	"RESMGR_OCS_REG_NOA_NOTIF",
+	"RESMGR_OCS_DEREG_NOA_NOTIF",
+	"RESMGR_OCS_GEN_PERIODIC_NOA",
+	"RESMGR_OCS_RECAL_QUOTAS",
+	"RESMGR_OCS_GRANTED_QUOTA_STATS",
+	"RESMGR_OCS_ALLOCATED_QUOTA_STATS",
+	"RESMGR_OCS_REQ_QUOTA_STATS",
+	"RESMGR_OCS_TRACKING_TIME_FIRED",
+	"RESMGR_OCS_DEFINITION_END",
+},
+
+{
+	"RESMGR_CHMGR_DEFINITION_START",
+	"RESMGR_CHMGR_PAUSE_COMPLETE",
+	"RESMGR_CHMGR_CHANNEL_CHANGE",
+	"RESMGR_CHMGR_RESUME_COMPLETE",
+	"RESMGR_CHMGR_VDEV_PAUSE",
+	"RESMGR_CHMGR_VDEV_UNPAUSE",
+	"RESMGR_CHMGR_CTS2S_TX_COMP",
+	"RESMGR_CHMGR_CFEND_TX_COMP",
+	"RESMGR_CHMGR_DEFINITION_END",
+},
+
+{
+	"VDEV_MGR_DEFINITION_START",
+	"VDEV_MGR_BMISS_TIMEOUT",
+	"VDEV_MGR_BMISS_DETECTED",
+	"VDEV_MGR_BCN_IN_SYNC",
+	"VDEV_MGR_AP_KEEPALIVE_IDLE",
+	"VDEV_MGR_AP_KEEPALIVE_INACTIVE",
+	"VDEV_MGR_AP_KEEPALIVE_UNRESPONSIVE",
+	"VDEV_MGR_AP_TBTT_CONFIG",
+	"VDEV_MGR_FIRST_BCN_RECEIVED",
+	"VDEV_MGR_VDEV_START",
+	"VDEV_MGR_VDEV_UP",
+	"VDEV_MGR_PEER_AUTHORIZED",
+	"VDEV_MGR_OCS_HP_LP_REQ_POSTED",
+	"VDEV_MGR_VDEV_START_OCS_HP_REQ_COMPLETE",
+	"VDEV_MGR_VDEV_START_OCS_HP_REQ_STOP",
+	"VDEV_MGR_HP_START_TIME",
+	"VDEV_MGR_FIRST_BMISS_DETECTED",
+	"VDEV_MGR_FINAL_BMISS_DETECTED",
+        "VDEV_MGR_VDEV_STOP",
+        "VDEV_MGR_VDEV_DOWN",
+        "VDEV_MGR_VDEV_START_RESP",
+        "VDEV_MGR_VDEV_STOP_RESP",
+        "VDEV_MGR_VDEV_CREATE",
+        "VDEV_MGR_VDEV_DELETE",
+	"VDEV_MGR_DEFINITION_END",
+},
+
+{
+	"WHAL_DBGID_DEFINITION_START",
+	"WHAL_ERROR_ANI_CONTROL",
+	"WHAL_ERROR_CHIP_TEST1",
+	"WHAL_ERROR_CHIP_TEST2",
+	"WHAL_ERROR_EEPROM_CHECKSUM",
+	"WHAL_ERROR_EEPROM_MACADDR",
+	"WHAL_ERROR_INTERRUPT_HIU",
+	"WHAL_ERROR_KEYCACHE_RESET",
+	"WHAL_ERROR_KEYCACHE_SET",
+	"WHAL_ERROR_KEYCACHE_TYPE",
+	"WHAL_ERROR_KEYCACHE_TKIPENTRY",
+	"WHAL_ERROR_KEYCACHE_WEPLENGTH",
+	"WHAL_ERROR_PHY_INVALID_CHANNEL",
+	"WHAL_ERROR_POWER_AWAKE",
+	"WHAL_ERROR_POWER_SET",
+	"WHAL_ERROR_RECV_STOPDMA",
+	"WHAL_ERROR_RECV_STOPPCU",
+	"WHAL_ERROR_RESET_CHANNF1",
+	"WHAL_ERROR_RESET_CHANNF2",
+	"WHAL_ERROR_RESET_PM",
+	"WHAL_ERROR_RESET_OFFSETCAL",
+	"WHAL_ERROR_RESET_RFGRANT",
+	"WHAL_ERROR_RESET_RXFRAME",
+	"WHAL_ERROR_RESET_STOPDMA",
+	"WHAL_ERROR_RESET_ERRID",
+	"WHAL_ERROR_RESET_ADCDCCAL1",
+	"WHAL_ERROR_RESET_ADCDCCAL2",
+	"WHAL_ERROR_RESET_TXIQCAL",
+	"WHAL_ERROR_RESET_RXIQCAL",
+	"WHAL_ERROR_RESET_CARRIERLEAK",
+	"WHAL_ERROR_XMIT_COMPUTE",
+	"WHAL_ERROR_XMIT_NOQUEUE",
+	"WHAL_ERROR_XMIT_ACTIVEQUEUE",
+	"WHAL_ERROR_XMIT_BADTYPE",
+	"WHAL_ERROR_XMIT_STOPDMA",
+	"WHAL_ERROR_INTERRUPT_BB_PANIC",
+	"WHAL_ERROR_PAPRD_MAXGAIN_ABOVE_WINDOW",
+	"WHAL_SMARTANT_CONFIGURE",
+	"WHAL_SMARTANT_RXANTENNA",
+        "WHAL_TX_ENQUEUE",
+        "WHAL_CAL_SET_CAL_PERIOD",
+        "WHAL_CAL_PERFORM_CALIBRATION",
+	"WHAL_DBGID_DEFINITION_END",
+},
+
+{
+	"COEX_DEBUGID_START",
+	"BTCOEX_DBG_MCI_1",
+	"BTCOEX_DBG_MCI_2",
+	"BTCOEX_DBG_MCI_3",
+	"BTCOEX_DBG_MCI_4",
+	"BTCOEX_DBG_MCI_5",
+	"BTCOEX_DBG_MCI_6",
+	"BTCOEX_DBG_MCI_7",
+	"BTCOEX_DBG_MCI_8",
+	"BTCOEX_DBG_MCI_9",
+	"BTCOEX_DBG_MCI_10",
+	"COEX_WAL_BTCOEX_INIT",
+	"COEX_WAL_PAUSE",
+	"COEX_WAL_RESUME",
+	"COEX_UPDATE_AFH",
+	"COEX_HWQ_EMPTY_CB",
+	"COEX_MCI_TIMER_HANDLER",
+	"COEX_MCI_RECOVER",
+	"ERROR_COEX_MCI_ISR",
+	"ERROR_COEX_MCI_GPM",
+	"COEX_ProfileType",
+	"COEX_LinkID",
+	"COEX_LinkState",
+	"COEX_LinkRole",
+	"COEX_LinkRate",
+	"COEX_VoiceType",
+	"COEX_TInterval",
+	"COEX_WRetrx",
+	"COEX_Attempts",
+	"COEX_PerformanceState",
+	"COEX_LinkType",
+	"COEX_RX_MCI_GPM_VERSION_QUERY",
+	"COEX_RX_MCI_GPM_VERSION_RESPONSE",
+	"COEX_RX_MCI_GPM_STATUS_QUERY",
+	"COEX_STATE_WLAN_VDEV_DOWN",
+	"COEX_STATE_WLAN_VDEV_START",
+	"COEX_STATE_WLAN_VDEV_CONNECTED",
+	"COEX_STATE_WLAN_VDEV_SCAN_STARTED",
+	"COEX_STATE_WLAN_VDEV_SCAN_END",
+	"COEX_STATE_WLAN_DEFAULT",
+	"COEX_CHANNEL_CHANGE",
+	"COEX_POWER_CHANGE",
+	"COEX_CONFIG_MGR",
+	"COEX_TX_MCI_GPM_BT_CAL_REQ",
+	"COEX_TX_MCI_GPM_BT_CAL_GRANT",
+	"COEX_TX_MCI_GPM_BT_CAL_DONE",
+	"COEX_TX_MCI_GPM_WLAN_CAL_REQ",
+	"COEX_TX_MCI_GPM_WLAN_CAL_GRANT",
+	"COEX_TX_MCI_GPM_WLAN_CAL_DONE",
+	"COEX_TX_MCI_GPM_BT_DEBUG",
+	"COEX_TX_MCI_GPM_VERSION_QUERY",
+	"COEX_TX_MCI_GPM_VERSION_RESPONSE",
+	"COEX_TX_MCI_GPM_STATUS_QUERY",
+	"COEX_TX_MCI_GPM_HALT_BT_GPM",
+	"COEX_TX_MCI_GPM_WLAN_CHANNELS",
+	"COEX_TX_MCI_GPM_BT_PROFILE_INFO",
+	"COEX_TX_MCI_GPM_BT_STATUS_UPDATE",
+	"COEX_TX_MCI_GPM_BT_UPDATE_FLAGS",
+	"COEX_TX_MCI_GPM_UNKNOWN",
+	"COEX_TX_MCI_SYS_WAKING",
+	"COEX_TX_MCI_LNA_TAKE",
+	"COEX_TX_MCI_LNA_TRANS",
+	"COEX_TX_MCI_SYS_SLEEPING",
+	"COEX_TX_MCI_REQ_WAKE",
+	"COEX_TX_MCI_REMOTE_RESET",
+	"COEX_TX_MCI_TYPE_UNKNOWN",
+	"COEX_WHAL_MCI_RESET",
+	"COEX_POLL_BT_CAL_DONE_TIMEOUT",
+	"COEX_WHAL_PAUSE",
+	"COEX_RX_MCI_GPM_BT_CAL_REQ",
+	"COEX_RX_MCI_GPM_BT_CAL_DONE",
+	"COEX_RX_MCI_GPM_BT_CAL_GRANT",
+	"COEX_WLAN_CAL_START",
+	"COEX_WLAN_CAL_RESULT",
+	"COEX_BtMciState",
+	"COEX_BtCalState",
+	"COEX_WlanCalState",
+	"COEX_RxReqWakeCount",
+	"COEX_RxRemoteResetCount",
+	"COEX_RESTART_CAL",
+	"COEX_SENDMSG_QUEUE",
+	"COEX_RESETSEQ_LNAINFO_TIMEOUT",
+	"COEX_MCI_ISR_IntRaw",
+	"COEX_MCI_ISR_Int1Raw",
+	"COEX_MCI_ISR_RxMsgRaw",
+	"COEX_WHAL_COEX_RESET",
+	"COEX_WAL_COEX_INIT",
+	"COEX_TXRX_CNT_LIMIT_ISR",
+	"COEX_CH_BUSY",
+	"COEX_REASSESS_WLAN_STATE",
+	"COEX_BTCOEX_WLAN_STATE_UPDATE",
+	"COEX_BT_NUM_OF_PROFILES",
+	"COEX_BT_NUM_OF_HID_PROFILES",
+	"COEX_BT_NUM_OF_ACL_PROFILES",
+	"COEX_BT_NUM_OF_HI_ACL_PROFILES",
+	"COEX_BT_NUM_OF_VOICE_PROFILES",
+	"COEX_WLAN_AGGR_LIMIT",
+	"COEX_BT_LOW_PRIO_BUDGET",
+	"COEX_BT_HI_PRIO_BUDGET",
+	"COEX_BT_IDLE_TIME",
+	"COEX_SET_COEX_WEIGHT",
+	"COEX_WLAN_WEIGHT_GROUP",
+	"COEX_BT_WEIGHT_GROUP",
+	"COEX_BT_INTERVAL_ALLOC",
+	"COEX_BT_SCHEME",
+	"COEX_BT_MGR",
+	"COEX_BT_SM_ERROR",
+	"COEX_SYSTEM_UPDATE",
+	"COEX_LOW_PRIO_LIMIT",
+	"COEX_HI_PRIO_LIMIT",
+	"COEX_BT_INTERVAL_START",
+	"COEX_WLAN_INTERVAL_START",
+	"COEX_NON_LINK_BUDGET",
+	"COEX_CONTENTION_MSG",
+	"COEX_SET_NSS",
+	"COEX_SELF_GEN_MASK",
+	"COEX_PROFILE_ERROR",
+	"COEX_WLAN_INIT",
+	"COEX_BEACON_MISS",
+	"COEX_BEACON_OK",
+	"COEX_BTCOEX_SCAN_ACTIVITY",
+	"COEX_SCAN_ACTIVITY",
+	"COEX_FORCE_QUIETTIME",
+	"COEX_BT_MGR_QUIETTIME",
+	"COEX_BT_INACTIVITY_TRIGGER",
+	"COEX_BT_INACTIVITY_REPORTED",
+	"COEX_TX_MCI_GPM_WLAN_PRIO",
+	"COEX_TX_MCI_GPM_BT_PAUSE_PROFILE",
+	"COEX_TX_MCI_GPM_WLAN_SET_ACL_INACTIVITY",
+	"COEX_RX_MCI_GPM_BT_ACL_INACTIVITY_REPORT",
+	"COEX_GENERIC_ERROR",
+	"COEX_RX_RATE_THRESHOLD",
+	"COEX_RSSI",
+	"COEX_WLAN_VDEV_NOTIF_START",
+	"COEX_WLAN_VDEV_NOTIF_UP",
+	"COEX_WLAN_VDEV_NOTIF_DOWN",
+	"COEX_WLAN_VDEV_NOTIF_STOP",
+	"COEX_WLAN_VDEV_NOTIF_ADD_PEER",
+	"COEX_WLAN_VDEV_NOTIF_DELETE_PEER",
+	"COEX_WLAN_VDEV_NOTIF_CONNECTED_PEER",
+	"COEX_WLAN_VDEV_NOTIF_PAUSE",
+	"COEX_WLAN_VDEV_NOTIF_UNPAUSED",
+	"COEX_STATE_WLAN_VDEV_PEER_ADD",
+	"COEX_STATE_WLAN_VDEV_CONNECTED_PEER",
+	"COEX_STATE_WLAN_VDEV_DELETE_PEER",
+	"COEX_STATE_WLAN_VDEV_PAUSE",
+	"COEX_STATE_WLAN_VDEV_UNPAUSED",
+	"COEX_SCAN_CALLBACK",
+	"COEX_RC_SET_CHAINMASK",
+	"COEX_DEBUG_ID_END",
+},
+
+{
+	"SCAN_START_COMMAND_FAILED",
+	"SCAN_STOP_COMMAND_FAILED",
+	"SCAN_EVENT_SEND_FAILED",
+	"SCAN_ENGINE_START",
+	"SCAN_ENGINE_CANCEL_COMMAND",
+	"SCAN_ENGINE_STOP_DUE_TO_TIMEOUT",
+	"SCAN_EVENT_SEND_TO_HOST",
+	"SCAN_EVENT_ADD",
+	"SCAN_EVENT_REM",
+	"SCAN_EVENT_PREEMPTED",
+	"SCAN_EVENT_RESTARTED",
+	"SCAN_EVENT_COMPLETED",
+        "SCAN_START_PARAMS1",
+        "SCAN_START_PARAMS2",
+        "SCAN_EVENT_SEND",
+},
+
+{
+	"BEACON_EVENT_SWBA_SEND_FAILED",
+},
+
+{
+	"RATECTRL_DBGID_DEFINITION_START",
+	"RATECTRL_DBGID_ASSOC",
+	"RATECTRL_DBGID_NSS_CHANGE",
+	"RATECTRL_DBGID_CHAINMASK_ERR",
+	"RATECTRL_DBGID_UNEXPECTED_FRAME",
+	"RATECTRL_DBGID_WAL_RCQUERY",
+	"RATECTRL_DBGID_WAL_RCUPDATE",
+	"RATECTRL_DBGID_DEFINITION_END",
+},
+
+{
+	"AP_PS_DBGID_DEFINITION_START",
+	"AP_PS_DBGID_UPDATE_TIM",
+	"AP_PS_DBGID_PEER_STATE_CHANGE",
+	"AP_PS_DBGID_PSPOLL",
+	"AP_PS_DBGID_PEER_CREATE",
+	"AP_PS_DBGID_PEER_DELETE",
+	"AP_PS_DBGID_VDEV_CREATE",
+	"AP_PS_DBGID_VDEV_DELETE",
+	"AP_PS_DBGID_SYNC_TIM",
+	"AP_PS_DBGID_NEXT_RESPONSE",
+	"AP_PS_DBGID_START_SP",
+	"AP_PS_DBGID_COMPLETED_EOSP",
+	"AP_PS_DBGID_TRIGGER",
+	"AP_PS_DBGID_DUPLICATE_TRIGGER",
+	"AP_PS_DBGID_UAPSD_RESPONSE",
+	"AP_PS_DBGID_SEND_COMPLETE",
+	"AP_PS_DBGID_SEND_N_COMPLETE",
+	"AP_PS_DBGID_DETECT_OUT_OF_SYNC_STA",
+},
+
+{
+	"MGMT_TXRX_DBGID_DEFINITION_START",
+	"MGMT_TXRX_FORWARD_TO_HOST",
+	"MGMT_TXRX_MU_GID_MGMT",
+	"MGMT_TXRX_DBGID_DEFINITION_END",
+},
+
+{
+	"WAL_DBGID_DEFINITION_START",
+	"WAL_DBGID_FAST_WAKE_REQUEST",
+	"WAL_DBGID_FAST_WAKE_RELEASE",
+	"WAL_DBGID_SET_POWER_STATE",
+	"WAL_DBGID_CHANNEL_CHANGE_FORCE_RESET",
+	"WAL_DBGID_CHANNEL_CHANGE",
+	"WAL_DBGID_VDEV_START",
+	"WAL_DBGID_VDEV_STOP",
+	"WAL_DBGID_VDEV_UP",
+	"WAL_DBGID_VDEV_DOWN",
+	"WAL_DBGID_SW_WDOG_RESET",
+	"WAL_DBGID_TX_SCH_REGISTER_TIDQ",
+	"WAL_DBGID_TX_SCH_UNREGISTER_TIDQ",
+	"WAL_DBGID_TX_SCH_TICKLE_TIDQ",
+	"WAL_DBGID_XCESS_FAILURES",
+	"WAL_DBGID_AST_ADD_WDS_ENTRY",
+	"WAL_DBGID_AST_DEL_WDS_ENTRY",
+	"WAL_DBGID_AST_WDS_ENTRY_PEER_CHG",
+	"WAL_DBGID_AST_WDS_SRC_LEARN_FAIL",
+	"WAL_DBGID_STA_KICKOUT",
+	"WAL_DBGID_BAR_TX_FAIL",
+	"WAL_DBGID_BAR_ALLOC_FAIL",
+	"WAL_DBGID_LOCAL_DATA_TX_FAIL",
+	"WAL_DBGID_SECURITY_PM4_QUEUED",
+	"WAL_DBGID_SECURITY_GM1_QUEUED",
+	"WAL_DBGID_SECURITY_PM4_SENT",
+	"WAL_DBGID_SECURITY_ALLOW_DATA",
+	"WAL_DBGID_SECURITY_UCAST_KEY_SET",
+	"WAL_DBGID_SECURITY_MCAST_KEY_SET",
+	"WAL_DBGID_SECURITY_ENCR_EN",
+	"WAL_DBGID_BB_WDOG_TRIGGERED",
+	"WAL_DBGID_RX_LOCAL_BUFS_LWM",
+	"WAL_DBGID_RX_LOCAL_DROP_LARGE_MGMT",
+	"WAL_DBGID_VHT_ILLEGAL_RATE_PHY_ERR_DETECTED",
+	"WAL_DBGID_DEV_RESET",
+	"WAL_DBGID_TX_BA_SETUP",
+	"WAL_DBGID_RX_BA_SETUP",
+	"WAL_DBGID_DEV_TX_TIMEOUT",
+	"WAL_DBGID_DEV_RX_TIMEOUT",
+	"WAL_DBGID_STA_VDEV_XRETRY",
+	"WAL_DBGID_DCS",
+	"WAL_DBGID_HCM_BIN",
+	"WAL_DBGID_HCM_BIN_PENALIZE",
+	"WAL_DBGID_HCM_BIN_DEPENALIZE",
+	"WAL_DBGID_AST_UPDATE_WDS_ENTRY",
+	"WAL_DBGID_PEER_EXT_STATS",
+	"WAL_DBGID_TX_AC_BUFFER_SET",
+	"WAL_DBGID_AST_ENTRY_EXIST",
+	"WAL_DBGID_AST_ENTRY_FULL",
+	"WAL_DBGID_MGMT_TX_FAIL",
+	"WAL_DBGID_SET_M4_SENT_MANUALLY",
+	"WAL_DBGID_PROCESS_4_WAY_HANDSHAKE",
+        "WAL_DBGID_SET_HW_FILTER",
+        "WAL_DBGID_TX_PPDU_COMP_ERR",
+        "WAL_DBGID_TX_ENC_KEY_DROP",
+        "WAL_DBGID_PDEV_INFO_PRINT",
+        "WAL_DBGID_VDEV_INFO_PRINT",
+        "WAL_DBGID_LTEU_START_MU",
+        "WAL_DBGID_LTEU_REPORT_MU",
+        "WAL_DBGID_LTEU_SET_CONFIG1",
+        "WAL_DBGID_LTEU_SET_CONFIG2",
+        "WAL_DBGID_LTEU_SET_CONFIG3",
+        "WAL_DBGID_LTEU_INIT",
+        "WAL_DBGID_LTEU_MU_IN_PROGRESS",
+        "WAL_DBGID_LTEU_END_MU",
+        "WAL_DBGID_LTEU_PER_PKT_LOG1",
+        "WAL_DBGID_LTEU_PER_PKT_LOG2",
+        "WAL_DBGID_LTEU_PER_PKT_LOG3",
+        "WAL_DBGID_LTEU_START_MU_PARAMS",
+        "WAL_DBGID_LTEU_PKT_BASIC_MU",
+        "WAL_DBGID_LTEU_PKT_ADV_MU",
+        "WAL_DBGID_LTEU_PKT_BSSID_ENTRY",
+        "WAL_DBGID_LTEU_PER_BSSID_MU",
+        "WAL_DBGID_LTEU_COMPUTED_BSSID_MU",
+        "WAL_DBGID_LTEU_TOTAL_BSSID_MU",
+        "WAL_DBGID_LTEU_HIDDEN_NODE",
+        "WAL_DBGID_LTEU_REPORT_MU1",
+        "WAL_DBGID_LTEU_REPORT_MU2",
+        "WAL_DBGID_LTEU_START_MU_PARAMS1",
+        "WAL_DBGID_LTEU_START_MU_PARAMS2",
+        "WAL_DBGID_LTEU_UPDATE_BSSID_MU",
+        "WAL_DBGID_LTEU_BSSID_INDEX_MU",
+        "WAL_DBGID_LTEU_BSSID_MU_INFO",
+        "WAL_DBGID_LTEU_PKT_BINNING",
+        "WAL_DBGID_LTEU_PKT_MU_DB_ENTRY",
+        "WAL_DBGID_LTEU_MU_DB_ENTRY1",
+        "WAL_DBGID_LTEU_MU_DB_ENTRY2",
+	"WAL_DBGID_DEFINITION_END",
+},
+
+{
+	"ANI_DBGID_POLL",
+	"ANI_DBGID_CONTROL",
+	"ANI_DBGID_OFDM_PARAMS",
+	"ANI_DBGID_CCK_PARAMS",
+	"ANI_DBGID_RESET",
+	"ANI_DBGID_RESTART",
+	"ANI_DBGID_OFDM_LEVEL",
+	"ANI_DBGID_CCK_LEVEL",
+	"ANI_DBGID_FIRSTEP",
+	"ANI_DBGID_CYCPWR",
+	"ANI_DBGID_MRC_CCK",
+	"ANI_DBGID_SELF_CORR_LOW",
+	"ANI_DBGID_ENABLE",
+	"ANI_DBGID_CURRENT_LEVEL",
+	"ANI_DBGID_POLL_PERIOD",
+	"ANI_DBGID_LISTEN_PERIOD",
+	"ANI_DBGID_OFDM_LEVEL_CFG",
+	"ANI_DBGID_CCK_LEVEL_CFG",
+},
+
+{
+	"OFFLOAD_MGR_DBGID_DEFINITION_START",
+	"OFFLOADMGR_REGISTER_OFFLOAD",
+	"OFFLOADMGR_DEREGISTER_OFFLOAD",
+	"OFFLOADMGR_NO_REG_DATA_HANDLERS",
+	"OFFLOADMGR_NO_REG_EVENT_HANDLERS",
+	"OFFLOADMGR_REG_OFFLOAD_FAILED",
+	"OFFLOADMGR_DBGID_DEFINITION_END",
+},
+
+{
+	"RESOURCE_DBGID_DEFINITION_START",
+	"RESOURCE_PEER_ALLOC",
+	"RESOURCE_PEER_FREE",
+	"RESOURCE_PEER_ALLOC_WAL_PEER",
+	"RESOURCE_DBGID_DEFINITION_END",
+},
+
+{
+	"WLAN_DCS_DBGID_INIT",
+	"WLAN_DCS_DBGID_WMI_CWINT",
+	"WLAN_DCS_DBGID_TIMER",
+	"WLAN_DCS_DBGID_CMDG",
+	"WLAN_DCS_DBGID_CMDS",
+	"WLAN_DCS_DBGID_DINIT",
+},
+
+{
+	"P2P_DBGID_DEFINITION_START",
+	"P2P_DEV_REGISTER",
+	"P2P_HANDLE_NOA",
+	"P2P_UPDATE_SCHEDULE_OPPS",
+	"P2P_UPDATE_SCHEDULE",
+	"P2P_UPDATE_START_TIME",
+	"P2P_UPDATE_START_TIME_DIFF_TSF32",
+	"P2P_UPDATE_START_TIME_FINAL",
+	"P2P_SETUP_SCHEDULE_TIMER",
+	"P2P_PROCESS_SCHEDULE_AFTER_CALC",
+	"P2P_PROCESS_SCHEDULE_STARTED_TIMER",
+	"P2P_CALC_SCHEDULES_FIRST_CALL_ALL_NEXT_EVENT",
+	"P2P_CALC_SCHEDULES_FIRST_VALUE",
+	"P2P_CALC_SCHEDULES_EARLIEST_NEXT_EVENT",
+	"P2P_CALC_SCHEDULES_SANITY_COUNT",
+	"P2P_CALC_SCHEDULES_CALL_ALL_NEXT_EVENT_FROM_WHILE_LOOP",
+	"P2P_CALC_SCHEDULES_TIMEOUT_1",
+	"P2P_CALC_SCHEDULES_TIMEOUT_2",
+	"P2P_FIND_ALL_NEXT_EVENTS_REQ_EXPIRED",
+	"P2P_FIND_ALL_NEXT_EVENTS_REQ_ACTIVE",
+	"P2P_FIND_NEXT_EVENT_REQ_NOT_STARTED",
+	"P2P_FIND_NEXT_EVENT_REQ_COMPLETE_NON_PERIODIC",
+	"P2P_FIND_NEXT_EVENT_IN_MID_OF_NOA",
+	"P2P_FIND_NEXT_EVENT_REQ_COMPLETE",
+	"P2P_SCHEDULE_TIMEOUT",
+	"P2P_CALC_SCHEDULES_ENTER",
+	"P2P_PROCESS_SCHEDULE_ENTER",
+	"P2P_FIND_ALL_NEXT_EVENTS_INDIVIDUAL_REQ_AFTER_CHANGE",
+	"P2P_FIND_ALL_NEXT_EVENTS_INDIVIDUAL_REQ_BEFORE_CHANGE",
+	"P2P_FIND_ALL_NEXT_EVENTS_ENTER",
+	"P2P_FIND_NEXT_EVENT_ENTER",
+	"P2P_NOA_GO_PRESENT",
+	"P2P_NOA_GO_ABSENT",
+	"P2P_GO_NOA_NOTIF",
+	"P2P_GO_TBTT_OFFSET",
+	"P2P_GO_GET_NOA_INFO",
+	"P2P_DBGID_DEFINITION_END",
+},
+
+{
+	"CSA_DBGID_DEFINITION_START",
+	"CSA_OFFLOAD_POOL_INIT",
+	"CSA_OFFLOAD_REGISTER_VDEV",
+	"CSA_OFFLOAD_DEREGISTER_VDEV",
+	"CSA_DEREGISTER_VDEV_ERROR",
+	"CSA_OFFLOAD_BEACON_RECEIVED",
+	"CSA_OFFLOAD_BEACON_CSA_RECV",
+	"CSA_OFFLOAD_CSA_RECV_ERROR_IE",
+	"CSA_OFFLOAD_CSA_TIMER_ERROR",
+	"CSA_OFFLOAD_CSA_TIMER_EXP",
+	"CSA_OFFLOAD_WMI_EVENT_ERROR",
+	"CSA_OFFLOAD_WMI_EVENT_SENT",
+	"CSA_OFFLOAD_WMI_CHANSWITCH_RECV",
+},
+
+{
+	"WLAN_CHATTER_DBGID_DEFINITION_START",
+	"WLAN_CHATTER_ENTER",
+	"WLAN_CHATTER_EXIT",
+	"WLAN_CHATTER_FILTER_HIT",
+	"WLAN_CHATTER_FILTER_MISS",
+	"WLAN_CHATTER_FILTER_FULL",
+	"WLAN_CHATTER_FILTER_TM_ADJ",
+	"WLAN_CHATTER_DBGID_DEFINITION_END",
+},
+
+{
+	"WOW_DBGID_DEFINITION_START",
+	"WOW_ENABLE_CMDID",
+	"WOW_RECV_DATA_PKT",
+	"WOW_WAKE_HOST_DATA",
+	"WOW_RECV_MGMT",
+	"WOW_WAKE_HOST_MGMT",
+	"WOW_RECV_EVENT",
+	"WOW_WAKE_HOST_EVENT",
+	"WOW_INIT",
+	"WOW_RECV_MAGIC_PKT",
+	"WOW_RECV_BITMAP_PATTERN",
+},
+
+{
+	"RTT_CALL_FLOW",
+	"RTT_REQ_SUB_TYPE",
+	"RTT_MEAS_REQ_HEAD",
+	"RTT_MEAS_REQ_BODY",
+	"RTT_INIT_GLOBAL_STATE",
+	"RTT_REPORT",
+	"RTT_ERROR_REPORT",
+	"RTT_TIMER_STOP",
+	"RTT_SEND_TM_FRAME",
+	"RTT_V3_RESP_CNT",
+	"RTT_V3_RESP_FINISH",
+	"RTT_CHANNEL_SWITCH_REQ",
+	"RTT_CHANNEL_SWITCH_GRANT",
+	"RTT_CHANNEL_SWITCH_COMPLETE",
+	"RTT_CHANNEL_SWITCH_PREEMPT",
+	"RTT_CHANNEL_SWITCH_STOP",
+	"RTT_TIMER_START",
+	"RTT_FTM_PARAM_INFO",
+	"RTT_RX_TM_FRAME",
+	"RTT_INITR_TSTAMP",
+	"RTT_RSPDR_TSTAMP",
+	"RTT_TX_COMP_STATUS",
+	"RTT_ERROR_WMI_EVENT"
+},
+
+{
+	"HOSTQ_HOST_PARAM_NUMPEER",
+	"HOSTQ_HOST_PARAM_NUMTID",
+	"HOSTQ_HOST_PARAM_HOSTADDR",
+},
+{
+	"WAL_DBGID_PFSCHED_SCH_CMD",
+	"WAL_DBGID_PFSCHED_USER_INFO",
+},
+};
+
+static char * fw_dbglog_get_msg(u32 moduleid, u32 debugid,
+				u32 mod_id_max,
+				char *(*dbg_msg_arr)[][MAX_DBG_MSGS])
+{
+	static char unknown_str[64];
+
+	if (moduleid < mod_id_max && debugid < MAX_DBG_MSGS) {
+		char *str = (*dbg_msg_arr)[moduleid][debugid];
+		if (str && str[0] != '\0') {
+			return str;
+		}
+	}
+
+	snprintf(unknown_str, sizeof(unknown_str),
+		 "UNKNOWN %u:%u",
+		 moduleid, debugid);
+
+	return unknown_str;
+}
+
+
+static void ath10k_fwlog_print(struct ath10k *ar, u32 mod_id, u16 vap_id,
+			       u32 dbg_id, u32 timestamp,
+			       u32 numargs, u32 *args) {
+
+	int i;
+	u32 module_id_max;
+	char *(*dbg_msg_arr)[][MAX_DBG_MSGS];
+
+	if ((ar->running_fw->fw_file.wmi_op_version ==
+	     ATH10K_FW_WMI_OP_VERSION_10_4)) {
+		module_id_max = WLAN_10_4_MODULE_ID_MAX;
+		dbg_msg_arr = &FW_10_4_DBG_MSG_ARR;
+	} else {
+		module_id_max = WLAN_MODULE_ID_MAX;
+		dbg_msg_arr = &DBG_MSG_ARR;
+	}
+
+	if (vap_id < FW_DBGLOG_VAPID_NUM_MAX)
+		printk(FW_DBGLOG_PRINT_PREFIX "[%u] vap-%u %s ( ",
+		       timestamp,
+		       vap_id, fw_dbglog_get_msg(mod_id, dbg_id,
+						 module_id_max,
+						 dbg_msg_arr));
+	else
+		printk(FW_DBGLOG_PRINT_PREFIX "[%u] %s ( ",
+		       timestamp,
+		       fw_dbglog_get_msg(mod_id, dbg_id,
+					 module_id_max, dbg_msg_arr));
+
+	 for (i = 0; i < numargs; i++) {
+		printk("%#x", args[i]);
+		if ((i + 1) < numargs)
+			printk(", ");
+	}
+
+	printk(" )\n");
+}
+
+static void ath10k_fwlog_parse_msg(struct ath10k *ar, u8 *data, int len) {
+
+	u32 *buffer;
+	u32 count;
+	u32 timestamp;
+	u32 debugid;
+	u32 moduleid;
+	u16 vapid;
+	u16 numargs;
+	u16 length;
+	u32 dropped;
+
+
+	if (len < 4) {
+		return;
+	}
+
+	dropped = *((u32 *)data);
+	data += sizeof(dropped);
+	len -= sizeof(dropped);
+
+	if (dropped > 0)
+		printk(FW_DBGLOG_PRINT_PREFIX "%d log buffers are dropped \n",
+		       dropped);
+
+	count = 0;
+	buffer = (u32 *)data;
+	length = (len >> 2);
+
+	while (count < length) {
+
+		debugid = FW_DBGLOG_GET_DBGID(buffer[count + 1]);
+		moduleid = FW_DBGLOG_GET_MODULEID(buffer[count + 1]);
+		vapid = FW_DBGLOG_GET_VAPID(buffer[count + 1]);
+		numargs = FW_DBGLOG_GET_NUMARGS(buffer[count + 1]);
+		timestamp = FW_DBGLOG_GET_TIME_STAMP(buffer[count]);
+
+		if (moduleid >= ar->fwlog_max_moduleid)
+			return;
+
+		printk("[%s] ", wiphy_name(ar->hw->wiphy));
+
+		ath10k_fwlog_print(ar, moduleid, vapid, debugid,
+			           timestamp, numargs,
+			           (((u32 *)buffer) +
+				   2 + count));
+		count += numargs + 2;
+
+	}
+}
+
+
+static void ath10k_fwlog_print_work(struct work_struct *work) {
+
+	struct ath10k *ar = container_of(work, struct ath10k, fwlog_tx_work);
+	struct sk_buff *skb;
+
+	skb = skb_dequeue(&ar->fwlog_tx_queue);
+	if (skb) {
+		ath10k_fwlog_parse_msg(ar, skb->data, skb->len);
+		dev_kfree_skb(skb);
+		if (skb_queue_len(&ar->fwlog_tx_queue)) {
+			ieee80211_queue_work(ar->hw,
+					     &ar->fwlog_tx_work);
+		}
+	}
+}
+
+void ath10k_handle_fwlog_msg(struct ath10k *ar, struct sk_buff *skb) {
+
+	if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) {
+		ath10k_warn(ar, "ignoring fwlog event!!!\n");
+		dev_kfree_skb(skb);
+		return;
+	}
+
+	if (skb_queue_len(&ar->fwlog_tx_queue) >= ATH10K_FWLOG_MAX_EVT_QUEUE) {
+		ath10k_warn(ar, "reached fwlog  queue limit\n");
+		dev_kfree_skb(skb);
+		return;
+	}
+
+	skb_queue_tail(&ar->fwlog_tx_queue, skb);
+	ieee80211_queue_work(ar->hw, &ar->fwlog_tx_work);
+}
+
+void ath10k_fwlog_register(struct ath10k *ar) {
+
+	INIT_WORK(&ar->fwlog_tx_work, ath10k_fwlog_print_work);
+	skb_queue_head_init(&ar->fwlog_tx_queue);
+}
+
+void ath10k_fwlog_unregister(struct ath10k *ar) {
+
+	struct sk_buff *skb;
+
+	cancel_work_sync(&ar->fwlog_tx_work);
+
+	for (; ;) {
+		skb = skb_dequeue(&ar->fwlog_tx_queue);
+		if (!skb)
+			break;
+		dev_kfree_skb(skb);
+	}
+}
--- /dev/null
+++ b/drivers/net/wireless/ath/ath10k/fwlog.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ *
+ * 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.
+ */
+#ifndef _FWLOG_
+#define _FWLOG_
+
+void ath10k_fwlog_register(struct ath10k *ar);
+void ath10k_fwlog_unregister(struct ath10k *ar);
+
+void ath10k_handle_fwlog_msg(struct ath10k *ar, struct sk_buff *skb);
+#endif /* _FWLOG_ */
+
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -28,6 +28,7 @@
 #include "wmi-ops.h"
 #include "p2p.h"
 #include "hw.h"
+#include "fwlog.h"
 
 #define ATH10K_WMI_BARRIER_ECHO_ID 0xBA991E9
 #define ATH10K_WMI_BARRIER_TIMEOUT_HZ (3 * HZ)
@@ -2538,7 +2539,7 @@ int ath10k_wmi_event_debug_mesg(struct a
 		   skb->len);
 
 	trace_ath10k_wmi_dbglog(ar, skb->data, skb->len);
-
+	ath10k_handle_fwlog_msg(ar, skb);
 	return 0;
 }
 
@@ -4977,7 +4978,7 @@ static void ath10k_wmi_op_rx(struct ath1
 	case WMI_DEBUG_MESG_EVENTID:
 		ath10k_wmi_event_debug_mesg(ar, skb);
 		ath10k_wmi_queue_set_coverage_class_work(ar);
-		break;
+		return;
 	case WMI_UPDATE_STATS_EVENTID:
 		ath10k_wmi_event_update_stats(ar, skb);
 		break;
@@ -5114,7 +5115,7 @@ static void ath10k_wmi_10_1_op_rx(struct
 	case WMI_10X_DEBUG_MESG_EVENTID:
 		ath10k_wmi_event_debug_mesg(ar, skb);
 		ath10k_wmi_queue_set_coverage_class_work(ar);
-		break;
+		return;
 	case WMI_10X_UPDATE_STATS_EVENTID:
 		ath10k_wmi_event_update_stats(ar, skb);
 		break;
@@ -5245,7 +5246,7 @@ static void ath10k_wmi_10_2_op_rx(struct
 	case WMI_10_2_DEBUG_MESG_EVENTID:
 		ath10k_wmi_event_debug_mesg(ar, skb);
 		ath10k_wmi_queue_set_coverage_class_work(ar);
-		break;
+		return;
 	case WMI_10_2_UPDATE_STATS_EVENTID:
 		ath10k_wmi_event_update_stats(ar, skb);
 		break;
@@ -5384,7 +5385,7 @@ static void ath10k_wmi_10_4_op_rx(struct
 	case WMI_10_4_DEBUG_MESG_EVENTID:
 		ath10k_wmi_event_debug_mesg(ar, skb);
 		ath10k_wmi_queue_set_coverage_class_work(ar);
-		break;
+		return;
 	case WMI_10_4_SERVICE_READY_EVENTID:
 		ath10k_wmi_event_service_ready(ar, skb);
 		return;
