diff options
| author | Leo Chang <schang@qca.qualcomm.com> | 2015-05-11 11:16:17 -0700 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2015-05-11 16:49:39 -0700 |
| commit | 2a26856016c3f262ae9d6a37bce087cebe51db19 (patch) | |
| tree | 387d4a3d002a180f3bf01296ef3d80974dfe1219 | |
| parent | baf1bbbbad1ad7cb49bf634e71f1c6f40c7ef161 (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.h | 60 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wlan_defs.h | 67 |
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; |
