Browse Source

Incremental copy of fw-api files upto CL 3850357

Incremental copy of fw-api files upto CL 3850357

Change-Id: If0a32257110cdf6fff3524dabdb7abf619c50d0e
CRs-Fixed: 2142682
Nandini Suresh 7 years ago
parent
commit
0d4f339b83
8 changed files with 367 additions and 22 deletions
  1. 3 1
      fw/bmi_msg.h
  2. 23 3
      fw/dbglog_id.h
  3. 1 1
      fw/enet.h
  4. 1 1
      fw/htc.h
  5. 1 1
      fw/htc_services.h
  6. 295 14
      fw/htt.h
  7. 42 0
      fw/htt_deps.h
  8. 1 1
      fw/htt_isoc.h

+ 3 - 1
fw/bmi_msg.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -263,6 +263,8 @@ PREPACK struct bmi_target_info {
 #define TARGET_TYPE_IPQ4019     16 /* dakota */
 #define TARGET_TYPE_QCA9888     17 /* besra */
 
+extern void target_register_tbl_attach(A_UINT32 target_type);
+
 #define BMI_ROMPATCH_INSTALL               9
         /*
          * Semantics: Install a ROM Patch.

+ 23 - 3
fw/dbglog_id.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2016 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2010-2017 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *
@@ -766,7 +766,9 @@ extern "C" {
 #define WAL_DBGID_TX_ARP                            90
 #define WAL_DBGID_TX_DHCP                           91
 #define WAL_DBGID_DEV_WMM_PARAM                     92
-#define WAL_DBGID_DEFINITION_END                    93
+#define WAL_DBGID_CE_SYNC_SEND                      93
+#define WAL_DBGID_CE_FAKE_HANG                      94
+#define WAL_DBGID_DEFINITION_END                    95
 
 #define ANI_DBGID_POLL                               0
 #define ANI_DBGID_CONTROL                            1
@@ -1170,7 +1172,25 @@ extern "C" {
 #define WLAN_HB_DBGID_CHKSUM_ERR                        12
 #define WLAN_HB_DBGID_UDP_TX                            13
 #define WLAN_HB_DBGID_TCP_TX                            14
-#define WLAN_HB_DBGID_DEFINITION_END                    15
+/* WLAN DHCP Renew DBGIDs */
+#define WLAN_HB_DBGID_DHCP_RENEW_ALLOC_SESS_FAIL        15
+#define WLAN_HB_DBGID_DHCP_RENEW_CTX_NULL               16
+#define WLAN_HB_DBGID_DHCP_RENEW_CHKSUM_ERR             17
+#define WLAN_HB_DBGID_DHCP_RENEW_BSS_PEER_NULL          18
+#define WLAN_HB_DBGID_DHCP_RENEW_TCP_GET_TXBUF_FAIL     19
+#define WLAN_HB_DBGID_DHCP_RENEW_UDP_SEND_FAIL          20
+/* WLAN OIC Ping DBGIDs */
+#define WLAN_HB_DBGID_OIC_PING_INIT                     21
+#define WLAN_HB_DBGID_OIC_PING_HOST_WAKEUP              22
+#define WLAN_HB_DBGID_OIC_PING_INVALID_PARAM            23
+#define WLAN_HB_DBGID_OIC_PING_WMI_CMD_PARAM            24
+#define WLAN_HB_DBGID_OIC_PING_ALLOC_SESS_FAIL          25
+#define WLAN_HB_DBGID_OIC_PING_WOW_NOT_ENTERED          26
+#define WLAN_HB_DBGID_OIC_PING_TCP_TIMEOUT              27
+#define WLAN_HB_DBGID_OIC_PING_TLS_ERROR                28
+#define WLAN_HB_DBGID_OIC_PING_ENABLE                   29
+
+#define WLAN_HB_DBGID_DEFINITION_END                    30
 
 /* Thermal Manager DBGIDs*/
 #define THERMAL_MGR_DBGID_DEFINITION_START   0

+ 1 - 1
fw/enet.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012 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.
  *

+ 1 - 1
fw/htc.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012,2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2014-2016 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *

+ 1 - 1
fw/htc_services.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015-2016 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2014-2017 The Linux Foundation. All rights reserved.
  *
  * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
  *

+ 295 - 14
fw/htt.h

@@ -34,12 +34,7 @@
 #ifndef _HTT_H_
 #define _HTT_H_
 
-#include <a_types.h>    /* A_UINT32 */
-#include <a_osapi.h>    /* PREPACK, POSTPACK */
-#ifdef ATHR_WIN_NWF
-#pragma warning(disable:4214) /* bit field types other than int */
-#endif
-#include "wlan_defs.h"
+#include <htt_deps.h>
 #include <htt_common.h>
 
 /*
@@ -163,9 +158,12 @@
  * 3.42 Add PPDU_STATS_CFG + PPDU_STATS_IND
  * 3.43 Add HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR defs
  * 3.44 Add htt_tx_wbm_completion_v2
+ * 3.45 Add host_tx_desc_pool flag in htt_tx_msdu_desc_ext2_t
+ * 3.46 Add MAC ID and payload size fields to HTT_MSG_TYPE_PACKETLOG header
+ * 3.47 Add HTT_T2H PEER_MAP_V2 and PEER_UNMAP_V2
  */
 #define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 44
+#define HTT_CURRENT_VERSION_MINOR 47
 
 #define HTT_NUM_TX_FRAG_DESC  1024
 
@@ -1581,7 +1579,13 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
                                    * (Bit mask of 5, 10, 20, 40, 80, 160Mhz.
                                    * Refer to HTT_TX_MSDU_EXT2_DESC_BW defs.)
                                    */
-        reserved0_31         : 1;
+        host_tx_desc_pool    : 1; /* If set, Firmware allocates tx_descriptors
+                                   * in WAL_BUFFERID_TX_HOST_DATA_EXP,instead
+                                   * of WAL_BUFFERID_TX_TCL_DATA_EXP.
+                                   * Use cases:
+                                   * Any time firmware uses TQM-BYPASS for Data
+                                   * TID, firmware expect host to set this bit.
+                                   */
 
     /* DWORD 1: tx power, tx rate */
     A_UINT32
@@ -2224,7 +2228,9 @@ PREPACK struct htt_tx_wbm_completion_v2 {
         tx_status:              4, /* Takes enum values of htt_tx_fw2wbm_tx_status_t */
         reinject_reason:        4, /* Takes enum values of htt_tx_fw2wbm_reinject_reason_t */
         exception_frame:        1,
-        rsvd0:                 14; /* For future use */
+        rsvd0:                 12, /* For future use */
+        used_by_hw4:            1, /* wbm_internal_error bit being used by HW */
+        rsvd1:                  1; /* For future use */
     A_UINT32
         data0:                 32; /* data0,1 and 2 changes based on tx_status type
                                     * if HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP
@@ -5485,6 +5491,8 @@ enum htt_t2h_msg_type {
     HTT_T2H_MSG_TYPE_MAP_FLOW_INFO            = 0x1b,
     HTT_T2H_MSG_TYPE_EXT_STATS_CONF           = 0x1c,
     HTT_T2H_MSG_TYPE_PPDU_STATS_IND           = 0x1d,
+    HTT_T2H_MSG_TYPE_PEER_MAP_V2              = 0x1e,
+    HTT_T2H_MSG_TYPE_PEER_UNMAP_V2            = 0x1f,
 
     HTT_T2H_MSG_TYPE_TEST,
     /* keep this last */
@@ -7333,6 +7341,248 @@ PREPACK struct htt_chan_info_t
 #define HTT_RX_PEER_UNMAP_BYTES 4
 
 
+/**
+ * @brief target -> host rx peer map V2 message definition
+ *
+ * @details
+ * The following diagram shows the format of the rx peer map v2 message sent
+ * from the target to the host.  This layout assumes the target operates
+ * as little-endian.
+ *
+ * This message always contains a SW peer ID.  The main purpose of the
+ * SW peer ID is to tell the host what peer ID rx packets will be tagged
+ * with, so that the host can use that peer ID to determine which peer
+ * transmitted the rx frame.  This SW peer ID is sometimes also used for
+ * other purposes, such as identifying during tx completions which peer
+ * the tx frames in question were transmitted to.
+ *
+ * The peer map v2 message also contains a HW peer ID.  This HW peer ID
+ * is used during rx --> tx frame forwarding to identify which peer the
+ * frame needs to be forwarded to (i.e. the peer assocated with the
+ * Destination MAC Address within the packet), and particularly which vdev
+ * needs to transmit the frame (for cases of inter-vdev rx --> tx forwarding).
+ * This DA-based peer ID that is provided for certain rx frames
+ * (the rx frames that need to be re-transmitted as tx frames)
+ * is the ID that the HW uses for referring to the peer in question,
+ * rather than the peer ID that the SW+FW use to refer to the peer.
+ *
+ *
+ * |31             24|23             16|15              8|7               0|
+ * |-----------------------------------------------------------------------|
+ * |            SW peer ID             |     VDEV ID     |     msg type    |
+ * |-----------------------------------------------------------------------|
+ * |    MAC addr 3   |    MAC addr 2   |    MAC addr 1   |    MAC addr 0   |
+ * |-----------------------------------------------------------------------|
+ * |            HW peer ID             |    MAC addr 5   |    MAC addr 4   |
+ * |-----------------------------------------------------------------------|
+ * |     Reserved_17_31     | Next Hop |          AST Hash Value           |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_0                              |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_1                              |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_2                              |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_3                              |
+ * |-----------------------------------------------------------------------|
+ *
+ *
+ * The following field definitions describe the format of the rx peer map v2
+ * messages sent from the target to the host.
+ *   - MSG_TYPE
+ *     Bits 7:0
+ *     Purpose: identifies this as an rx peer map v2 message
+ *     Value: peer map v2 -> 0x1e
+ *   - VDEV_ID
+ *     Bits 15:8
+ *     Purpose: Indicates which virtual device the peer is associated with.
+ *     Value: vdev ID (used in the host to look up the vdev object)
+ *   - SW_PEER_ID
+ *     Bits 31:16
+ *     Purpose: The peer ID (index) that WAL is allocating
+ *     Value: (rx) peer ID
+ *   - MAC_ADDR_L32
+ *     Bits 31:0
+ *     Purpose: Identifies which peer node the peer ID is for.
+ *     Value: lower 4 bytes of peer node's MAC address
+ *   - MAC_ADDR_U16
+ *     Bits 15:0
+ *     Purpose: Identifies which peer node the peer ID is for.
+ *     Value: upper 2 bytes of peer node's MAC address
+ *   - HW_PEER_ID
+ *     Bits 31:16
+ *     Purpose: Identifies the HW peer ID corresponding to the peer MAC
+ *         address, so for rx frames marked for rx --> tx forwarding, the
+ *         host can determine from the HW peer ID provided as meta-data with
+ *         the rx frame which peer the frame is supposed to be forwarded to.
+ *     Value: ID used by the MAC HW to identify the peer
+ *   - AST_HASH_VALUE
+ *     Bits 15:0
+ *     Purpose: Indicates AST Hash value is required for the TCL AST index
+ *         override feature.
+ *   - NEXT_HOP
+ *     Bit 16
+ *     Purpose: Bit indicates that a next_hop AST entry is used for WDS
+ *         (Wireless Distribution System).
+ */
+#define HTT_RX_PEER_MAP_V2_VDEV_ID_M        0xff00
+#define HTT_RX_PEER_MAP_V2_VDEV_ID_S        8
+#define HTT_RX_PEER_MAP_V2_SW_PEER_ID_M     0xffff0000
+#define HTT_RX_PEER_MAP_V2_SW_PEER_ID_S     16
+#define HTT_RX_PEER_MAP_V2_MAC_ADDR_L32_M   0xffffffff
+#define HTT_RX_PEER_MAP_V2_MAC_ADDR_L32_S   0
+#define HTT_RX_PEER_MAP_V2_MAC_ADDR_U16_M   0xffff
+#define HTT_RX_PEER_MAP_V2_MAC_ADDR_U16_S   0
+#define HTT_RX_PEER_MAP_V2_HW_PEER_ID_M     0xffff0000
+#define HTT_RX_PEER_MAP_V2_HW_PEER_ID_S     16
+#define HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_M 0x0000ffff
+#define HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_S 0
+#define HTT_RX_PEER_MAP_V2_NEXT_HOP_M       0x00010000
+#define HTT_RX_PEER_MAP_V2_NEXT_HOP_S       16
+
+#define HTT_RX_PEER_MAP_V2_VDEV_ID_SET(word, value)           \
+    do {                                                      \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_VDEV_ID, value); \
+        (word) |= (value)  << HTT_RX_PEER_MAP_V2_VDEV_ID_S;   \
+    } while (0)
+#define HTT_RX_PEER_MAP_V2_VDEV_ID_GET(word) \
+    (((word) & HTT_RX_PEER_MAP_V2_VDEV_ID_M) >> HTT_RX_PEER_MAP_V2_VDEV_ID_S)
+
+#define HTT_RX_PEER_MAP_V2_SW_PEER_ID_SET(word, value)            \
+    do {                                                          \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_SW_PEER_ID, value);  \
+        (word) |= (value)  << HTT_RX_PEER_MAP_V2_SW_PEER_ID_S;    \
+    } while (0)
+#define HTT_RX_PEER_MAP_V2_SW_PEER_ID_GET(word) \
+    (((word) & HTT_RX_PEER_MAP_V2_SW_PEER_ID_M) >> HTT_RX_PEER_MAP_V2_SW_PEER_ID_S)
+
+#define HTT_RX_PEER_MAP_V2_HW_PEER_ID_SET(word, value)            \
+    do {                                                          \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_HW_PEER_ID, value);  \
+        (word) |= (value)  << HTT_RX_PEER_MAP_V2_HW_PEER_ID_S;    \
+    } while (0)
+#define HTT_RX_PEER_MAP_V2_HW_PEER_ID_GET(word) \
+    (((word) & HTT_RX_PEER_MAP_V2_HW_PEER_ID_M) >> HTT_RX_PEER_MAP_V2_HW_PEER_ID_S)
+
+#define HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_SET(word, value)            \
+    do {                                                              \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_AST_HASH_VALUE, value);  \
+        (word) |= (value)  << HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_S;    \
+    } while (0)
+#define HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_GET(word) \
+    (((word) & HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_M) >> HTT_RX_PEER_MAP_V2_AST_HASH_VALUE_S)
+
+#define HTT_RX_PEER_MAP_V2_NEXT_HOP_SET(word, value)            \
+    do {                                                        \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_V2_NEXT_HOP, value);  \
+        (word) |= (value)  << HTT_RX_PEER_MAP_V2_NEXT_HOP_S;    \
+    } while (0)
+#define HTT_RX_PEER_MAP_V2_NEXT_HOP_GET(word) \
+    (((word) & HTT_RX_PEER_MAP_V2_NEXT_HOP_M) >> HTT_RX_PEER_MAP_V2_NEXT_HOP_S)
+
+#define HTT_RX_PEER_MAP_V2_MAC_ADDR_OFFSET       4  /* bytes */
+#define HTT_RX_PEER_MAP_V2_HW_PEER_ID_OFFSET     8  /* bytes */
+#define HTT_RX_PEER_MAP_V2_AST_HASH_INDEX_OFFSET 12 /* bytes */
+#define HTT_RX_PEER_MAP_V2_NEXT_HOP_OFFSET       12 /* bytes */
+
+#define HTT_RX_PEER_MAP_V2_BYTES 32
+
+/**
+ * @brief target -> host rx peer unmap V2 message definition
+ *
+ *
+ * The following diagram shows the format of the rx peer unmap message sent
+ * from the target to the host.
+ *
+ * |31             24|23             16|15              8|7               0|
+ * |-----------------------------------------------------------------------|
+ * |            SW peer ID             |     VDEV ID     |     msg type    |
+ * |-----------------------------------------------------------------------|
+ * |    MAC addr 3   |    MAC addr 2   |    MAC addr 1   |    MAC addr 0   |
+ * |-----------------------------------------------------------------------|
+ * |    Reserved_17_31     | Next Hop  |    MAC addr 5   |    MAC addr 4   |
+ * |-----------------------------------------------------------------------|
+ * |                         Peer Delete Duration                          |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_0                              |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_1                              |
+ * |-----------------------------------------------------------------------|
+ * |                               Reserved_2                              |
+ * |-----------------------------------------------------------------------|
+ *
+ *
+ * The following field definitions describe the format of the rx peer unmap
+ * messages sent from the target to the host.
+ *   - MSG_TYPE
+ *     Bits 7:0
+ *     Purpose: identifies this as an rx peer unmap v2 message
+ *     Value: peer unmap v2 -> 0x1f
+ *   - VDEV_ID
+ *     Bits 15:8
+ *     Purpose: Indicates which virtual device the peer is associated
+ *         with.
+ *     Value: vdev ID (used in the host to look up the vdev object)
+ *   - SW_PEER_ID
+ *     Bits 31:16
+ *     Purpose: The peer ID (index) that WAL is freeing
+ *     Value: (rx) peer ID
+ *   - MAC_ADDR_L32
+ *     Bits 31:0
+ *     Purpose: Identifies which peer node the peer ID is for.
+ *     Value: lower 4 bytes of peer node's MAC address
+ *   - MAC_ADDR_U16
+ *     Bits 15:0
+ *     Purpose: Identifies which peer node the peer ID is for.
+ *     Value: upper 2 bytes of peer node's MAC address
+ *   - NEXT_HOP
+ *     Bits 16
+ *     Purpose: Bit indicates next_hop AST entry used for WDS
+ *              (Wireless Distribution System).
+ *   - PEER_DELETE_DURATION
+ *     Bits 31:0
+ *     Purpose: Time taken to delete peer, in msec,
+ *         Used for monitoring / debugging PEER delete response delay
+ */
+
+#define HTT_RX_PEER_UNMAP_V2_VDEV_ID_M      HTT_RX_PEER_MAP_V2_VDEV_ID_M
+#define HTT_RX_PEER_UNMAP_V2_VDEV_ID_S      HTT_RX_PEER_MAP_V2_VDEV_ID_S
+#define HTT_RX_PEER_UNMAP_V2_SW_PEER_ID_M   HTT_RX_PEER_MAP_V2_SW_PEER_ID_M
+#define HTT_RX_PEER_UNMAP_V2_SW_PEER_ID_S   HTT_RX_PEER_MAP_V2_SW_PEER_ID_S
+#define HTT_RX_PEER_UNMAP_V2_MAC_ADDR_L32_M HTT_RX_PEER_MAP_V2_MAC_ADDR_L32_M
+#define HTT_RX_PEER_UNMAP_V2_MAC_ADDR_L32_S HTT_RX_PEER_MAP_V2_MAC_ADDR_L32_S
+#define HTT_RX_PEER_UNMAP_V2_MAC_ADDR_U16_M HTT_RX_PEER_MAP_V2_MAC_ADDR_U16_M
+#define HTT_RX_PEER_UNMAP_V2_MAC_ADDR_U16_S HTT_RX_PEER_MAP_V2_MAC_ADDR_U16_S
+#define HTT_RX_PEER_UNMAP_V2_NEXT_HOP_M     HTT_RX_PEER_MAP_V2_NEXT_HOP_M
+#define HTT_RX_PEER_UNMAP_V2_NEXT_HOP_S     HTT_RX_PEER_MAP_V2_NEXT_HOP_S
+
+#define HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_M   0xffffffff
+#define HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_S   0
+
+#define HTT_RX_PEER_UNMAP_V2_VDEV_ID_SET    HTT_RX_PEER_MAP_V2_VDEV_ID_SET
+#define HTT_RX_PEER_UNMAP_V2_VDEV_ID_GET    HTT_RX_PEER_MAP_V2_VDEV_ID_GET
+
+#define HTT_RX_PEER_UNMAP_V2_SW_PEER_ID_SET HTT_RX_PEER_MAP_V2_SW_PEER_ID_SET
+#define HTT_RX_PEER_UNMAP_V2_SW_PEER_ID_GET HTT_RX_PEER_MAP_V2_SW_PEER_ID_GET
+
+#define HTT_RX_PEER_UNMAP_V2_NEXT_HOP_SET   HTT_RX_PEER_MAP_V2_NEXT_HOP_SET
+#define HTT_RX_PEER_UNMAP_V2_NEXT_HOP_GET   HTT_RX_PEER_MAP_V2_NEXT_HOP_GET
+
+#define HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_SET(word, value)           \
+    do {                                                                     \
+        HTT_CHECK_SET_VAL(HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION, value); \
+        (word) |= (value)  << HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_S;   \
+    } while (0)
+#define HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_GET(word) \
+    (((word) & HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_M) >> HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_S)
+
+#define HTT_RX_PEER_UNMAP_V2_MAC_ADDR_OFFSET      4  /* bytes */
+#define HTT_RX_PEER_UNMAP_V2_NEXT_HOP_OFFSET      8  /* bytes */
+#define HTT_RX_PEER_UNMAP_V2_PEER_DELETE_DURATION_OFFSET    12 /* bytes */
+
+#define HTT_RX_PEER_UNMAP_V2_BYTES 28
+
+
 /**
  * @brief target -> host message specifying security parameters
  *
@@ -8149,22 +8399,53 @@ typedef struct {
  * The message consists of a 4-octet header,followed by a variable number
  * of 32-bit character values.
  *
- * |31          24|23          16|15           8|7            0|
+ * |31                         16|15   10|9    8|7            0|
  * |-----------------------------------------------------------|
- * |              |              |              |   msg type   |
+ * |        payload_size         | rsvd  |mac_id|   msg type   |
  * |-----------------------------------------------------------|
  * |                        payload                            |
  * |-----------------------------------------------------------|
  *   - MSG_TYPE
  *     Bits 7:0
- *     Purpose: identifies this as a test message
+ *     Purpose: identifies this as a pktlog message
  *     Value: HTT_MSG_TYPE_PACKETLOG
+ *   - mac_id
+ *     Bits 9:8
+ *     Purpose: identifies which MAC/PHY instance generated this pktlog info
+ *     Value: 0-3
+ *   - payload_size
+ *     Bits 31:16
+ *     Purpose: explicitly specify the payload size
+ *     Value: payload size in bytes (payload size is a multiple of 4 bytes)
  */
 PREPACK struct htt_pktlog_msg {
-    A_UINT32    header;
-    A_UINT32   payload[1/* or more */];
+    A_UINT32 header;
+    A_UINT32 payload[1/* or more */];
 } POSTPACK;
 
