summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Chang <schang@qca.qualcomm.com>2015-05-11 11:16:17 -0700
committerAkash Patel <c_akashp@qca.qualcomm.com>2015-05-11 16:49:39 -0700
commit2a26856016c3f262ae9d6a37bce087cebe51db19 (patch)
tree387d4a3d002a180f3bf01296ef3d80974dfe1219
parentbaf1bbbbad1ad7cb49bf634e71f1c6f40c7ef161 (diff)
qca-cld: htt header follow up merge
Firmware latest htt header version is 20. Host master version is 18. host htt header merge from 18 to 20 Change-Id: Ia718f4763cfc0b788d68965154d71a354a66058d CRs-Fixed: 835310
-rw-r--r--[-rwxr-xr-x]CORE/CLD_TXRX/HTT/htt.h60
-rw-r--r--CORE/SERVICES/COMMON/wlan_defs.h67
2 files changed, 119 insertions, 8 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt.h b/CORE/CLD_TXRX/HTT/htt.h
index d2f399d7f5af..193da7365280 100755..100644
--- a/CORE/CLD_TXRX/HTT/htt.h
+++ b/CORE/CLD_TXRX/HTT/htt.h
@@ -115,9 +115,11 @@
* 3.17 Add a version of the WDI_IPA_CFG message; add RX_RING2 to WDI_IPA_CFG
* 3.18 Add a PEER_DEL tx completion indication status, for HL cleanup of
* tx frames in the target after the peer has already been deleted.
+ * 3.19 Add HTT_DBG_STATS_RX_RATE_INFO_V2 and HTT_DBG_STATS_TX_RATE_INFO_V2
+ * 3.20 Expand rx_reorder_stats.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 17
+#define HTT_CURRENT_VERSION_MINOR 20
#define HTT_NUM_TX_FRAG_DESC 1024
@@ -212,7 +214,9 @@ enum htt_dbg_stats_type {
HTT_DBG_STATS_TX_MU_INFO = 10, /* bit 10 -> 0x400 */
HTT_DBG_STATS_SIFS_RESP_INFO = 11, /* bit 11 -> 0x800 */
HTT_DBG_STATS_RX_REMOTE_RING_BUFFER_INFO = 12, /* bit 12 -> 0x1000*/
- /* bits 13-23 currently reserved */
+ HTT_DBG_STATS_RX_RATE_INFO_V2 = 13, /* bit 13 -> 0x2000 */
+ HTT_DBG_STATS_TX_RATE_INFO_V2 = 14, /* bit 14 -> 0x4000 */
+ /* bits 15-23 currently reserved */
/* keep this last */
HTT_DBG_NUM_STATS
@@ -5422,7 +5426,7 @@ struct rx_reorder_stats {
A_UINT32 fcs_error;
/* MPDUs dropped due to monitor mode non-data packet */
A_UINT32 mgmt_ctrl;
- /* MPDUs dropped due to invalid peer */
+ /* Unicast-data MPDUs dropped due to invalid peer */
A_UINT32 invalid_peer;
/* MPDUs dropped due to duplication (non aggregation) */
A_UINT32 dup_non_aggr;
@@ -5468,6 +5472,56 @@ struct rx_reorder_stats {
A_UINT32 msdu_queued;
/* Number of MSDUs released from Data Rx MSDU list to MAC ring */
A_UINT32 msdu_recycled;
+ /* Number of MPDUs with invalid peer but A2 found in AST */
+ A_UINT32 invalid_peer_a2_in_ast;
+ /* Number of MPDUs with invalid peer but A3 found in AST */
+ A_UINT32 invalid_peer_a3_in_ast;
+ /* Number of MPDUs with invalid peer, Broadcast or Multicast frame */
+ A_UINT32 invalid_peer_bmc_mpdus;
+ /* Number of MSDUs with err attention word */
+ A_UINT32 rxdesc_err_att;
+ /* Number of MSDUs with flag of peer_idx_invalid */
+ A_UINT32 rxdesc_err_peer_idx_inv;
+ /* Number of MSDUs with flag of peer_idx_timeout */
+ A_UINT32 rxdesc_err_peer_idx_to;
+ /* Number of MSDUs with flag of overflow */
+ A_UINT32 rxdesc_err_ov;
+ /* Number of MSDUs with flag of msdu_length_err */
+ A_UINT32 rxdesc_err_msdu_len;
+ /* Number of MSDUs with flag of mpdu_length_err */
+ A_UINT32 rxdesc_err_mpdu_len;
+ /* Number of MSDUs with flag of tkip_mic_err */
+ A_UINT32 rxdesc_err_tkip_mic;
+ /* Number of MSDUs with flag of decrypt_err */
+ A_UINT32 rxdesc_err_decrypt;
+ /* Number of MSDUs with flag of fcs_err */
+ A_UINT32 rxdesc_err_fcs;
+ /* Number of Unicast (bc_mc bit is not set in attention word)
+ * frames with invalid peer handler
+ */
+ A_UINT32 rxdesc_uc_msdus_inv_peer;
+ /* Number of unicast frame directly (direct bit is set in attention word)
+ * to DUT with invalid peer handler
+ */
+ A_UINT32 rxdesc_direct_msdus_inv_peer;
+ /* Number of Broadcast/Multicast (bc_mc bit set in attention word)
+ * frames with invalid peer handler
+ */
+ A_UINT32 rxdesc_bmc_msdus_inv_peer;
+ /* Number of MSDUs dropped due to no first MSDU flag */
+ A_UINT32 rxdesc_no_1st_msdu;
+ /* Number of MSDUs droped due to ring overflow */
+ A_UINT32 msdu_drop_ring_ov;
+ /* Number of MSDUs dropped due to FC mismatch */
+ A_UINT32 msdu_drop_fc_mismatch;
+ /* Number of MSDUs dropped due to mgt frame in Remote ring */
+ A_UINT32 msdu_drop_mgmt_remote_ring;
+ /* Number of MSDUs dropped due to errors not reported in attention word */
+ A_UINT32 msdu_drop_misc;
+ /* Number of MSDUs go to offload before reorder */
+ A_UINT32 offload_msdu_wal;
+ /* Number of data frame dropped by offload after reorder */
+ A_UINT32 offload_msdu_reorder;
};
diff --git a/CORE/SERVICES/COMMON/wlan_defs.h b/CORE/SERVICES/COMMON/wlan_defs.h
index 9fec5df0b147..759dd53d8de4 100644
--- a/CORE/SERVICES/COMMON/wlan_defs.h
+++ b/CORE/SERVICES/COMMON/wlan_defs.h
@@ -34,6 +34,8 @@
* This file contains WLAN definitions that may be used across both
* Host and Target software.
*/
+
+
/*
* MAX_SPATIAL_STREAM should be defined in a fwconfig_xxx.h file,
* but for now provide a default value here in case it's not defined
@@ -43,6 +45,12 @@
#define MAX_SPATIAL_STREAM 3
#endif
+/*
+ * MAX_SPATIAL_STREAM_ANY -
+ * what is the largest number of spatial streams that any target supports
+ */
+#define MAX_SPATIAL_STREAM_ANY 4
+
#ifndef CONFIG_160MHZ_SUPPORT
#define CONFIG_160MHZ_SUPPORT 0 /* default: 160 MHz channels not supported */
#endif
@@ -62,7 +70,7 @@ typedef enum {
MODE_11AC_VHT20_2G = 11,
MODE_11AC_VHT40_2G = 12,
MODE_11AC_VHT80_2G = 13,
-#if CONFIG_160MHZ_SUPPORT != 0
+#if CONFIG_160MHZ_SUPPORT
MODE_11AC_VHT80_80 = 14,
MODE_11AC_VHT160 = 15,
#endif
@@ -101,7 +109,6 @@ typedef enum {
WLAN_11AG_CAPABILITY = 3,
}WLAN_CAPABILITY;
-
#if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B)
#define A_RATEMASK A_UINT64
#else
@@ -111,7 +118,8 @@ typedef enum {
#define A_RATEMASK_NUM_OCTET (sizeof (A_RATEMASK))
#define A_RATEMASK_NUM_BITS ((sizeof (A_RATEMASK)) << 3)
-#if CONFIG_160MHZ_SUPPORT != 0
+
+#if CONFIG_160MHZ_SUPPORT
#define IS_MODE_VHT(mode) (((mode) == MODE_11AC_VHT20) || \
((mode) == MODE_11AC_VHT40) || \
((mode) == MODE_11AC_VHT80) || \
@@ -143,6 +151,7 @@ typedef enum {
((mode) == MODE_11NG_HT40))
#define IS_MODE_11GONLY(mode) ((mode) == MODE_11GONLY)
+
enum {
REGDMN_MODE_11A = 0x00000001, /* 11a channels */
REGDMN_MODE_TURBO = 0x00000002, /* 11a turbo-only channels */
@@ -266,6 +275,7 @@ typedef struct {
/* NOTE: NUM_DYN_BW and NUM_SCHED_ENTRIES cannot be changed without breaking WMI Compatibility */
#define NUM_SCHED_ENTRIES 2
#define NUM_DYN_BW_MAX 4
+
/* Some products only use 20/40/80; some use 20/40/80/160 */
#ifndef NUM_DYN_BW
#define NUM_DYN_BW 3 /* default: support up through 80 MHz */
@@ -351,7 +361,6 @@ typedef struct{
A_UINT8 dd_profile;
} RC_TX_RATE_INFO;
-
/*
* Temporarily continue to provide the WHAL_RC_INIT_RC_MASKS def in wlan_defs.h
* for older targets.
@@ -445,7 +454,6 @@ typedef enum {
* smart antenna = 50
*/
#define MEMORY_REQ_FOR_PEER 800
-
/*
* NB: it is important to keep all the fields in the structure dword long
* so that it is easy to handle the statistics in BE host.
@@ -561,6 +569,7 @@ struct wlan_dbg_rx_stats {
#endif
};
+
struct wlan_dbg_mem_stats {
A_UINT32 iram_free_size;
A_UINT32 dram_free_size;
@@ -586,6 +595,11 @@ typedef struct {
A_UINT32 rssi_chain0;
A_UINT32 rssi_chain1;
A_UINT32 rssi_chain2;
+/*
+ * TEMPORARY: leave rssi_chain3 in place for AR900B builds until code using
+ * rssi_chain3 has been converted to use wlan_dbg_rx_rate_info_v2_t.
+ * At that time, this rssi_chain3 field will be deleted.
+ */
#if defined(AR900B)
A_UINT32 rssi_chain3;
#endif
@@ -594,6 +608,11 @@ typedef struct {
typedef struct {
A_UINT32 mcs[10];
A_UINT32 sgi[10];
+/*
+ * TEMPORARY: leave nss conditionally defined, until all code that
+ * requires nss[4] is converted to use wlan_dbg_tx_rate_info_v2_t.
+ * At that time, this nss array will be made length = 3 unconditionally.
+ */
#if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B)
A_UINT32 nss[4];
#else
@@ -607,6 +626,40 @@ typedef struct {
A_UINT32 ack_rssi;
} wlan_dbg_tx_rate_info_t ;
+#define WLAN_MAX_MCS 10
+
+typedef struct {
+ A_UINT32 mcs[WLAN_MAX_MCS];
+ A_UINT32 sgi[WLAN_MAX_MCS];
+ A_UINT32 nss[MAX_SPATIAL_STREAM_ANY];
+ A_UINT32 nsts;
+ A_UINT32 stbc[WLAN_MAX_MCS];
+ A_UINT32 bw[NUM_DYN_BW_MAX];
+ A_UINT32 pream[6];
+ A_UINT32 ldpc;
+ A_UINT32 txbf;
+ A_UINT32 mgmt_rssi;
+ A_UINT32 data_rssi;
+ A_UINT32 rssi_chain0;
+ A_UINT32 rssi_chain1;
+ A_UINT32 rssi_chain2;
+ A_UINT32 rssi_chain3;
+ A_UINT32 reserved[8];
+} wlan_dbg_rx_rate_info_v2_t ;
+
+typedef struct {
+ A_UINT32 mcs[WLAN_MAX_MCS];
+ A_UINT32 sgi[WLAN_MAX_MCS];
+ A_UINT32 nss[MAX_SPATIAL_STREAM_ANY];
+ A_UINT32 stbc[WLAN_MAX_MCS];
+ A_UINT32 bw[NUM_DYN_BW_MAX];
+ A_UINT32 pream[4];
+ A_UINT32 ldpc;
+ A_UINT32 rts_cnt;
+ A_UINT32 ack_rssi;
+ A_UINT32 reserved[8];
+} wlan_dbg_tx_rate_info_v2_t ;
+
#define WHAL_DBG_PHY_ERR_MAXCNT 18
#define WHAL_DBG_SIFS_STATUS_MAXCNT 8
#define WHAL_DBG_SIFS_ERR_MAXCNT 8
@@ -712,6 +765,10 @@ typedef struct {
wlan_dbg_tx_rate_info_t tx_rate_info;
} wlan_dbg_rate_info_t;
+typedef struct {
+ wlan_dbg_rx_rate_info_v2_t rx_phy_info;
+ wlan_dbg_tx_rate_info_v2_t tx_rate_info;
+} wlan_dbg_rate_info_v2_t;
struct wlan_dbg_stats {
struct wlan_dbg_tx_stats tx;