1 /* 2 * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 #ifndef _RX_PPDU_END_USER_STATS_H_ 19 #define _RX_PPDU_END_USER_STATS_H_ 20 21 #include "rx_rxpcu_classification_overview.h" 22 #define NUM_OF_DWORDS_RX_PPDU_END_USER_STATS 30 23 24 struct rx_ppdu_end_user_stats { 25 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 26 struct rx_rxpcu_classification_overview rxpcu_classification_details; 27 uint32_t sta_full_aid : 13, 28 mcs : 4, 29 nss : 3, 30 expected_response_ack_or_ba : 1, 31 reserved_1a : 11; 32 uint32_t sw_peer_id : 16, 33 mpdu_cnt_fcs_err : 11, 34 sw2rxdma0_buf_source_used : 1, 35 fw2rxdma_pmac0_buf_source_used : 1, 36 sw2rxdma1_buf_source_used : 1, 37 sw2rxdma_exception_buf_source_used : 1, 38 fw2rxdma_pmac1_buf_source_used : 1; 39 uint32_t mpdu_cnt_fcs_ok : 11, 40 frame_control_info_valid : 1, 41 qos_control_info_valid : 1, 42 ht_control_info_valid : 1, 43 data_sequence_control_info_valid : 1, 44 ht_control_info_null_valid : 1, 45 rxdma2fw_pmac1_ring_used : 1, 46 rxdma2reo_ring_used : 1, 47 rxdma2fw_pmac0_ring_used : 1, 48 rxdma2sw_ring_used : 1, 49 rxdma_release_ring_used : 1, 50 ht_control_field_pkt_type : 4, 51 rxdma2reo_remote0_ring_used : 1, 52 rxdma2reo_remote1_ring_used : 1, 53 reserved_3b : 5; 54 uint32_t ast_index : 16, 55 frame_control_field : 16; 56 uint32_t first_data_seq_ctrl : 16, 57 qos_control_field : 16; 58 uint32_t ht_control_field : 32; 59 uint32_t fcs_ok_bitmap_31_0 : 32; 60 uint32_t fcs_ok_bitmap_63_32 : 32; 61 uint32_t udp_msdu_count : 16, 62 tcp_msdu_count : 16; 63 uint32_t other_msdu_count : 16, 64 tcp_ack_msdu_count : 16; 65 uint32_t sw_response_reference_ptr : 32; 66 uint32_t received_qos_data_tid_bitmap : 16, 67 received_qos_data_tid_eosp_bitmap : 16; 68 uint32_t qosctrl_15_8_tid0 : 8, 69 qosctrl_15_8_tid1 : 8, 70 qosctrl_15_8_tid2 : 8, 71 qosctrl_15_8_tid3 : 8; 72 uint32_t qosctrl_15_8_tid4 : 8, 73 qosctrl_15_8_tid5 : 8, 74 qosctrl_15_8_tid6 : 8, 75 qosctrl_15_8_tid7 : 8; 76 uint32_t qosctrl_15_8_tid8 : 8, 77 qosctrl_15_8_tid9 : 8, 78 qosctrl_15_8_tid10 : 8, 79 qosctrl_15_8_tid11 : 8; 80 uint32_t qosctrl_15_8_tid12 : 8, 81 qosctrl_15_8_tid13 : 8, 82 qosctrl_15_8_tid14 : 8, 83 qosctrl_15_8_tid15 : 8; 84 uint32_t mpdu_ok_byte_count : 25, 85 ampdu_delim_ok_count_6_0 : 7; 86 uint32_t ampdu_delim_err_count : 25, 87 ampdu_delim_ok_count_13_7 : 7; 88 uint32_t mpdu_err_byte_count : 25, 89 ampdu_delim_ok_count_20_14 : 7; 90 uint32_t non_consecutive_delimiter_err : 16, 91 retried_msdu_count : 16; 92 uint32_t ht_control_null_field : 32; 93 uint32_t sw_response_reference_ptr_ext : 32; 94 uint32_t corrupted_due_to_fifo_delay : 1, 95 frame_control_info_null_valid : 1, 96 frame_control_field_null : 16, 97 retried_mpdu_count : 11, 98 reserved_23a : 3; 99 uint32_t rxpcu_mpdu_filter_in_category : 2, 100 sw_frame_group_id : 7, 101 reserved_24a : 4, 102 frame_control_info_mgmt_ctrl_valid : 1, 103 mac_addr_ad2_valid : 1, 104 mcast_bcast : 1, 105 frame_control_field_mgmt_ctrl : 16; 106 uint32_t user_ppdu_len : 24, 107 reserved_25a : 8; 108 uint32_t mac_addr_ad2_31_0 : 32; 109 uint32_t mac_addr_ad2_47_32 : 16, 110 amsdu_msdu_count : 16; 111 uint32_t non_amsdu_msdu_count : 16, 112 ucast_msdu_count : 16; 113 uint32_t bcast_msdu_count : 16, 114 mcast_bcast_msdu_count : 16; 115 #else 116 struct rx_rxpcu_classification_overview rxpcu_classification_details; 117 uint32_t reserved_1a : 11, 118 expected_response_ack_or_ba : 1, 119 nss : 3, 120 mcs : 4, 121 sta_full_aid : 13; 122 uint32_t fw2rxdma_pmac1_buf_source_used : 1, 123 sw2rxdma_exception_buf_source_used : 1, 124 sw2rxdma1_buf_source_used : 1, 125 fw2rxdma_pmac0_buf_source_used : 1, 126 sw2rxdma0_buf_source_used : 1, 127 mpdu_cnt_fcs_err : 11, 128 sw_peer_id : 16; 129 uint32_t reserved_3b : 5, 130 rxdma2reo_remote1_ring_used : 1, 131 rxdma2reo_remote0_ring_used : 1, 132 ht_control_field_pkt_type : 4, 133 rxdma_release_ring_used : 1, 134 rxdma2sw_ring_used : 1, 135 rxdma2fw_pmac0_ring_used : 1, 136 rxdma2reo_ring_used : 1, 137 rxdma2fw_pmac1_ring_used : 1, 138 ht_control_info_null_valid : 1, 139 data_sequence_control_info_valid : 1, 140 ht_control_info_valid : 1, 141 qos_control_info_valid : 1, 142 frame_control_info_valid : 1, 143 mpdu_cnt_fcs_ok : 11; 144 uint32_t frame_control_field : 16, 145 ast_index : 16; 146 uint32_t qos_control_field : 16, 147 first_data_seq_ctrl : 16; 148 uint32_t ht_control_field : 32; 149 uint32_t fcs_ok_bitmap_31_0 : 32; 150 uint32_t fcs_ok_bitmap_63_32 : 32; 151 uint32_t tcp_msdu_count : 16, 152 udp_msdu_count : 16; 153 uint32_t tcp_ack_msdu_count : 16, 154 other_msdu_count : 16; 155 uint32_t sw_response_reference_ptr : 32; 156 uint32_t received_qos_data_tid_eosp_bitmap : 16, 157 received_qos_data_tid_bitmap : 16; 158 uint32_t qosctrl_15_8_tid3 : 8, 159 qosctrl_15_8_tid2 : 8, 160 qosctrl_15_8_tid1 : 8, 161 qosctrl_15_8_tid0 : 8; 162 uint32_t qosctrl_15_8_tid7 : 8, 163 qosctrl_15_8_tid6 : 8, 164 qosctrl_15_8_tid5 : 8, 165 qosctrl_15_8_tid4 : 8; 166 uint32_t qosctrl_15_8_tid11 : 8, 167 qosctrl_15_8_tid10 : 8, 168 qosctrl_15_8_tid9 : 8, 169 qosctrl_15_8_tid8 : 8; 170 uint32_t qosctrl_15_8_tid15 : 8, 171 qosctrl_15_8_tid14 : 8, 172 qosctrl_15_8_tid13 : 8, 173 qosctrl_15_8_tid12 : 8; 174 uint32_t ampdu_delim_ok_count_6_0 : 7, 175 mpdu_ok_byte_count : 25; 176 uint32_t ampdu_delim_ok_count_13_7 : 7, 177 ampdu_delim_err_count : 25; 178 uint32_t ampdu_delim_ok_count_20_14 : 7, 179 mpdu_err_byte_count : 25; 180 uint32_t retried_msdu_count : 16, 181 non_consecutive_delimiter_err : 16; 182 uint32_t ht_control_null_field : 32; 183 uint32_t sw_response_reference_ptr_ext : 32; 184 uint32_t reserved_23a : 3, 185 retried_mpdu_count : 11, 186 frame_control_field_null : 16, 187 frame_control_info_null_valid : 1, 188 corrupted_due_to_fifo_delay : 1; 189 uint32_t frame_control_field_mgmt_ctrl : 16, 190 mcast_bcast : 1, 191 mac_addr_ad2_valid : 1, 192 frame_control_info_mgmt_ctrl_valid : 1, 193 reserved_24a : 4, 194 sw_frame_group_id : 7, 195 rxpcu_mpdu_filter_in_category : 2; 196 uint32_t reserved_25a : 8, 197 user_ppdu_len : 24; 198 uint32_t mac_addr_ad2_31_0 : 32; 199 uint32_t amsdu_msdu_count : 16, 200 mac_addr_ad2_47_32 : 16; 201 uint32_t ucast_msdu_count : 16, 202 non_amsdu_msdu_count : 16; 203 uint32_t mcast_bcast_msdu_count : 16, 204 bcast_msdu_count : 16; 205 #endif 206 }; 207 208 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_OFFSET 0x00000000 209 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_LSB 0 210 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MSB 0 211 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_MASK 0x00000001 212 213 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000 214 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_LSB 1 215 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MSB 1 216 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002 217 218 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000 219 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_LSB 2 220 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MSB 2 221 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_MASK 0x00000004 222 223 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000 224 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3 225 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MSB 3 226 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008 227 228 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_OFFSET 0x00000000 229 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_LSB 4 230 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MSB 4 231 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_MASK 0x00000010 232 233 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000 234 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5 235 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MSB 5 236 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020 237 238 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000 239 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_LSB 6 240 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MSB 6 241 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHYRX_ABORT_RECEIVED_MASK 0x00000040 242 243 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_OFFSET 0x00000000 244 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_LSB 7 245 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MSB 7 246 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_MASK 0x00000080 247 248 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_OFFSET 0x00000000 249 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_LSB 8 250 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MSB 8 251 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_FILTER_PASS_MONITOR_OVRD_MPDUS_FCS_OK_MASK 0x00000100 252 253 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_OFFSET 0x00000000 254 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_LSB 9 255 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MSB 15 256 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_RESERVED_0_MASK 0x0000fe00 257 258 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000 259 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_LSB 16 260 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MSB 31 261 #define RX_PPDU_END_USER_STATS_RXPCU_CLASSIFICATION_DETAILS_PHY_PPDU_ID_MASK 0xffff0000 262 263 #define RX_PPDU_END_USER_STATS_STA_FULL_AID_OFFSET 0x00000004 264 #define RX_PPDU_END_USER_STATS_STA_FULL_AID_LSB 0 265 #define RX_PPDU_END_USER_STATS_STA_FULL_AID_MSB 12 266 #define RX_PPDU_END_USER_STATS_STA_FULL_AID_MASK 0x00001fff 267 268 #define RX_PPDU_END_USER_STATS_MCS_OFFSET 0x00000004 269 #define RX_PPDU_END_USER_STATS_MCS_LSB 13 270 #define RX_PPDU_END_USER_STATS_MCS_MSB 16 271 #define RX_PPDU_END_USER_STATS_MCS_MASK 0x0001e000 272 273 #define RX_PPDU_END_USER_STATS_NSS_OFFSET 0x00000004 274 #define RX_PPDU_END_USER_STATS_NSS_LSB 17 275 #define RX_PPDU_END_USER_STATS_NSS_MSB 19 276 #define RX_PPDU_END_USER_STATS_NSS_MASK 0x000e0000 277 278 #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_OFFSET 0x00000004 279 #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_LSB 20 280 #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MSB 20 281 #define RX_PPDU_END_USER_STATS_EXPECTED_RESPONSE_ACK_OR_BA_MASK 0x00100000 282 283 #define RX_PPDU_END_USER_STATS_RESERVED_1A_OFFSET 0x00000004 284 #define RX_PPDU_END_USER_STATS_RESERVED_1A_LSB 21 285 #define RX_PPDU_END_USER_STATS_RESERVED_1A_MSB 31 286 #define RX_PPDU_END_USER_STATS_RESERVED_1A_MASK 0xffe00000 287 288 #define RX_PPDU_END_USER_STATS_SW_PEER_ID_OFFSET 0x00000008 289 #define RX_PPDU_END_USER_STATS_SW_PEER_ID_LSB 0 290 #define RX_PPDU_END_USER_STATS_SW_PEER_ID_MSB 15 291 #define RX_PPDU_END_USER_STATS_SW_PEER_ID_MASK 0x0000ffff 292 293 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_OFFSET 0x00000008 294 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_LSB 16 295 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MSB 26 296 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_ERR_MASK 0x07ff0000 297 298 #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_OFFSET 0x00000008 299 #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_LSB 27 300 #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MSB 27 301 #define RX_PPDU_END_USER_STATS_SW2RXDMA0_BUF_SOURCE_USED_MASK 0x08000000 302 303 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_OFFSET 0x00000008 304 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_LSB 28 305 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MSB 28 306 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC0_BUF_SOURCE_USED_MASK 0x10000000 307 308 #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_OFFSET 0x00000008 309 #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_LSB 29 310 #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MSB 29 311 #define RX_PPDU_END_USER_STATS_SW2RXDMA1_BUF_SOURCE_USED_MASK 0x20000000 312 313 #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_OFFSET 0x00000008 314 #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_LSB 30 315 #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MSB 30 316 #define RX_PPDU_END_USER_STATS_SW2RXDMA_EXCEPTION_BUF_SOURCE_USED_MASK 0x40000000 317 318 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_OFFSET 0x00000008 319 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_LSB 31 320 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MSB 31 321 #define RX_PPDU_END_USER_STATS_FW2RXDMA_PMAC1_BUF_SOURCE_USED_MASK 0x80000000 322 323 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_OFFSET 0x0000000c 324 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_LSB 0 325 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MSB 10 326 #define RX_PPDU_END_USER_STATS_MPDU_CNT_FCS_OK_MASK 0x000007ff 327 328 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_OFFSET 0x0000000c 329 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_LSB 11 330 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MSB 11 331 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_VALID_MASK 0x00000800 332 333 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_OFFSET 0x0000000c 334 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_LSB 12 335 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MSB 12 336 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_INFO_VALID_MASK 0x00001000 337 338 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_OFFSET 0x0000000c 339 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_LSB 13 340 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MSB 13 341 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_VALID_MASK 0x00002000 342 343 #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_OFFSET 0x0000000c 344 #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_LSB 14 345 #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MSB 14 346 #define RX_PPDU_END_USER_STATS_DATA_SEQUENCE_CONTROL_INFO_VALID_MASK 0x00004000 347 348 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_OFFSET 0x0000000c 349 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_LSB 15 350 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MSB 15 351 #define RX_PPDU_END_USER_STATS_HT_CONTROL_INFO_NULL_VALID_MASK 0x00008000 352 353 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_OFFSET 0x0000000c 354 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_LSB 16 355 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MSB 16 356 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC1_RING_USED_MASK 0x00010000 357 358 #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_OFFSET 0x0000000c 359 #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_LSB 17 360 #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MSB 17 361 #define RX_PPDU_END_USER_STATS_RXDMA2REO_RING_USED_MASK 0x00020000 362 363 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_OFFSET 0x0000000c 364 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_LSB 18 365 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MSB 18 366 #define RX_PPDU_END_USER_STATS_RXDMA2FW_PMAC0_RING_USED_MASK 0x00040000 367 368 #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_OFFSET 0x0000000c 369 #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_LSB 19 370 #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MSB 19 371 #define RX_PPDU_END_USER_STATS_RXDMA2SW_RING_USED_MASK 0x00080000 372 373 #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_OFFSET 0x0000000c 374 #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_LSB 20 375 #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MSB 20 376 #define RX_PPDU_END_USER_STATS_RXDMA_RELEASE_RING_USED_MASK 0x00100000 377 378 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_OFFSET 0x0000000c 379 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_LSB 21 380 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MSB 24 381 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_PKT_TYPE_MASK 0x01e00000 382 383 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_OFFSET 0x0000000c 384 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_LSB 25 385 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MSB 25 386 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE0_RING_USED_MASK 0x02000000 387 388 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_OFFSET 0x0000000c 389 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_LSB 26 390 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MSB 26 391 #define RX_PPDU_END_USER_STATS_RXDMA2REO_REMOTE1_RING_USED_MASK 0x04000000 392 393 #define RX_PPDU_END_USER_STATS_RESERVED_3B_OFFSET 0x0000000c 394 #define RX_PPDU_END_USER_STATS_RESERVED_3B_LSB 27 395 #define RX_PPDU_END_USER_STATS_RESERVED_3B_MSB 31 396 #define RX_PPDU_END_USER_STATS_RESERVED_3B_MASK 0xf8000000 397 398 #define RX_PPDU_END_USER_STATS_AST_INDEX_OFFSET 0x00000010 399 #define RX_PPDU_END_USER_STATS_AST_INDEX_LSB 0 400 #define RX_PPDU_END_USER_STATS_AST_INDEX_MSB 15 401 #define RX_PPDU_END_USER_STATS_AST_INDEX_MASK 0x0000ffff 402 403 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_OFFSET 0x00000010 404 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_LSB 16 405 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MSB 31 406 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MASK 0xffff0000 407 408 #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_OFFSET 0x00000014 409 #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_LSB 0 410 #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MSB 15 411 #define RX_PPDU_END_USER_STATS_FIRST_DATA_SEQ_CTRL_MASK 0x0000ffff 412 413 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_OFFSET 0x00000014 414 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_LSB 16 415 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MSB 31 416 #define RX_PPDU_END_USER_STATS_QOS_CONTROL_FIELD_MASK 0xffff0000 417 418 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_OFFSET 0x00000018 419 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_LSB 0 420 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MSB 31 421 #define RX_PPDU_END_USER_STATS_HT_CONTROL_FIELD_MASK 0xffffffff 422 423 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_OFFSET 0x0000001c 424 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_LSB 0 425 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MSB 31 426 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_31_0_MASK 0xffffffff 427 428 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_OFFSET 0x00000020 429 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_LSB 0 430 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MSB 31 431 #define RX_PPDU_END_USER_STATS_FCS_OK_BITMAP_63_32_MASK 0xffffffff 432 433 #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_OFFSET 0x00000024 434 #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_LSB 0 435 #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MSB 15 436 #define RX_PPDU_END_USER_STATS_UDP_MSDU_COUNT_MASK 0x0000ffff 437 438 #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_OFFSET 0x00000024 439 #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_LSB 16 440 #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MSB 31 441 #define RX_PPDU_END_USER_STATS_TCP_MSDU_COUNT_MASK 0xffff0000 442 443 #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_OFFSET 0x00000028 444 #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_LSB 0 445 #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MSB 15 446 #define RX_PPDU_END_USER_STATS_OTHER_MSDU_COUNT_MASK 0x0000ffff 447 448 #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_OFFSET 0x00000028 449 #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_LSB 16 450 #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MSB 31 451 #define RX_PPDU_END_USER_STATS_TCP_ACK_MSDU_COUNT_MASK 0xffff0000 452 453 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_OFFSET 0x0000002c 454 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_LSB 0 455 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MSB 31 456 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_MASK 0xffffffff 457 458 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_OFFSET 0x00000030 459 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_LSB 0 460 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MSB 15 461 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_BITMAP_MASK 0x0000ffff 462 463 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_OFFSET 0x00000030 464 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_LSB 16 465 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MSB 31 466 #define RX_PPDU_END_USER_STATS_RECEIVED_QOS_DATA_TID_EOSP_BITMAP_MASK 0xffff0000 467 468 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_OFFSET 0x00000034 469 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_LSB 0 470 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MSB 7 471 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID0_MASK 0x000000ff 472 473 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_OFFSET 0x00000034 474 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_LSB 8 475 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MSB 15 476 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID1_MASK 0x0000ff00 477 478 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_OFFSET 0x00000034 479 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_LSB 16 480 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MSB 23 481 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID2_MASK 0x00ff0000 482 483 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_OFFSET 0x00000034 484 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_LSB 24 485 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MSB 31 486 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID3_MASK 0xff000000 487 488 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_OFFSET 0x00000038 489 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_LSB 0 490 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MSB 7 491 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID4_MASK 0x000000ff 492 493 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_OFFSET 0x00000038 494 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_LSB 8 495 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MSB 15 496 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID5_MASK 0x0000ff00 497 498 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_OFFSET 0x00000038 499 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_LSB 16 500 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MSB 23 501 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID6_MASK 0x00ff0000 502 503 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_OFFSET 0x00000038 504 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_LSB 24 505 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MSB 31 506 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID7_MASK 0xff000000 507 508 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_OFFSET 0x0000003c 509 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_LSB 0 510 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MSB 7 511 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID8_MASK 0x000000ff 512 513 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_OFFSET 0x0000003c 514 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_LSB 8 515 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MSB 15 516 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID9_MASK 0x0000ff00 517 518 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_OFFSET 0x0000003c 519 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_LSB 16 520 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MSB 23 521 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID10_MASK 0x00ff0000 522 523 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_OFFSET 0x0000003c 524 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_LSB 24 525 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MSB 31 526 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID11_MASK 0xff000000 527 528 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_OFFSET 0x00000040 529 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_LSB 0 530 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MSB 7 531 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID12_MASK 0x000000ff 532 533 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_OFFSET 0x00000040 534 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_LSB 8 535 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MSB 15 536 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID13_MASK 0x0000ff00 537 538 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_OFFSET 0x00000040 539 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_LSB 16 540 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MSB 23 541 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID14_MASK 0x00ff0000 542 543 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_OFFSET 0x00000040 544 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_LSB 24 545 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MSB 31 546 #define RX_PPDU_END_USER_STATS_QOSCTRL_15_8_TID15_MASK 0xff000000 547 548 #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_OFFSET 0x00000044 549 #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_LSB 0 550 #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MSB 24 551 #define RX_PPDU_END_USER_STATS_MPDU_OK_BYTE_COUNT_MASK 0x01ffffff 552 553 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_OFFSET 0x00000044 554 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_LSB 25 555 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MSB 31 556 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_6_0_MASK 0xfe000000 557 558 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_OFFSET 0x00000048 559 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_LSB 0 560 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MSB 24 561 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_ERR_COUNT_MASK 0x01ffffff 562 563 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_OFFSET 0x00000048 564 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_LSB 25 565 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MSB 31 566 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_13_7_MASK 0xfe000000 567 568 #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_OFFSET 0x0000004c 569 #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_LSB 0 570 #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MSB 24 571 #define RX_PPDU_END_USER_STATS_MPDU_ERR_BYTE_COUNT_MASK 0x01ffffff 572 573 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_OFFSET 0x0000004c 574 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_LSB 25 575 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MSB 31 576 #define RX_PPDU_END_USER_STATS_AMPDU_DELIM_OK_COUNT_20_14_MASK 0xfe000000 577 578 #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_OFFSET 0x00000050 579 #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_LSB 0 580 #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MSB 15 581 #define RX_PPDU_END_USER_STATS_NON_CONSECUTIVE_DELIMITER_ERR_MASK 0x0000ffff 582 583 #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_OFFSET 0x00000050 584 #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_LSB 16 585 #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MSB 31 586 #define RX_PPDU_END_USER_STATS_RETRIED_MSDU_COUNT_MASK 0xffff0000 587 588 #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_OFFSET 0x00000054 589 #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_LSB 0 590 #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MSB 31 591 #define RX_PPDU_END_USER_STATS_HT_CONTROL_NULL_FIELD_MASK 0xffffffff 592 593 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_OFFSET 0x00000058 594 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_LSB 0 595 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MSB 31 596 #define RX_PPDU_END_USER_STATS_SW_RESPONSE_REFERENCE_PTR_EXT_MASK 0xffffffff 597 598 #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_OFFSET 0x0000005c 599 #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_LSB 0 600 #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MSB 0 601 #define RX_PPDU_END_USER_STATS_CORRUPTED_DUE_TO_FIFO_DELAY_MASK 0x00000001 602 603 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_OFFSET 0x0000005c 604 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_LSB 1 605 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MSB 1 606 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_NULL_VALID_MASK 0x00000002 607 608 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_OFFSET 0x0000005c 609 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_LSB 2 610 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MSB 17 611 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_NULL_MASK 0x0003fffc 612 613 #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_OFFSET 0x0000005c 614 #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_LSB 18 615 #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MSB 28 616 #define RX_PPDU_END_USER_STATS_RETRIED_MPDU_COUNT_MASK 0x1ffc0000 617 618 #define RX_PPDU_END_USER_STATS_RESERVED_23A_OFFSET 0x0000005c 619 #define RX_PPDU_END_USER_STATS_RESERVED_23A_LSB 29 620 #define RX_PPDU_END_USER_STATS_RESERVED_23A_MSB 31 621 #define RX_PPDU_END_USER_STATS_RESERVED_23A_MASK 0xe0000000 622 623 #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_OFFSET 0x00000060 624 #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_LSB 0 625 #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MSB 1 626 #define RX_PPDU_END_USER_STATS_RXPCU_MPDU_FILTER_IN_CATEGORY_MASK 0x00000003 627 628 #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_OFFSET 0x00000060 629 #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_LSB 2 630 #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MSB 8 631 #define RX_PPDU_END_USER_STATS_SW_FRAME_GROUP_ID_MASK 0x000001fc 632 633 #define RX_PPDU_END_USER_STATS_RESERVED_24A_OFFSET 0x00000060 634 #define RX_PPDU_END_USER_STATS_RESERVED_24A_LSB 9 635 #define RX_PPDU_END_USER_STATS_RESERVED_24A_MSB 12 636 #define RX_PPDU_END_USER_STATS_RESERVED_24A_MASK 0x00001e00 637 638 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_OFFSET 0x00000060 639 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_LSB 13 640 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MSB 13 641 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_INFO_MGMT_CTRL_VALID_MASK 0x00002000 642 643 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_OFFSET 0x00000060 644 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_LSB 14 645 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MSB 14 646 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_VALID_MASK 0x00004000 647 648 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_OFFSET 0x00000060 649 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_LSB 15 650 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSB 15 651 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MASK 0x00008000 652 653 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_OFFSET 0x00000060 654 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_LSB 16 655 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MSB 31 656 #define RX_PPDU_END_USER_STATS_FRAME_CONTROL_FIELD_MGMT_CTRL_MASK 0xffff0000 657 658 #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_OFFSET 0x00000064 659 #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_LSB 0 660 #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MSB 23 661 #define RX_PPDU_END_USER_STATS_USER_PPDU_LEN_MASK 0x00ffffff 662 663 #define RX_PPDU_END_USER_STATS_RESERVED_25A_OFFSET 0x00000064 664 #define RX_PPDU_END_USER_STATS_RESERVED_25A_LSB 24 665 #define RX_PPDU_END_USER_STATS_RESERVED_25A_MSB 31 666 #define RX_PPDU_END_USER_STATS_RESERVED_25A_MASK 0xff000000 667 668 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_OFFSET 0x00000068 669 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_LSB 0 670 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MSB 31 671 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_31_0_MASK 0xffffffff 672 673 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_OFFSET 0x0000006c 674 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_LSB 0 675 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MSB 15 676 #define RX_PPDU_END_USER_STATS_MAC_ADDR_AD2_47_32_MASK 0x0000ffff 677 678 #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_OFFSET 0x0000006c 679 #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_LSB 16 680 #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MSB 31 681 #define RX_PPDU_END_USER_STATS_AMSDU_MSDU_COUNT_MASK 0xffff0000 682 683 #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_OFFSET 0x00000070 684 #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_LSB 0 685 #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MSB 15 686 #define RX_PPDU_END_USER_STATS_NON_AMSDU_MSDU_COUNT_MASK 0x0000ffff 687 688 #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_OFFSET 0x00000070 689 #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_LSB 16 690 #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MSB 31 691 #define RX_PPDU_END_USER_STATS_UCAST_MSDU_COUNT_MASK 0xffff0000 692 693 #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_OFFSET 0x00000074 694 #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_LSB 0 695 #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MSB 15 696 #define RX_PPDU_END_USER_STATS_BCAST_MSDU_COUNT_MASK 0x0000ffff 697 698 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_OFFSET 0x00000074 699 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_LSB 16 700 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MSB 31 701 #define RX_PPDU_END_USER_STATS_MCAST_BCAST_MSDU_COUNT_MASK 0xffff0000 702 703 #endif 704