+#define HTT_T2H_PKTLOG_MAC_ID_M           0x00000300
+#define HTT_T2H_PKTLOG_MAC_ID_S           8
+
+#define HTT_T2H_PKTLOG_PAYLOAD_SIZE_M     0xFFFF0000
+#define HTT_T2H_PKTLOG_PAYLOAD_SIZE_S     16
+
+#define HTT_T2H_PKTLOG_MAC_ID_SET(word, value)             \
+    do {                                                   \
+        HTT_CHECK_SET_VAL(HTT_T2H_PKTLOG_MAC_ID, value);   \
+        (word) |= (value)  << HTT_T2H_PKTLOG_MAC_ID_S;     \
+    } while (0)
+#define HTT_T2H_PKTLOG_MAC_ID_GET(word) \
+    (((word) & HTT_T2H_PKTLOG_MAC_ID_M) >> \
+    HTT_T2H_PKTLOG_MAC_ID_S)
+
+#define HTT_T2H_PKTLOG_PAYLOAD_SIZE_SET(word, value)             \
+    do {                                                         \
+        HTT_CHECK_SET_VAL(HTT_T2H_PKTLOG_PAYLOAD_SIZE, value);   \
+        (word) |= (value)  << HTT_T2H_PKTLOG_PAYLOAD_SIZE_S;     \
+    } while (0)
+#define HTT_T2H_PKTLOG_PAYLOAD_SIZE_GET(word) \
+    (((word) & HTT_T2H_PKTLOG_PAYLOAD_SIZE_M) >> \
+    HTT_T2H_PKTLOG_PAYLOAD_SIZE_S)
 
 /*
  * Rx reorder statistics

+ 42 - 0
fw/htt_deps.h

@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2011-2017 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.
+ */
+
+/*
+ * This file was originally distributed by Qualcomm Atheros, Inc.
+ * under proprietary terms before Copyright ownership was assigned
+ * to the Linux Foundation.
+ */
+
+/**
+ * @file htt_deps.h
+ *
+ * @details list other header files that contain the defs for data types,
+ *      constants, and compiler pragmas used in the HTT header files
+ */
+
+#ifndef _HTT_DEPS_H_
+#define _HTT_DEPS_H_
+
+#include <a_types.h>    /* A_UINT32 */
+#include <a_osapi.h>    /* PREPACK, POSTPACK */
+#ifdef ATHR_WIN_NWF
+#pragma warning(disable:4214) /* bit field types other than int */
+#endif
+#include "wlan_defs.h"
+
+#endif /* _HTT_DEPS_H_ */

+ 1 - 1
fw/htt_isoc.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013 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.
  *