1d3ade00eSHarsh Kumar Bijlani /* SPDX-License-Identifier: BSD-3-Clause-Clear */ 2d3ade00eSHarsh Kumar Bijlani /* 3d3ade00eSHarsh Kumar Bijlani * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 4d3ade00eSHarsh Kumar Bijlani * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 5d3ade00eSHarsh Kumar Bijlani */ 6d3ade00eSHarsh Kumar Bijlani 7d3ade00eSHarsh Kumar Bijlani #ifndef ATH12K_DP_HTT_H 8d3ade00eSHarsh Kumar Bijlani #define ATH12K_DP_HTT_H 9d3ade00eSHarsh Kumar Bijlani 10d3ade00eSHarsh Kumar Bijlani struct ath12k_dp; 11d3ade00eSHarsh Kumar Bijlani 12d3ade00eSHarsh Kumar Bijlani /* HTT definitions */ 13d3ade00eSHarsh Kumar Bijlani #define HTT_TAG_TCL_METADATA_VERSION 5 14d3ade00eSHarsh Kumar Bijlani 15d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_TYPE GENMASK(1, 0) 16d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_VALID_HTT BIT(2) 17d3ade00eSHarsh Kumar Bijlani 18d3ade00eSHarsh Kumar Bijlani /* vdev meta data */ 19d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_VDEV_ID GENMASK(10, 3) 20d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_PDEV_ID GENMASK(12, 11) 21d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_HOST_INSPECTED_MISSION BIT(13) 22d3ade00eSHarsh Kumar Bijlani 23d3ade00eSHarsh Kumar Bijlani /* peer meta data */ 24d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_PEER_ID GENMASK(15, 3) 25d3ade00eSHarsh Kumar Bijlani 26d3ade00eSHarsh Kumar Bijlani /* Global sequence number */ 27d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_TYPE_GLOBAL_SEQ_NUM 3 28d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_GLOBAL_SEQ_HOST_INSPECTED BIT(2) 29d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_META_DATA_GLOBAL_SEQ_NUM GENMASK(14, 3) 30d3ade00eSHarsh Kumar Bijlani #define HTT_TX_MLO_MCAST_HOST_REINJECT_BASE_VDEV_ID 128 31d3ade00eSHarsh Kumar Bijlani 32d3ade00eSHarsh Kumar Bijlani /* HTT tx completion is overlaid in wbm_release_ring */ 33d3ade00eSHarsh Kumar Bijlani #define HTT_TX_WBM_COMP_INFO0_STATUS GENMASK(16, 13) 34d3ade00eSHarsh Kumar Bijlani #define HTT_TX_WBM_COMP_INFO1_REINJECT_REASON GENMASK(3, 0) 35d3ade00eSHarsh Kumar Bijlani #define HTT_TX_WBM_COMP_INFO1_EXCEPTION_FRAME BIT(4) 36d3ade00eSHarsh Kumar Bijlani 37d3ade00eSHarsh Kumar Bijlani #define HTT_TX_WBM_COMP_INFO2_ACK_RSSI GENMASK(31, 24) 38d3ade00eSHarsh Kumar Bijlani 39*d637c58aSHarsh Kumar Bijlani #define HTT_TARGET_VERSION_TIMEOUT_HZ (3 * HZ) 40*d637c58aSHarsh Kumar Bijlani 41d3ade00eSHarsh Kumar Bijlani struct htt_tx_wbm_completion { 42d3ade00eSHarsh Kumar Bijlani __le32 rsvd0[2]; 43d3ade00eSHarsh Kumar Bijlani __le32 info0; 44d3ade00eSHarsh Kumar Bijlani __le32 info1; 45d3ade00eSHarsh Kumar Bijlani __le32 info2; 46d3ade00eSHarsh Kumar Bijlani __le32 info3; 47d3ade00eSHarsh Kumar Bijlani __le32 info4; 48d3ade00eSHarsh Kumar Bijlani __le32 rsvd1; 49d3ade00eSHarsh Kumar Bijlani 50d3ade00eSHarsh Kumar Bijlani } __packed; 51d3ade00eSHarsh Kumar Bijlani 52d3ade00eSHarsh Kumar Bijlani enum htt_h2t_msg_type { 53d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_VERSION_REQ = 0, 54d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_SRING_SETUP = 0xb, 55d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG = 0xc, 56d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_EXT_STATS_CFG = 0x10, 57d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_PPDU_STATS_CFG = 0x11, 58d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_VDEV_TXRX_STATS_CFG = 0x1a, 59d3ade00eSHarsh Kumar Bijlani HTT_H2T_MSG_TYPE_TX_MONITOR_CFG = 0x1b, 60d3ade00eSHarsh Kumar Bijlani }; 61d3ade00eSHarsh Kumar Bijlani 62d3ade00eSHarsh Kumar Bijlani #define HTT_VER_REQ_INFO_MSG_ID GENMASK(7, 0) 63d3ade00eSHarsh Kumar Bijlani #define HTT_OPTION_TCL_METADATA_VER_V1 1 64d3ade00eSHarsh Kumar Bijlani #define HTT_OPTION_TCL_METADATA_VER_V2 2 65d3ade00eSHarsh Kumar Bijlani #define HTT_OPTION_TAG GENMASK(7, 0) 66d3ade00eSHarsh Kumar Bijlani #define HTT_OPTION_LEN GENMASK(15, 8) 67d3ade00eSHarsh Kumar Bijlani #define HTT_OPTION_VALUE GENMASK(31, 16) 68d3ade00eSHarsh Kumar Bijlani #define HTT_TCL_METADATA_VER_SZ 4 69d3ade00eSHarsh Kumar Bijlani 70d3ade00eSHarsh Kumar Bijlani struct htt_ver_req_cmd { 71d3ade00eSHarsh Kumar Bijlani __le32 ver_reg_info; 72d3ade00eSHarsh Kumar Bijlani __le32 tcl_metadata_version; 73d3ade00eSHarsh Kumar Bijlani } __packed; 74d3ade00eSHarsh Kumar Bijlani 75d3ade00eSHarsh Kumar Bijlani enum htt_srng_ring_type { 76d3ade00eSHarsh Kumar Bijlani HTT_HW_TO_SW_RING, 77d3ade00eSHarsh Kumar Bijlani HTT_SW_TO_HW_RING, 78d3ade00eSHarsh Kumar Bijlani HTT_SW_TO_SW_RING, 79d3ade00eSHarsh Kumar Bijlani }; 80d3ade00eSHarsh Kumar Bijlani 81d3ade00eSHarsh Kumar Bijlani enum htt_srng_ring_id { 82d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_HOST_BUF_RING, 83d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_MONITOR_STATUS_RING, 84d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_MONITOR_BUF_RING, 85d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_MONITOR_DESC_RING, 86d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_MONITOR_DEST_RING, 87d3ade00eSHarsh Kumar Bijlani HTT_HOST1_TO_FW_RXBUF_RING, 88d3ade00eSHarsh Kumar Bijlani HTT_HOST2_TO_FW_RXBUF_RING, 89d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_NON_MONITOR_DEST_RING, 90d3ade00eSHarsh Kumar Bijlani HTT_RXDMA_HOST_BUF_RING2, 91d3ade00eSHarsh Kumar Bijlani HTT_TX_MON_HOST2MON_BUF_RING, 92d3ade00eSHarsh Kumar Bijlani HTT_TX_MON_MON2HOST_DEST_RING, 93d3ade00eSHarsh Kumar Bijlani HTT_RX_MON_HOST2MON_BUF_RING, 94d3ade00eSHarsh Kumar Bijlani HTT_RX_MON_MON2HOST_DEST_RING, 95d3ade00eSHarsh Kumar Bijlani }; 96d3ade00eSHarsh Kumar Bijlani 97d3ade00eSHarsh Kumar Bijlani /* host -> target HTT_SRING_SETUP message 98d3ade00eSHarsh Kumar Bijlani * 99d3ade00eSHarsh Kumar Bijlani * After target is booted up, Host can send SRING setup message for 100d3ade00eSHarsh Kumar Bijlani * each host facing LMAC SRING. Target setups up HW registers based 101d3ade00eSHarsh Kumar Bijlani * on setup message and confirms back to Host if response_required is set. 102d3ade00eSHarsh Kumar Bijlani * Host should wait for confirmation message before sending new SRING 103d3ade00eSHarsh Kumar Bijlani * setup message 104d3ade00eSHarsh Kumar Bijlani * 105d3ade00eSHarsh Kumar Bijlani * The message would appear as follows: 106d3ade00eSHarsh Kumar Bijlani * 107d3ade00eSHarsh Kumar Bijlani * |31 24|23 20|19|18 16|15|14 8|7 0| 108d3ade00eSHarsh Kumar Bijlani * |--------------- +-----------------+----------------+------------------| 109d3ade00eSHarsh Kumar Bijlani * | ring_type | ring_id | pdev_id | msg_type | 110d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 111d3ade00eSHarsh Kumar Bijlani * | ring_base_addr_lo | 112d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 113d3ade00eSHarsh Kumar Bijlani * | ring_base_addr_hi | 114d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 115d3ade00eSHarsh Kumar Bijlani * |ring_misc_cfg_flag|ring_entry_size| ring_size | 116d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 117d3ade00eSHarsh Kumar Bijlani * | ring_head_offset32_remote_addr_lo | 118d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 119d3ade00eSHarsh Kumar Bijlani * | ring_head_offset32_remote_addr_hi | 120d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 121d3ade00eSHarsh Kumar Bijlani * | ring_tail_offset32_remote_addr_lo | 122d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 123d3ade00eSHarsh Kumar Bijlani * | ring_tail_offset32_remote_addr_hi | 124d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 125d3ade00eSHarsh Kumar Bijlani * | ring_msi_addr_lo | 126d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 127d3ade00eSHarsh Kumar Bijlani * | ring_msi_addr_hi | 128d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 129d3ade00eSHarsh Kumar Bijlani * | ring_msi_data | 130d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 131d3ade00eSHarsh Kumar Bijlani * | intr_timer_th |IM| intr_batch_counter_th | 132d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 133d3ade00eSHarsh Kumar Bijlani * | reserved |RR|PTCF| intr_low_threshold | 134d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 135d3ade00eSHarsh Kumar Bijlani * Where 136d3ade00eSHarsh Kumar Bijlani * IM = sw_intr_mode 137d3ade00eSHarsh Kumar Bijlani * RR = response_required 138d3ade00eSHarsh Kumar Bijlani * PTCF = prefetch_timer_cfg 139d3ade00eSHarsh Kumar Bijlani * 140d3ade00eSHarsh Kumar Bijlani * The message is interpreted as follows: 141d3ade00eSHarsh Kumar Bijlani * dword0 - b'0:7 - msg_type: This will be set to 142d3ade00eSHarsh Kumar Bijlani * HTT_H2T_MSG_TYPE_SRING_SETUP 143d3ade00eSHarsh Kumar Bijlani * b'8:15 - pdev_id: 144d3ade00eSHarsh Kumar Bijlani * 0 (for rings at SOC/UMAC level), 145d3ade00eSHarsh Kumar Bijlani * 1/2/3 mac id (for rings at LMAC level) 146d3ade00eSHarsh Kumar Bijlani * b'16:23 - ring_id: identify which ring is to setup, 147d3ade00eSHarsh Kumar Bijlani * more details can be got from enum htt_srng_ring_id 148d3ade00eSHarsh Kumar Bijlani * b'24:31 - ring_type: identify type of host rings, 149d3ade00eSHarsh Kumar Bijlani * more details can be got from enum htt_srng_ring_type 150d3ade00eSHarsh Kumar Bijlani * dword1 - b'0:31 - ring_base_addr_lo: Lower 32bits of ring base address 151d3ade00eSHarsh Kumar Bijlani * dword2 - b'0:31 - ring_base_addr_hi: Upper 32bits of ring base address 152d3ade00eSHarsh Kumar Bijlani * dword3 - b'0:15 - ring_size: size of the ring in unit of 4-bytes words 153d3ade00eSHarsh Kumar Bijlani * b'16:23 - ring_entry_size: Size of each entry in 4-byte word units 154d3ade00eSHarsh Kumar Bijlani * b'24:31 - ring_misc_cfg_flag: Valid only for HW_TO_SW_RING and 155d3ade00eSHarsh Kumar Bijlani * SW_TO_HW_RING. 156d3ade00eSHarsh Kumar Bijlani * Refer to HTT_SRING_SETUP_RING_MISC_CFG_RING defs. 157d3ade00eSHarsh Kumar Bijlani * dword4 - b'0:31 - ring_head_off32_remote_addr_lo: 158d3ade00eSHarsh Kumar Bijlani * Lower 32 bits of memory address of the remote variable 159d3ade00eSHarsh Kumar Bijlani * storing the 4-byte word offset that identifies the head 160d3ade00eSHarsh Kumar Bijlani * element within the ring. 161d3ade00eSHarsh Kumar Bijlani * (The head offset variable has type u32.) 162d3ade00eSHarsh Kumar Bijlani * Valid for HW_TO_SW and SW_TO_SW rings. 163d3ade00eSHarsh Kumar Bijlani * dword5 - b'0:31 - ring_head_off32_remote_addr_hi: 164d3ade00eSHarsh Kumar Bijlani * Upper 32 bits of memory address of the remote variable 165d3ade00eSHarsh Kumar Bijlani * storing the 4-byte word offset that identifies the head 166d3ade00eSHarsh Kumar Bijlani * element within the ring. 167d3ade00eSHarsh Kumar Bijlani * (The head offset variable has type u32.) 168d3ade00eSHarsh Kumar Bijlani * Valid for HW_TO_SW and SW_TO_SW rings. 169d3ade00eSHarsh Kumar Bijlani * dword6 - b'0:31 - ring_tail_off32_remote_addr_lo: 170d3ade00eSHarsh Kumar Bijlani * Lower 32 bits of memory address of the remote variable 171d3ade00eSHarsh Kumar Bijlani * storing the 4-byte word offset that identifies the tail 172d3ade00eSHarsh Kumar Bijlani * element within the ring. 173d3ade00eSHarsh Kumar Bijlani * (The tail offset variable has type u32.) 174d3ade00eSHarsh Kumar Bijlani * Valid for HW_TO_SW and SW_TO_SW rings. 175d3ade00eSHarsh Kumar Bijlani * dword7 - b'0:31 - ring_tail_off32_remote_addr_hi: 176d3ade00eSHarsh Kumar Bijlani * Upper 32 bits of memory address of the remote variable 177d3ade00eSHarsh Kumar Bijlani * storing the 4-byte word offset that identifies the tail 178d3ade00eSHarsh Kumar Bijlani * element within the ring. 179d3ade00eSHarsh Kumar Bijlani * (The tail offset variable has type u32.) 180d3ade00eSHarsh Kumar Bijlani * Valid for HW_TO_SW and SW_TO_SW rings. 181d3ade00eSHarsh Kumar Bijlani * dword8 - b'0:31 - ring_msi_addr_lo: Lower 32bits of MSI cfg address 182d3ade00eSHarsh Kumar Bijlani * valid only for HW_TO_SW_RING and SW_TO_HW_RING 183d3ade00eSHarsh Kumar Bijlani * dword9 - b'0:31 - ring_msi_addr_hi: Upper 32bits of MSI cfg address 184d3ade00eSHarsh Kumar Bijlani * valid only for HW_TO_SW_RING and SW_TO_HW_RING 185d3ade00eSHarsh Kumar Bijlani * dword10 - b'0:31 - ring_msi_data: MSI data 186d3ade00eSHarsh Kumar Bijlani * Refer to HTT_SRING_SETUP_RING_MSC_CFG_xxx defs 187d3ade00eSHarsh Kumar Bijlani * valid only for HW_TO_SW_RING and SW_TO_HW_RING 188d3ade00eSHarsh Kumar Bijlani * dword11 - b'0:14 - intr_batch_counter_th: 189d3ade00eSHarsh Kumar Bijlani * batch counter threshold is in units of 4-byte words. 190d3ade00eSHarsh Kumar Bijlani * HW internally maintains and increments batch count. 191d3ade00eSHarsh Kumar Bijlani * (see SRING spec for detail description). 192d3ade00eSHarsh Kumar Bijlani * When batch count reaches threshold value, an interrupt 193d3ade00eSHarsh Kumar Bijlani * is generated by HW. 194d3ade00eSHarsh Kumar Bijlani * b'15 - sw_intr_mode: 195d3ade00eSHarsh Kumar Bijlani * This configuration shall be static. 196d3ade00eSHarsh Kumar Bijlani * Only programmed at power up. 197d3ade00eSHarsh Kumar Bijlani * 0: generate pulse style sw interrupts 198d3ade00eSHarsh Kumar Bijlani * 1: generate level style sw interrupts 199d3ade00eSHarsh Kumar Bijlani * b'16:31 - intr_timer_th: 200d3ade00eSHarsh Kumar Bijlani * The timer init value when timer is idle or is 201d3ade00eSHarsh Kumar Bijlani * initialized to start downcounting. 202d3ade00eSHarsh Kumar Bijlani * In 8us units (to cover a range of 0 to 524 ms) 203d3ade00eSHarsh Kumar Bijlani * dword12 - b'0:15 - intr_low_threshold: 204d3ade00eSHarsh Kumar Bijlani * Used only by Consumer ring to generate ring_sw_int_p. 205d3ade00eSHarsh Kumar Bijlani * Ring entries low threshold water mark, that is used 206d3ade00eSHarsh Kumar Bijlani * in combination with the interrupt timer as well as 207d3ade00eSHarsh Kumar Bijlani * the clearing of the level interrupt. 208d3ade00eSHarsh Kumar Bijlani * b'16:18 - prefetch_timer_cfg: 209d3ade00eSHarsh Kumar Bijlani * Used only by Consumer ring to set timer mode to 210d3ade00eSHarsh Kumar Bijlani * support Application prefetch handling. 211d3ade00eSHarsh Kumar Bijlani * The external tail offset/pointer will be updated 212d3ade00eSHarsh Kumar Bijlani * at following intervals: 213d3ade00eSHarsh Kumar Bijlani * 3'b000: (Prefetch feature disabled; used only for debug) 214d3ade00eSHarsh Kumar Bijlani * 3'b001: 1 usec 215d3ade00eSHarsh Kumar Bijlani * 3'b010: 4 usec 216d3ade00eSHarsh Kumar Bijlani * 3'b011: 8 usec (default) 217d3ade00eSHarsh Kumar Bijlani * 3'b100: 16 usec 218d3ade00eSHarsh Kumar Bijlani * Others: Reserved 219d3ade00eSHarsh Kumar Bijlani * b'19 - response_required: 220d3ade00eSHarsh Kumar Bijlani * Host needs HTT_T2H_MSG_TYPE_SRING_SETUP_DONE as response 221d3ade00eSHarsh Kumar Bijlani * b'20:31 - reserved: reserved for future use 222d3ade00eSHarsh Kumar Bijlani */ 223d3ade00eSHarsh Kumar Bijlani 224d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO0_MSG_TYPE GENMASK(7, 0) 225d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO0_PDEV_ID GENMASK(15, 8) 226d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO0_RING_ID GENMASK(23, 16) 227d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO0_RING_TYPE GENMASK(31, 24) 228d3ade00eSHarsh Kumar Bijlani 229d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_SIZE GENMASK(15, 0) 230d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_ENTRY_SIZE GENMASK(23, 16) 231d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_LOOP_CNT_DIS BIT(25) 232d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_FLAGS_MSI_SWAP BIT(27) 233d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_FLAGS_HOST_FW_SWAP BIT(28) 234d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO1_RING_FLAGS_TLV_SWAP BIT(29) 235d3ade00eSHarsh Kumar Bijlani 236d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INTR_INFO_BATCH_COUNTER_THRESH GENMASK(14, 0) 237d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INTR_INFO_SW_INTR_MODE BIT(15) 238d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INTR_INFO_INTR_TIMER_THRESH GENMASK(31, 16) 239d3ade00eSHarsh Kumar Bijlani 240d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO2_INTR_LOW_THRESH GENMASK(15, 0) 241d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO2_PRE_FETCH_TIMER_CFG GENMASK(18, 16) 242d3ade00eSHarsh Kumar Bijlani #define HTT_SRNG_SETUP_CMD_INFO2_RESPONSE_REQUIRED BIT(19) 243d3ade00eSHarsh Kumar Bijlani 244d3ade00eSHarsh Kumar Bijlani struct htt_srng_setup_cmd { 245d3ade00eSHarsh Kumar Bijlani __le32 info0; 246d3ade00eSHarsh Kumar Bijlani __le32 ring_base_addr_lo; 247d3ade00eSHarsh Kumar Bijlani __le32 ring_base_addr_hi; 248d3ade00eSHarsh Kumar Bijlani __le32 info1; 249d3ade00eSHarsh Kumar Bijlani __le32 ring_head_off32_remote_addr_lo; 250d3ade00eSHarsh Kumar Bijlani __le32 ring_head_off32_remote_addr_hi; 251d3ade00eSHarsh Kumar Bijlani __le32 ring_tail_off32_remote_addr_lo; 252d3ade00eSHarsh Kumar Bijlani __le32 ring_tail_off32_remote_addr_hi; 253d3ade00eSHarsh Kumar Bijlani __le32 ring_msi_addr_lo; 254d3ade00eSHarsh Kumar Bijlani __le32 ring_msi_addr_hi; 255d3ade00eSHarsh Kumar Bijlani __le32 msi_data; 256d3ade00eSHarsh Kumar Bijlani __le32 intr_info; 257d3ade00eSHarsh Kumar Bijlani __le32 info2; 258d3ade00eSHarsh Kumar Bijlani } __packed; 259d3ade00eSHarsh Kumar Bijlani 260d3ade00eSHarsh Kumar Bijlani /* host -> target FW PPDU_STATS config message 261d3ade00eSHarsh Kumar Bijlani * 262d3ade00eSHarsh Kumar Bijlani * @details 263d3ade00eSHarsh Kumar Bijlani * The following field definitions describe the format of the HTT host 264d3ade00eSHarsh Kumar Bijlani * to target FW for PPDU_STATS_CFG msg. 265d3ade00eSHarsh Kumar Bijlani * The message allows the host to configure the PPDU_STATS_IND messages 266d3ade00eSHarsh Kumar Bijlani * produced by the target. 267d3ade00eSHarsh Kumar Bijlani * 268d3ade00eSHarsh Kumar Bijlani * |31 24|23 16|15 8|7 0| 269d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 270d3ade00eSHarsh Kumar Bijlani * | REQ bit mask | pdev_mask | msg type | 271d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 272d3ade00eSHarsh Kumar Bijlani * Header fields: 273d3ade00eSHarsh Kumar Bijlani * - MSG_TYPE 274d3ade00eSHarsh Kumar Bijlani * Bits 7:0 275d3ade00eSHarsh Kumar Bijlani * Purpose: identifies this is a req to configure ppdu_stats_ind from target 276d3ade00eSHarsh Kumar Bijlani * Value: 0x11 277d3ade00eSHarsh Kumar Bijlani * - PDEV_MASK 278d3ade00eSHarsh Kumar Bijlani * Bits 8:15 279d3ade00eSHarsh Kumar Bijlani * Purpose: identifies which pdevs this PPDU stats configuration applies to 280d3ade00eSHarsh Kumar Bijlani * Value: This is a overloaded field, refer to usage and interpretation of 281d3ade00eSHarsh Kumar Bijlani * PDEV in interface document. 282d3ade00eSHarsh Kumar Bijlani * Bit 8 : Reserved for SOC stats 283d3ade00eSHarsh Kumar Bijlani * Bit 9 - 15 : Indicates PDEV_MASK in DBDC 284d3ade00eSHarsh Kumar Bijlani * Indicates MACID_MASK in DBS 285d3ade00eSHarsh Kumar Bijlani * - REQ_TLV_BIT_MASK 286d3ade00eSHarsh Kumar Bijlani * Bits 16:31 287d3ade00eSHarsh Kumar Bijlani * Purpose: each set bit indicates the corresponding PPDU stats TLV type 288d3ade00eSHarsh Kumar Bijlani * needs to be included in the target's PPDU_STATS_IND messages. 289d3ade00eSHarsh Kumar Bijlani * Value: refer htt_ppdu_stats_tlv_tag_t <<<??? 290d3ade00eSHarsh Kumar Bijlani * 291d3ade00eSHarsh Kumar Bijlani */ 292d3ade00eSHarsh Kumar Bijlani 293d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_cfg_cmd { 294d3ade00eSHarsh Kumar Bijlani __le32 msg; 295d3ade00eSHarsh Kumar Bijlani } __packed; 296d3ade00eSHarsh Kumar Bijlani 297d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CFG_MSG_TYPE GENMASK(7, 0) 298d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CFG_SOC_STATS BIT(8) 299d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 9) 300d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK GENMASK(31, 16) 301d3ade00eSHarsh Kumar Bijlani 302d3ade00eSHarsh Kumar Bijlani enum htt_ppdu_stats_tag_type { 303d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_COMMON, 304d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMMON, 305d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_RATE, 306d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_MPDU_ENQ_BITMAP_64, 307d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_MPDU_ENQ_BITMAP_256, 308d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_SCH_CMD_STATUS, 309d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMPLTN_COMMON, 310d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMPLTN_BA_BITMAP_64, 311d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMPLTN_BA_BITMAP_256, 312d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMPLTN_ACK_BA_STATUS, 313d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMPLTN_FLUSH, 314d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_USR_COMMON_ARRAY, 315d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_INFO, 316d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_TX_MGMTCTRL_PAYLOAD, 317d3ade00eSHarsh Kumar Bijlani 318d3ade00eSHarsh Kumar Bijlani /* New TLV's are added above to this line */ 319d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_MAX, 320d3ade00eSHarsh Kumar Bijlani }; 321d3ade00eSHarsh Kumar Bijlani 322d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TAG_DEFAULT (BIT(HTT_PPDU_STATS_TAG_COMMON) \ 323d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_COMMON) \ 324d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_RATE) \ 325d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_SCH_CMD_STATUS) \ 326d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_COMMON) \ 327d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_ACK_BA_STATUS) \ 328d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_FLUSH) \ 329d3ade00eSHarsh Kumar Bijlani | BIT(HTT_PPDU_STATS_TAG_USR_COMMON_ARRAY)) 330d3ade00eSHarsh Kumar Bijlani 331d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TAG_PKTLOG (BIT(HTT_PPDU_STATS_TAG_USR_MPDU_ENQ_BITMAP_64) | \ 332d3ade00eSHarsh Kumar Bijlani BIT(HTT_PPDU_STATS_TAG_USR_MPDU_ENQ_BITMAP_256) | \ 333d3ade00eSHarsh Kumar Bijlani BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_BA_BITMAP_64) | \ 334d3ade00eSHarsh Kumar Bijlani BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_BA_BITMAP_256) | \ 335d3ade00eSHarsh Kumar Bijlani BIT(HTT_PPDU_STATS_TAG_INFO) | \ 336d3ade00eSHarsh Kumar Bijlani BIT(HTT_PPDU_STATS_TAG_TX_MGMTCTRL_PAYLOAD) | \ 337d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_TAG_DEFAULT) 338d3ade00eSHarsh Kumar Bijlani 339d3ade00eSHarsh Kumar Bijlani enum htt_stats_internal_ppdu_frametype { 340d3ade00eSHarsh Kumar Bijlani HTT_STATS_PPDU_FTYPE_CTRL, 341d3ade00eSHarsh Kumar Bijlani HTT_STATS_PPDU_FTYPE_DATA, 342d3ade00eSHarsh Kumar Bijlani HTT_STATS_PPDU_FTYPE_BAR, 343d3ade00eSHarsh Kumar Bijlani HTT_STATS_PPDU_FTYPE_MAX 344d3ade00eSHarsh Kumar Bijlani }; 345d3ade00eSHarsh Kumar Bijlani 346d3ade00eSHarsh Kumar Bijlani /* HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG Message 347d3ade00eSHarsh Kumar Bijlani * 348d3ade00eSHarsh Kumar Bijlani * details: 349d3ade00eSHarsh Kumar Bijlani * HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG message is sent by host to 350d3ade00eSHarsh Kumar Bijlani * configure RXDMA rings. 351d3ade00eSHarsh Kumar Bijlani * The configuration is per ring based and includes both packet subtypes 352d3ade00eSHarsh Kumar Bijlani * and PPDU/MPDU TLVs. 353d3ade00eSHarsh Kumar Bijlani * 354d3ade00eSHarsh Kumar Bijlani * The message would appear as follows: 355d3ade00eSHarsh Kumar Bijlani * 356d3ade00eSHarsh Kumar Bijlani * |31 29|28|27|26|25|24|23 16|15 8|7 0| 357d3ade00eSHarsh Kumar Bijlani * |-------+--+--+--+--+--+-----------+----------------+---------------| 358d3ade00eSHarsh Kumar Bijlani * | rsvd1 |ED|DT|OV|PS|SS| ring_id | pdev_id | msg_type | 359d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 360d3ade00eSHarsh Kumar Bijlani * | rsvd2 | ring_buffer_size | 361d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 362d3ade00eSHarsh Kumar Bijlani * | packet_type_enable_flags_0 | 363d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 364d3ade00eSHarsh Kumar Bijlani * | packet_type_enable_flags_1 | 365d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 366d3ade00eSHarsh Kumar Bijlani * | packet_type_enable_flags_2 | 367d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 368d3ade00eSHarsh Kumar Bijlani * | packet_type_enable_flags_3 | 369d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 370d3ade00eSHarsh Kumar Bijlani * | tlv_filter_in_flags | 371d3ade00eSHarsh Kumar Bijlani * |-------------------------------------------------------------------| 372d3ade00eSHarsh Kumar Bijlani * Where: 373d3ade00eSHarsh Kumar Bijlani * PS = pkt_swap 374d3ade00eSHarsh Kumar Bijlani * SS = status_swap 375d3ade00eSHarsh Kumar Bijlani * The message is interpreted as follows: 376d3ade00eSHarsh Kumar Bijlani * dword0 - b'0:7 - msg_type: This will be set to 377d3ade00eSHarsh Kumar Bijlani * HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG 378d3ade00eSHarsh Kumar Bijlani * b'8:15 - pdev_id: 379d3ade00eSHarsh Kumar Bijlani * 0 (for rings at SOC/UMAC level), 380d3ade00eSHarsh Kumar Bijlani * 1/2/3 mac id (for rings at LMAC level) 381d3ade00eSHarsh Kumar Bijlani * b'16:23 - ring_id : Identify the ring to configure. 382d3ade00eSHarsh Kumar Bijlani * More details can be got from enum htt_srng_ring_id 383d3ade00eSHarsh Kumar Bijlani * b'24 - status_swap: 1 is to swap status TLV 384d3ade00eSHarsh Kumar Bijlani * b'25 - pkt_swap: 1 is to swap packet TLV 385d3ade00eSHarsh Kumar Bijlani * b'26 - rx_offset_valid (OV): flag to indicate rx offsets 386d3ade00eSHarsh Kumar Bijlani * configuration fields are valid 387d3ade00eSHarsh Kumar Bijlani * b'27 - drop_thresh_valid (DT): flag to indicate if the 388d3ade00eSHarsh Kumar Bijlani * rx_drop_threshold field is valid 389d3ade00eSHarsh Kumar Bijlani * b'28 - rx_mon_global_en: Enable/Disable global register 390d3ade00eSHarsh Kumar Bijlani * configuration in Rx monitor module. 391d3ade00eSHarsh Kumar Bijlani * b'29:31 - rsvd1: reserved for future use 392d3ade00eSHarsh Kumar Bijlani * dword1 - b'0:16 - ring_buffer_size: size of buffers referenced by rx ring, 393d3ade00eSHarsh Kumar Bijlani * in byte units. 394d3ade00eSHarsh Kumar Bijlani * Valid only for HW_TO_SW_RING and SW_TO_HW_RING 395d3ade00eSHarsh Kumar Bijlani * - b'16:31 - rsvd2: Reserved for future use 396d3ade00eSHarsh Kumar Bijlani * dword2 - b'0:31 - packet_type_enable_flags_0: 397d3ade00eSHarsh Kumar Bijlani * Enable MGMT packet from 0b0000 to 0b1001 398d3ade00eSHarsh Kumar Bijlani * bits from low to high: FP, MD, MO - 3 bits 399d3ade00eSHarsh Kumar Bijlani * FP: Filter_Pass 400d3ade00eSHarsh Kumar Bijlani * MD: Monitor_Direct 401d3ade00eSHarsh Kumar Bijlani * MO: Monitor_Other 402d3ade00eSHarsh Kumar Bijlani * 10 mgmt subtypes * 3 bits -> 30 bits 403d3ade00eSHarsh Kumar Bijlani * Refer to PKT_TYPE_ENABLE_FLAG0_xxx_MGMT_xxx defs 404d3ade00eSHarsh Kumar Bijlani * dword3 - b'0:31 - packet_type_enable_flags_1: 405d3ade00eSHarsh Kumar Bijlani * Enable MGMT packet from 0b1010 to 0b1111 406d3ade00eSHarsh Kumar Bijlani * bits from low to high: FP, MD, MO - 3 bits 407d3ade00eSHarsh Kumar Bijlani * Refer to PKT_TYPE_ENABLE_FLAG1_xxx_MGMT_xxx defs 408d3ade00eSHarsh Kumar Bijlani * dword4 - b'0:31 - packet_type_enable_flags_2: 409d3ade00eSHarsh Kumar Bijlani * Enable CTRL packet from 0b0000 to 0b1001 410d3ade00eSHarsh Kumar Bijlani * bits from low to high: FP, MD, MO - 3 bits 411d3ade00eSHarsh Kumar Bijlani * Refer to PKT_TYPE_ENABLE_FLAG2_xxx_CTRL_xxx defs 412d3ade00eSHarsh Kumar Bijlani * dword5 - b'0:31 - packet_type_enable_flags_3: 413d3ade00eSHarsh Kumar Bijlani * Enable CTRL packet from 0b1010 to 0b1111, 414d3ade00eSHarsh Kumar Bijlani * MCAST_DATA, UCAST_DATA, NULL_DATA 415d3ade00eSHarsh Kumar Bijlani * bits from low to high: FP, MD, MO - 3 bits 416d3ade00eSHarsh Kumar Bijlani * Refer to PKT_TYPE_ENABLE_FLAG3_xxx_CTRL_xxx defs 417d3ade00eSHarsh Kumar Bijlani * dword6 - b'0:31 - tlv_filter_in_flags: 418d3ade00eSHarsh Kumar Bijlani * Filter in Attention/MPDU/PPDU/Header/User tlvs 419d3ade00eSHarsh Kumar Bijlani * Refer to CFG_TLV_FILTER_IN_FLAG defs 420d3ade00eSHarsh Kumar Bijlani */ 421d3ade00eSHarsh Kumar Bijlani 422d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_MSG_TYPE GENMASK(7, 0) 423d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PDEV_ID GENMASK(15, 8) 424d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_RING_ID GENMASK(23, 16) 425d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_SS BIT(24) 426d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_PS BIT(25) 427d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_OFFSET_VALID BIT(26) 428d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_DROP_THRES_VAL BIT(27) 429d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO0_EN_RXMON BIT(28) 430d3ade00eSHarsh Kumar Bijlani 431d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO1_BUF_SIZE GENMASK(15, 0) 432d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_MGMT GENMASK(18, 16) 433d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_CTRL GENMASK(21, 19) 434d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_DATA GENMASK(24, 22) 435d3ade00eSHarsh Kumar Bijlani 436d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO2_DROP_THRESHOLD GENMASK(9, 0) 437d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO2_EN_LOG_MGMT_TYPE BIT(17) 438d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO2_EN_CTRL_TYPE BIT(18) 439d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO2_EN_LOG_DATA_TYPE BIT(19) 440d3ade00eSHarsh Kumar Bijlani 441d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO3_EN_TLV_PKT_OFFSET BIT(0) 442d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_CMD_INFO3_PKT_TLV_OFFSET GENMASK(14, 1) 443d3ade00eSHarsh Kumar Bijlani 444d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_PACKET_OFFSET GENMASK(15, 0) 445d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_HEADER_OFFSET GENMASK(31, 16) 446d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_OFFSET GENMASK(15, 0) 447d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_OFFSET GENMASK(31, 16) 448d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_OFFSET GENMASK(15, 0) 449d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_START_OFFSET GENMASK(31, 16) 450d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_ATTENTION_OFFSET GENMASK(15, 0) 451d3ade00eSHarsh Kumar Bijlani 452d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_WORD_MASK_COMPACT_SET BIT(23) 453d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_START_MASK GENMASK(15, 0) 454d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MPDU_END_MASK GENMASK(18, 16) 455d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_SELECTION_CFG_RX_MSDU_END_MASK GENMASK(16, 0) 456d3ade00eSHarsh Kumar Bijlani 457d3ade00eSHarsh Kumar Bijlani enum htt_rx_filter_tlv_flags { 458d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MPDU_START = BIT(0), 459d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_START = BIT(1), 460d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_RX_PACKET = BIT(2), 461d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_END = BIT(3), 462d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MPDU_END = BIT(4), 463d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER = BIT(5), 464d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PER_MSDU_HEADER = BIT(6), 465d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_ATTENTION = BIT(7), 466d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START = BIT(8), 467d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END = BIT(9), 468d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS = BIT(10), 469d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT = BIT(11), 470d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE = BIT(12), 471d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START_USER_INFO = BIT(13), 472d3ade00eSHarsh Kumar Bijlani }; 473d3ade00eSHarsh Kumar Bijlani 474d3ade00eSHarsh Kumar Bijlani enum htt_rx_mgmt_pkt_filter_tlv_flags0 { 475d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ = BIT(0), 476d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ = BIT(1), 477d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ = BIT(2), 478d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP = BIT(3), 479d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP = BIT(4), 480d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP = BIT(5), 481d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ = BIT(6), 482d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ = BIT(7), 483d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ = BIT(8), 484d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP = BIT(9), 485d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP = BIT(10), 486d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP = BIT(11), 487d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ = BIT(12), 488d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ = BIT(13), 489d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ = BIT(14), 490d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP = BIT(15), 491d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP = BIT(16), 492d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP = BIT(17), 493d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV = BIT(18), 494d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV = BIT(19), 495d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV = BIT(20), 496d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_RESERVED_7 = BIT(21), 497d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_RESERVED_7 = BIT(22), 498d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_RESERVED_7 = BIT(23), 499d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON = BIT(24), 500d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON = BIT(25), 501d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON = BIT(26), 502d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM = BIT(27), 503d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM = BIT(28), 504d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM = BIT(29), 505d3ade00eSHarsh Kumar Bijlani }; 506d3ade00eSHarsh Kumar Bijlani 507d3ade00eSHarsh Kumar Bijlani enum htt_rx_mgmt_pkt_filter_tlv_flags1 { 508d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC = BIT(0), 509d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC = BIT(1), 510d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC = BIT(2), 511d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH = BIT(3), 512d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH = BIT(4), 513d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH = BIT(5), 514d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH = BIT(6), 515d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH = BIT(7), 516d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH = BIT(8), 517d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION = BIT(9), 518d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION = BIT(10), 519d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION = BIT(11), 520d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK = BIT(12), 521d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK = BIT(13), 522d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK = BIT(14), 523d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_RESERVED_15 = BIT(15), 524d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_RESERVED_15 = BIT(16), 525d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_RESERVED_15 = BIT(17), 526d3ade00eSHarsh Kumar Bijlani }; 527d3ade00eSHarsh Kumar Bijlani 528d3ade00eSHarsh Kumar Bijlani enum htt_rx_ctrl_pkt_filter_tlv_flags2 { 529d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_1 = BIT(0), 530d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_1 = BIT(1), 531d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_1 = BIT(2), 532d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_2 = BIT(3), 533d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_2 = BIT(4), 534d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_2 = BIT(5), 535d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_TRIGGER = BIT(6), 536d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_TRIGGER = BIT(7), 537d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_TRIGGER = BIT(8), 538d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_4 = BIT(9), 539d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_4 = BIT(10), 540d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_4 = BIT(11), 541d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_BF_REP_POLL = BIT(12), 542d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_BF_REP_POLL = BIT(13), 543d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_BF_REP_POLL = BIT(14), 544d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_VHT_NDP = BIT(15), 545d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_VHT_NDP = BIT(16), 546d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_VHT_NDP = BIT(17), 547d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_FRAME_EXT = BIT(18), 548d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_FRAME_EXT = BIT(19), 549d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_FRAME_EXT = BIT(20), 550d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER = BIT(21), 551d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER = BIT(22), 552d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER = BIT(23), 553d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_BAR = BIT(24), 554d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_BAR = BIT(25), 555d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_BAR = BIT(26), 556d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_BA = BIT(27), 557d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_BA = BIT(28), 558d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_BA = BIT(29), 559d3ade00eSHarsh Kumar Bijlani }; 560d3ade00eSHarsh Kumar Bijlani 561d3ade00eSHarsh Kumar Bijlani enum htt_rx_ctrl_pkt_filter_tlv_flags3 { 562d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL = BIT(0), 563d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL = BIT(1), 564d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL = BIT(2), 565d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_RTS = BIT(3), 566d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_RTS = BIT(4), 567d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_RTS = BIT(5), 568d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CTS = BIT(6), 569d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CTS = BIT(7), 570d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CTS = BIT(8), 571d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_ACK = BIT(9), 572d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_ACK = BIT(10), 573d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_ACK = BIT(11), 574d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND = BIT(12), 575d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND = BIT(13), 576d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND = BIT(14), 577d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK = BIT(15), 578d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK = BIT(16), 579d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK = BIT(17), 580d3ade00eSHarsh Kumar Bijlani }; 581d3ade00eSHarsh Kumar Bijlani 582d3ade00eSHarsh Kumar Bijlani enum htt_rx_data_pkt_filter_tlv_flasg3 { 583d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_MCAST = BIT(18), 584d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_MCAST = BIT(19), 585d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_MCAST = BIT(20), 586d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_UCAST = BIT(21), 587d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_UCAST = BIT(22), 588d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_UCAST = BIT(23), 589d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA = BIT(24), 590d3ade00eSHarsh Kumar Bijlani HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA = BIT(25), 591d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA = BIT(26), 592d3ade00eSHarsh Kumar Bijlani }; 593d3ade00eSHarsh Kumar Bijlani 594d3ade00eSHarsh Kumar Bijlani #define HTT_RX_FP_MGMT_FILTER_FLAGS0 \ 595d3ade00eSHarsh Kumar Bijlani (HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ \ 596d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP \ 597d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ \ 598d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP \ 599d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ \ 600d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP \ 601d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV \ 602d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON \ 603d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM) 604d3ade00eSHarsh Kumar Bijlani 605d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MD_MGMT_FILTER_FLAGS0 \ 606d3ade00eSHarsh Kumar Bijlani (HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ \ 607d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP \ 608d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ \ 609d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP \ 610d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ \ 611d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP \ 612d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV \ 613d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON \ 614d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM) 615d3ade00eSHarsh Kumar Bijlani 616d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MO_MGMT_FILTER_FLAGS0 \ 617d3ade00eSHarsh Kumar Bijlani (HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_REQ \ 618d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ASSOC_RESP \ 619d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_REQ \ 620d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_REASSOC_RESP \ 621d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_REQ \ 622d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_RESP \ 623d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_PROBE_TIMING_ADV \ 624d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_BEACON \ 625d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_ATIM) 626d3ade00eSHarsh Kumar Bijlani 627d3ade00eSHarsh Kumar Bijlani #define HTT_RX_FP_MGMT_FILTER_FLAGS1 (HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC \ 628d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH \ 629d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH \ 630d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION \ 631d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK) 632d3ade00eSHarsh Kumar Bijlani 633d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MD_MGMT_FILTER_FLAGS1 (HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC \ 634d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH \ 635d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH \ 636d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION \ 637d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK) 638d3ade00eSHarsh Kumar Bijlani 639d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MO_MGMT_FILTER_FLAGS1 (HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_DISASSOC \ 640d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_AUTH \ 641d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_DEAUTH \ 642d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION \ 643d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_ACTION_NOACK) 644d3ade00eSHarsh Kumar Bijlani 645d3ade00eSHarsh Kumar Bijlani #define HTT_RX_FP_CTRL_FILTER_FLASG2 (HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER \ 646d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_BAR \ 647d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_BA) 648d3ade00eSHarsh Kumar Bijlani 649d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MD_CTRL_FILTER_FLASG2 (HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER \ 650d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_BAR \ 651d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS2_BA) 652d3ade00eSHarsh Kumar Bijlani 653d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MO_CTRL_FILTER_FLASG2 (HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_WRAPPER \ 654d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_BAR \ 655d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_BA) 656d3ade00eSHarsh Kumar Bijlani 657d3ade00eSHarsh Kumar Bijlani #define HTT_RX_FP_CTRL_FILTER_FLASG3 (HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL \ 658d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_RTS \ 659d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CTS \ 660d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_ACK \ 661d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND \ 662d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK) 663d3ade00eSHarsh Kumar Bijlani 664d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MD_CTRL_FILTER_FLASG3 (HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL \ 665d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_RTS \ 666d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CTS \ 667d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_ACK \ 668d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND \ 669d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK) 670d3ade00eSHarsh Kumar Bijlani 671d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MO_CTRL_FILTER_FLASG3 (HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_PSPOLL \ 672d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_RTS \ 673d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CTS \ 674d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_ACK \ 675d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND \ 676d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS3_CFEND_ACK) 677d3ade00eSHarsh Kumar Bijlani 678d3ade00eSHarsh Kumar Bijlani #define HTT_RX_FP_DATA_FILTER_FLASG3 (HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_MCAST \ 679d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_UCAST \ 680d3ade00eSHarsh Kumar Bijlani | HTT_RX_FP_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA) 681d3ade00eSHarsh Kumar Bijlani 682d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MD_DATA_FILTER_FLASG3 (HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_MCAST \ 683d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_UCAST \ 684d3ade00eSHarsh Kumar Bijlani | HTT_RX_MD_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA) 685d3ade00eSHarsh Kumar Bijlani 686d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MO_DATA_FILTER_FLASG3 (HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_MCAST \ 687d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_UCAST \ 688d3ade00eSHarsh Kumar Bijlani | HTT_RX_MO_DATA_PKT_FILTER_TLV_FLASG3_NULL_DATA) 689d3ade00eSHarsh Kumar Bijlani 690d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FP_MGMT_FILTER_FLAGS0 \ 691d3ade00eSHarsh Kumar Bijlani (HTT_RX_FP_MGMT_FILTER_FLAGS0 | \ 692d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS0_RESERVED_7) 693d3ade00eSHarsh Kumar Bijlani 694d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_MO_MGMT_FILTER_FLAGS0 \ 695d3ade00eSHarsh Kumar Bijlani (HTT_RX_MO_MGMT_FILTER_FLAGS0 | \ 696d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS0_RESERVED_7) 697d3ade00eSHarsh Kumar Bijlani 698d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FP_MGMT_FILTER_FLAGS1 \ 699d3ade00eSHarsh Kumar Bijlani (HTT_RX_FP_MGMT_FILTER_FLAGS1 | \ 700d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_MGMT_PKT_FILTER_TLV_FLAGS1_RESERVED_15) 701d3ade00eSHarsh Kumar Bijlani 702d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_MO_MGMT_FILTER_FLAGS1 \ 703d3ade00eSHarsh Kumar Bijlani (HTT_RX_MO_MGMT_FILTER_FLAGS1 | \ 704d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_MGMT_PKT_FILTER_TLV_FLAGS1_RESERVED_15) 705d3ade00eSHarsh Kumar Bijlani 706d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FP_CTRL_FILTER_FLASG2 \ 707d3ade00eSHarsh Kumar Bijlani (HTT_RX_FP_CTRL_FILTER_FLASG2 | \ 708d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_1 | \ 709d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_2 | \ 710d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_TRIGGER | \ 711d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_4 | \ 712d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_BF_REP_POLL | \ 713d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_VHT_NDP | \ 714d3ade00eSHarsh Kumar Bijlani HTT_RX_FP_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_FRAME_EXT) 715d3ade00eSHarsh Kumar Bijlani 716d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_MO_CTRL_FILTER_FLASG2 \ 717d3ade00eSHarsh Kumar Bijlani (HTT_RX_MO_CTRL_FILTER_FLASG2 | \ 718d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_1 | \ 719d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_2 | \ 720d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_TRIGGER | \ 721d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_RESERVED_4 | \ 722d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_BF_REP_POLL | \ 723d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_VHT_NDP | \ 724d3ade00eSHarsh Kumar Bijlani HTT_RX_MO_CTRL_PKT_FILTER_TLV_FLAGS2_CTRL_FRAME_EXT) 725d3ade00eSHarsh Kumar Bijlani 726d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FP_CTRL_FILTER_FLASG3 HTT_RX_FP_CTRL_FILTER_FLASG3 727d3ade00eSHarsh Kumar Bijlani 728d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_MO_CTRL_FILTER_FLASG3 HTT_RX_MO_CTRL_FILTER_FLASG3 729d3ade00eSHarsh Kumar Bijlani 730d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FP_DATA_FILTER_FLASG3 HTT_RX_FP_DATA_FILTER_FLASG3 731d3ade00eSHarsh Kumar Bijlani 732d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_MO_DATA_FILTER_FLASG3 HTT_RX_MO_DATA_FILTER_FLASG3 733d3ade00eSHarsh Kumar Bijlani 734d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FILTER_TLV_FLAGS \ 735d3ade00eSHarsh Kumar Bijlani (HTT_RX_FILTER_TLV_FLAGS_MPDU_START | \ 736d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ 737d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ 738d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ 739d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ 740d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE) 741d3ade00eSHarsh Kumar Bijlani 742d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FILTER_TLV_FLAGS_MON_STATUS_RING \ 743d3ade00eSHarsh Kumar Bijlani (HTT_RX_FILTER_TLV_FLAGS_MPDU_START | \ 744d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ 745d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ 746d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ 747d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ 748d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE) 749d3ade00eSHarsh Kumar Bijlani 750d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FILTER_TLV_FLAGS_MON_BUF_RING \ 751d3ade00eSHarsh Kumar Bijlani (HTT_RX_FILTER_TLV_FLAGS_MPDU_START | \ 752d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_START | \ 753d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_RX_PACKET | \ 754d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_END | \ 755d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MPDU_END | \ 756d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | \ 757d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PER_MSDU_HEADER | \ 758d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_ATTENTION) 759d3ade00eSHarsh Kumar Bijlani 760d3ade00eSHarsh Kumar Bijlani #define HTT_RX_MON_FILTER_TLV_FLAGS_MON_DEST_RING \ 761d3ade00eSHarsh Kumar Bijlani (HTT_RX_FILTER_TLV_FLAGS_MPDU_START | \ 762d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_START | \ 763d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_RX_PACKET | \ 764d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_END | \ 765d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MPDU_END | \ 766d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | \ 767d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PER_MSDU_HEADER | \ 768d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ 769d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ 770d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ 771d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ 772d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE | \ 773d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_PPDU_START_USER_INFO) 774d3ade00eSHarsh Kumar Bijlani 775d3ade00eSHarsh Kumar Bijlani /* msdu start. mpdu end, attention, rx hdr tlv's are not subscribed */ 776d3ade00eSHarsh Kumar Bijlani #define HTT_RX_TLV_FLAGS_RXDMA_RING \ 777d3ade00eSHarsh Kumar Bijlani (HTT_RX_FILTER_TLV_FLAGS_MPDU_START | \ 778d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_RX_PACKET | \ 779d3ade00eSHarsh Kumar Bijlani HTT_RX_FILTER_TLV_FLAGS_MSDU_END) 780d3ade00eSHarsh Kumar Bijlani 781d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_MSG_TYPE GENMASK(7, 0) 782d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_PDEV_ID GENMASK(15, 8) 783d3ade00eSHarsh Kumar Bijlani 784d3ade00eSHarsh Kumar Bijlani struct htt_rx_ring_selection_cfg_cmd { 785d3ade00eSHarsh Kumar Bijlani __le32 info0; 786d3ade00eSHarsh Kumar Bijlani __le32 info1; 787d3ade00eSHarsh Kumar Bijlani __le32 pkt_type_en_flags0; 788d3ade00eSHarsh Kumar Bijlani __le32 pkt_type_en_flags1; 789d3ade00eSHarsh Kumar Bijlani __le32 pkt_type_en_flags2; 790d3ade00eSHarsh Kumar Bijlani __le32 pkt_type_en_flags3; 791d3ade00eSHarsh Kumar Bijlani __le32 rx_filter_tlv; 792d3ade00eSHarsh Kumar Bijlani __le32 rx_packet_offset; 793d3ade00eSHarsh Kumar Bijlani __le32 rx_mpdu_offset; 794d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_offset; 795d3ade00eSHarsh Kumar Bijlani __le32 rx_attn_offset; 796d3ade00eSHarsh Kumar Bijlani __le32 info2; 797d3ade00eSHarsh Kumar Bijlani __le32 reserved[2]; 798d3ade00eSHarsh Kumar Bijlani __le32 rx_mpdu_start_end_mask; 799d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_end_word_mask; 800d3ade00eSHarsh Kumar Bijlani __le32 info3; 801d3ade00eSHarsh Kumar Bijlani } __packed; 802d3ade00eSHarsh Kumar Bijlani 803d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_TLV_DROP_THRESHOLD_VALUE 32 804d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_DEFAULT_DMA_LENGTH 0x7 805d3ade00eSHarsh Kumar Bijlani #define HTT_RX_RING_PKT_TLV_OFFSET 0x1 806d3ade00eSHarsh Kumar Bijlani 807d3ade00eSHarsh Kumar Bijlani struct htt_rx_ring_tlv_filter { 808d3ade00eSHarsh Kumar Bijlani u32 rx_filter; /* see htt_rx_filter_tlv_flags */ 809d3ade00eSHarsh Kumar Bijlani u32 pkt_filter_flags0; /* MGMT */ 810d3ade00eSHarsh Kumar Bijlani u32 pkt_filter_flags1; /* MGMT */ 811d3ade00eSHarsh Kumar Bijlani u32 pkt_filter_flags2; /* CTRL */ 812d3ade00eSHarsh Kumar Bijlani u32 pkt_filter_flags3; /* DATA */ 813d3ade00eSHarsh Kumar Bijlani bool offset_valid; 814d3ade00eSHarsh Kumar Bijlani u16 rx_packet_offset; 815d3ade00eSHarsh Kumar Bijlani u16 rx_header_offset; 816d3ade00eSHarsh Kumar Bijlani u16 rx_mpdu_end_offset; 817d3ade00eSHarsh Kumar Bijlani u16 rx_mpdu_start_offset; 818d3ade00eSHarsh Kumar Bijlani u16 rx_msdu_end_offset; 819d3ade00eSHarsh Kumar Bijlani u16 rx_msdu_start_offset; 820d3ade00eSHarsh Kumar Bijlani u16 rx_attn_offset; 821d3ade00eSHarsh Kumar Bijlani u16 rx_mpdu_start_wmask; 822d3ade00eSHarsh Kumar Bijlani u16 rx_mpdu_end_wmask; 823d3ade00eSHarsh Kumar Bijlani u32 rx_msdu_end_wmask; 824d3ade00eSHarsh Kumar Bijlani u32 conf_len_ctrl; 825d3ade00eSHarsh Kumar Bijlani u32 conf_len_mgmt; 826d3ade00eSHarsh Kumar Bijlani u32 conf_len_data; 827d3ade00eSHarsh Kumar Bijlani u16 rx_drop_threshold; 828d3ade00eSHarsh Kumar Bijlani bool enable_log_mgmt_type; 829d3ade00eSHarsh Kumar Bijlani bool enable_log_ctrl_type; 830d3ade00eSHarsh Kumar Bijlani bool enable_log_data_type; 831d3ade00eSHarsh Kumar Bijlani bool enable_rx_tlv_offset; 832d3ade00eSHarsh Kumar Bijlani u16 rx_tlv_offset; 833d3ade00eSHarsh Kumar Bijlani bool drop_threshold_valid; 834d3ade00eSHarsh Kumar Bijlani bool rxmon_disable; 835d3ade00eSHarsh Kumar Bijlani }; 836d3ade00eSHarsh Kumar Bijlani 837d3ade00eSHarsh Kumar Bijlani #define HTT_STATS_FRAME_CTRL_TYPE_MGMT 0x0 838d3ade00eSHarsh Kumar Bijlani #define HTT_STATS_FRAME_CTRL_TYPE_CTRL 0x1 839d3ade00eSHarsh Kumar Bijlani #define HTT_STATS_FRAME_CTRL_TYPE_DATA 0x2 840d3ade00eSHarsh Kumar Bijlani #define HTT_STATS_FRAME_CTRL_TYPE_RESV 0x3 841d3ade00eSHarsh Kumar Bijlani 842d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_MSG_TYPE GENMASK(7, 0) 843d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_PDEV_ID GENMASK(15, 8) 844d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_RING_ID GENMASK(23, 16) 845d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_SS BIT(24) 846d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO0_PS BIT(25) 847d3ade00eSHarsh Kumar Bijlani 848d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO1_RING_BUFF_SIZE GENMASK(15, 0) 849d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO1_PKT_TYPE GENMASK(18, 16) 850d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_MGMT GENMASK(21, 19) 851d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_CTRL GENMASK(24, 22) 852d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO1_CONF_LEN_DATA GENMASK(27, 25) 853d3ade00eSHarsh Kumar Bijlani 854d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_SELECTION_CFG_CMD_INFO2_PKT_TYPE_EN_FLAG GENMASK(2, 0) 855d3ade00eSHarsh Kumar Bijlani 856d3ade00eSHarsh Kumar Bijlani struct htt_tx_ring_selection_cfg_cmd { 857d3ade00eSHarsh Kumar Bijlani __le32 info0; 858d3ade00eSHarsh Kumar Bijlani __le32 info1; 859d3ade00eSHarsh Kumar Bijlani __le32 info2; 860d3ade00eSHarsh Kumar Bijlani __le32 tlv_filter_mask_in0; 861d3ade00eSHarsh Kumar Bijlani __le32 tlv_filter_mask_in1; 862d3ade00eSHarsh Kumar Bijlani __le32 tlv_filter_mask_in2; 863d3ade00eSHarsh Kumar Bijlani __le32 tlv_filter_mask_in3; 864d3ade00eSHarsh Kumar Bijlani __le32 reserved[3]; 865d3ade00eSHarsh Kumar Bijlani } __packed; 866d3ade00eSHarsh Kumar Bijlani 867d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_TLV_FILTER_MGMT_DMA_LEN GENMASK(3, 0) 868d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_TLV_FILTER_CTRL_DMA_LEN GENMASK(7, 4) 869d3ade00eSHarsh Kumar Bijlani #define HTT_TX_RING_TLV_FILTER_DATA_DMA_LEN GENMASK(11, 8) 870d3ade00eSHarsh Kumar Bijlani 871d3ade00eSHarsh Kumar Bijlani #define HTT_TX_MON_FILTER_HYBRID_MODE \ 872d3ade00eSHarsh Kumar Bijlani (HTT_TX_FILTER_TLV_FLAGS0_RESPONSE_START_STATUS | \ 873d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RESPONSE_END_STATUS | \ 874d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START | \ 875d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_END | \ 876d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START_PPDU | \ 877d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_USER_PPDU | \ 878d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_ACK_OR_BA | \ 879d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_1K_BA | \ 880d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START_PROT | \ 881d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_PROT | \ 882d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_USER_RESPONSE | \ 883d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RECEIVED_RESPONSE_INFO | \ 884d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RECEIVED_RESPONSE_INFO_PART2) 885d3ade00eSHarsh Kumar Bijlani 886d3ade00eSHarsh Kumar Bijlani struct htt_tx_ring_tlv_filter { 887d3ade00eSHarsh Kumar Bijlani u32 tx_mon_downstream_tlv_flags; 888d3ade00eSHarsh Kumar Bijlani u32 tx_mon_upstream_tlv_flags0; 889d3ade00eSHarsh Kumar Bijlani u32 tx_mon_upstream_tlv_flags1; 890d3ade00eSHarsh Kumar Bijlani u32 tx_mon_upstream_tlv_flags2; 891d3ade00eSHarsh Kumar Bijlani bool tx_mon_mgmt_filter; 892d3ade00eSHarsh Kumar Bijlani bool tx_mon_data_filter; 893d3ade00eSHarsh Kumar Bijlani bool tx_mon_ctrl_filter; 894d3ade00eSHarsh Kumar Bijlani u16 tx_mon_pkt_dma_len; 895d3ade00eSHarsh Kumar Bijlani } __packed; 896d3ade00eSHarsh Kumar Bijlani 897d3ade00eSHarsh Kumar Bijlani enum htt_tx_mon_upstream_tlv_flags0 { 898d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RESPONSE_START_STATUS = BIT(1), 899d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RESPONSE_END_STATUS = BIT(2), 900d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START = BIT(3), 901d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_END = BIT(4), 902d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START_PPDU = BIT(5), 903d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_USER_PPDU = BIT(6), 904d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_ACK_OR_BA = BIT(7), 905d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_1K_BA = BIT(8), 906d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_START_PROT = BIT(9), 907d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_PROT = BIT(10), 908d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_TX_FES_STATUS_USER_RESPONSE = BIT(11), 909d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RX_FRAME_BITMAP_ACK = BIT(12), 910d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RX_FRAME_1K_BITMAP_ACK = BIT(13), 911d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_COEX_TX_STATUS = BIT(14), 912d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RECEIVED_RESPONSE_INFO = BIT(15), 913d3ade00eSHarsh Kumar Bijlani HTT_TX_FILTER_TLV_FLAGS0_RECEIVED_RESPONSE_INFO_PART2 = BIT(16), 914d3ade00eSHarsh Kumar Bijlani }; 915d3ade00eSHarsh Kumar Bijlani 916d3ade00eSHarsh Kumar Bijlani #define HTT_TX_FILTER_TLV_FLAGS2_TXPCU_PHYTX_OTHER_TRANSMIT_INFO32 BIT(11) 917d3ade00eSHarsh Kumar Bijlani 918d3ade00eSHarsh Kumar Bijlani /* HTT message target->host */ 919d3ade00eSHarsh Kumar Bijlani 920d3ade00eSHarsh Kumar Bijlani enum htt_t2h_msg_type { 921d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_VERSION_CONF, 922d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PEER_MAP = 0x3, 923d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PEER_UNMAP = 0x4, 924d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_RX_ADDBA = 0x5, 925d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PKTLOG = 0x8, 926d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_SEC_IND = 0xb, 927d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PEER_MAP2 = 0x1e, 928d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PEER_UNMAP2 = 0x1f, 929d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PPDU_STATS_IND = 0x1d, 930d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_EXT_STATS_CONF = 0x1c, 931d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND = 0x24, 932d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_MLO_TIMESTAMP_OFFSET_IND = 0x28, 933d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_PEER_MAP3 = 0x2b, 934d3ade00eSHarsh Kumar Bijlani HTT_T2H_MSG_TYPE_VDEV_TXRX_STATS_PERIODIC_IND = 0x2c, 935d3ade00eSHarsh Kumar Bijlani }; 936d3ade00eSHarsh Kumar Bijlani 937d3ade00eSHarsh Kumar Bijlani #define HTT_TARGET_VERSION_MAJOR 3 938d3ade00eSHarsh Kumar Bijlani 939d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_MSG_TYPE GENMASK(7, 0) 940d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VERSION_CONF_MINOR GENMASK(15, 8) 941d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VERSION_CONF_MAJOR GENMASK(23, 16) 942d3ade00eSHarsh Kumar Bijlani 943d3ade00eSHarsh Kumar Bijlani struct htt_t2h_version_conf_msg { 944d3ade00eSHarsh Kumar Bijlani __le32 version; 945d3ade00eSHarsh Kumar Bijlani } __packed; 946d3ade00eSHarsh Kumar Bijlani 947d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO_VDEV_ID GENMASK(15, 8) 948d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO_PEER_ID GENMASK(31, 16) 949d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO1_MAC_ADDR_H16 GENMASK(15, 0) 950d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO1_HW_PEER_ID GENMASK(31, 16) 951d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO2_AST_HASH_VAL GENMASK(15, 0) 952d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP3_INFO2_HW_PEER_ID GENMASK(15, 0) 953d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP3_INFO2_AST_HASH_VAL GENMASK(31, 16) 954d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO2_NEXT_HOP_M BIT(16) 955d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO2_NEXT_HOP_S 16 956d3ade00eSHarsh Kumar Bijlani 957d3ade00eSHarsh Kumar Bijlani struct htt_t2h_peer_map_event { 958d3ade00eSHarsh Kumar Bijlani __le32 info; 959d3ade00eSHarsh Kumar Bijlani __le32 mac_addr_l32; 960d3ade00eSHarsh Kumar Bijlani __le32 info1; 961d3ade00eSHarsh Kumar Bijlani __le32 info2; 962d3ade00eSHarsh Kumar Bijlani } __packed; 963d3ade00eSHarsh Kumar Bijlani 964d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_UNMAP_INFO_VDEV_ID HTT_T2H_PEER_MAP_INFO_VDEV_ID 965d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_UNMAP_INFO_PEER_ID HTT_T2H_PEER_MAP_INFO_PEER_ID 966d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_UNMAP_INFO1_MAC_ADDR_H16 \ 967d3ade00eSHarsh Kumar Bijlani HTT_T2H_PEER_MAP_INFO1_MAC_ADDR_H16 968d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO1_NEXT_HOP_M HTT_T2H_PEER_MAP_INFO2_NEXT_HOP_M 969d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PEER_MAP_INFO1_NEXT_HOP_S HTT_T2H_PEER_MAP_INFO2_NEXT_HOP_S 970d3ade00eSHarsh Kumar Bijlani 971d3ade00eSHarsh Kumar Bijlani struct htt_t2h_peer_unmap_event { 972d3ade00eSHarsh Kumar Bijlani __le32 info; 973d3ade00eSHarsh Kumar Bijlani __le32 mac_addr_l32; 974d3ade00eSHarsh Kumar Bijlani __le32 info1; 975d3ade00eSHarsh Kumar Bijlani } __packed; 976d3ade00eSHarsh Kumar Bijlani 977d3ade00eSHarsh Kumar Bijlani struct htt_resp_msg { 978d3ade00eSHarsh Kumar Bijlani union { 979d3ade00eSHarsh Kumar Bijlani struct htt_t2h_version_conf_msg version_msg; 980d3ade00eSHarsh Kumar Bijlani struct htt_t2h_peer_map_event peer_map_ev; 981d3ade00eSHarsh Kumar Bijlani struct htt_t2h_peer_unmap_event peer_unmap_ev; 982d3ade00eSHarsh Kumar Bijlani }; 983d3ade00eSHarsh Kumar Bijlani } __packed; 984d3ade00eSHarsh Kumar Bijlani 985d3ade00eSHarsh Kumar Bijlani #define HTT_VDEV_GET_STATS_U64(msg_l32, msg_u32)\ 986d3ade00eSHarsh Kumar Bijlani (((u64)__le32_to_cpu(msg_u32) << 32) | (__le32_to_cpu(msg_l32))) 987d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VDEV_STATS_PERIODIC_MSG_TYPE GENMASK(7, 0) 988d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VDEV_STATS_PERIODIC_PDEV_ID GENMASK(15, 8) 989d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VDEV_STATS_PERIODIC_NUM_VDEV GENMASK(23, 16) 990d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_VDEV_STATS_PERIODIC_PAYLOAD_BYTES GENMASK(15, 0) 991d3ade00eSHarsh Kumar Bijlani #define HTT_VDEV_TXRX_STATS_COMMON_TLV 0 992d3ade00eSHarsh Kumar Bijlani #define HTT_VDEV_TXRX_STATS_HW_STATS_TLV 1 993d3ade00eSHarsh Kumar Bijlani 994d3ade00eSHarsh Kumar Bijlani struct htt_t2h_vdev_txrx_stats_ind { 995d3ade00eSHarsh Kumar Bijlani __le32 vdev_id; 996d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_byte_cnt_lo; 997d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_byte_cnt_hi; 998d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_cnt_lo; 999d3ade00eSHarsh Kumar Bijlani __le32 rx_msdu_cnt_hi; 1000d3ade00eSHarsh Kumar Bijlani __le32 tx_msdu_byte_cnt_lo; 1001d3ade00eSHarsh Kumar Bijlani __le32 tx_msdu_byte_cnt_hi; 1002d3ade00eSHarsh Kumar Bijlani __le32 tx_msdu_cnt_lo; 1003d3ade00eSHarsh Kumar Bijlani __le32 tx_msdu_cnt_hi; 1004d3ade00eSHarsh Kumar Bijlani __le32 tx_retry_cnt_lo; 1005d3ade00eSHarsh Kumar Bijlani __le32 tx_retry_cnt_hi; 1006d3ade00eSHarsh Kumar Bijlani __le32 tx_retry_byte_cnt_lo; 1007d3ade00eSHarsh Kumar Bijlani __le32 tx_retry_byte_cnt_hi; 1008d3ade00eSHarsh Kumar Bijlani __le32 tx_drop_cnt_lo; 1009d3ade00eSHarsh Kumar Bijlani __le32 tx_drop_cnt_hi; 1010d3ade00eSHarsh Kumar Bijlani __le32 tx_drop_byte_cnt_lo; 1011d3ade00eSHarsh Kumar Bijlani __le32 tx_drop_byte_cnt_hi; 1012d3ade00eSHarsh Kumar Bijlani __le32 msdu_ttl_cnt_lo; 1013d3ade00eSHarsh Kumar Bijlani __le32 msdu_ttl_cnt_hi; 1014d3ade00eSHarsh Kumar Bijlani __le32 msdu_ttl_byte_cnt_lo; 1015d3ade00eSHarsh Kumar Bijlani __le32 msdu_ttl_byte_cnt_hi; 1016d3ade00eSHarsh Kumar Bijlani } __packed; 1017d3ade00eSHarsh Kumar Bijlani 1018d3ade00eSHarsh Kumar Bijlani struct htt_t2h_vdev_common_stats_tlv { 1019d3ade00eSHarsh Kumar Bijlani __le32 soc_drop_count_lo; 1020d3ade00eSHarsh Kumar Bijlani __le32 soc_drop_count_hi; 1021d3ade00eSHarsh Kumar Bijlani } __packed; 1022d3ade00eSHarsh Kumar Bijlani 1023d3ade00eSHarsh Kumar Bijlani /* ppdu stats 1024d3ade00eSHarsh Kumar Bijlani * 1025d3ade00eSHarsh Kumar Bijlani * @details 1026d3ade00eSHarsh Kumar Bijlani * The following field definitions describe the format of the HTT target 1027d3ade00eSHarsh Kumar Bijlani * to host ppdu stats indication message. 1028d3ade00eSHarsh Kumar Bijlani * 1029d3ade00eSHarsh Kumar Bijlani * 1030d3ade00eSHarsh Kumar Bijlani * |31 16|15 12|11 10|9 8|7 0 | 1031d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1032d3ade00eSHarsh Kumar Bijlani * | payload_size | rsvd |pdev_id|mac_id | msg type | 1033d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1034d3ade00eSHarsh Kumar Bijlani * | ppdu_id | 1035d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1036d3ade00eSHarsh Kumar Bijlani * | Timestamp in us | 1037d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1038d3ade00eSHarsh Kumar Bijlani * | reserved | 1039d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1040d3ade00eSHarsh Kumar Bijlani * | type-specific stats info | 1041d3ade00eSHarsh Kumar Bijlani * | (see htt_ppdu_stats.h) | 1042d3ade00eSHarsh Kumar Bijlani * |----------------------------------------------------------------------| 1043d3ade00eSHarsh Kumar Bijlani * Header fields: 1044d3ade00eSHarsh Kumar Bijlani * - MSG_TYPE 1045d3ade00eSHarsh Kumar Bijlani * Bits 7:0 1046d3ade00eSHarsh Kumar Bijlani * Purpose: Identifies this is a PPDU STATS indication 1047d3ade00eSHarsh Kumar Bijlani * message. 1048d3ade00eSHarsh Kumar Bijlani * Value: 0x1d 1049d3ade00eSHarsh Kumar Bijlani * - mac_id 1050d3ade00eSHarsh Kumar Bijlani * Bits 9:8 1051d3ade00eSHarsh Kumar Bijlani * Purpose: mac_id of this ppdu_id 1052d3ade00eSHarsh Kumar Bijlani * Value: 0-3 1053d3ade00eSHarsh Kumar Bijlani * - pdev_id 1054d3ade00eSHarsh Kumar Bijlani * Bits 11:10 1055d3ade00eSHarsh Kumar Bijlani * Purpose: pdev_id of this ppdu_id 1056d3ade00eSHarsh Kumar Bijlani * Value: 0-3 1057d3ade00eSHarsh Kumar Bijlani * 0 (for rings at SOC level), 1058d3ade00eSHarsh Kumar Bijlani * 1/2/3 PDEV -> 0/1/2 1059d3ade00eSHarsh Kumar Bijlani * - payload_size 1060d3ade00eSHarsh Kumar Bijlani * Bits 31:16 1061d3ade00eSHarsh Kumar Bijlani * Purpose: total tlv size 1062d3ade00eSHarsh Kumar Bijlani * Value: payload_size in bytes 1063d3ade00eSHarsh Kumar Bijlani */ 1064d3ade00eSHarsh Kumar Bijlani 1065d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PPDU_STATS_INFO_PDEV_ID GENMASK(11, 10) 1066d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_PPDU_STATS_INFO_PAYLOAD_SIZE GENMASK(31, 16) 1067d3ade00eSHarsh Kumar Bijlani 1068d3ade00eSHarsh Kumar Bijlani struct ath12k_htt_ppdu_stats_msg { 1069d3ade00eSHarsh Kumar Bijlani __le32 info; 1070d3ade00eSHarsh Kumar Bijlani __le32 ppdu_id; 1071d3ade00eSHarsh Kumar Bijlani __le32 timestamp; 1072d3ade00eSHarsh Kumar Bijlani __le32 rsvd; 1073d3ade00eSHarsh Kumar Bijlani u8 data[]; 1074d3ade00eSHarsh Kumar Bijlani } __packed; 1075d3ade00eSHarsh Kumar Bijlani 1076d3ade00eSHarsh Kumar Bijlani struct htt_tlv { 1077d3ade00eSHarsh Kumar Bijlani __le32 header; 1078d3ade00eSHarsh Kumar Bijlani u8 value[]; 1079d3ade00eSHarsh Kumar Bijlani } __packed; 1080d3ade00eSHarsh Kumar Bijlani 1081d3ade00eSHarsh Kumar Bijlani #define HTT_TLV_TAG GENMASK(11, 0) 1082d3ade00eSHarsh Kumar Bijlani #define HTT_TLV_LEN GENMASK(23, 12) 1083d3ade00eSHarsh Kumar Bijlani 1084d3ade00eSHarsh Kumar Bijlani enum HTT_PPDU_STATS_BW { 1085d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_5MHZ = 0, 1086d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_10MHZ = 1, 1087d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_20MHZ = 2, 1088d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_40MHZ = 3, 1089d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_80MHZ = 4, 1090d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_160MHZ = 5, /* includes 80+80 */ 1091d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_BANDWIDTH_DYN = 6, 1092d3ade00eSHarsh Kumar Bijlani }; 1093d3ade00eSHarsh Kumar Bijlani 1094d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CMN_FLAGS_FRAME_TYPE_M GENMASK(7, 0) 1095d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CMN_FLAGS_QUEUE_TYPE_M GENMASK(15, 8) 1096d3ade00eSHarsh Kumar Bijlani /* bw - HTT_PPDU_STATS_BW */ 1097d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_CMN_FLAGS_BW_M GENMASK(19, 16) 1098d3ade00eSHarsh Kumar Bijlani 1099d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_common { 1100d3ade00eSHarsh Kumar Bijlani __le32 ppdu_id; 1101d3ade00eSHarsh Kumar Bijlani __le16 sched_cmdid; 1102d3ade00eSHarsh Kumar Bijlani u8 ring_id; 1103d3ade00eSHarsh Kumar Bijlani u8 num_users; 1104d3ade00eSHarsh Kumar Bijlani __le32 flags; /* %HTT_PPDU_STATS_COMMON_FLAGS_*/ 1105d3ade00eSHarsh Kumar Bijlani __le32 chain_mask; 1106d3ade00eSHarsh Kumar Bijlani __le32 fes_duration_us; /* frame exchange sequence */ 1107d3ade00eSHarsh Kumar Bijlani __le32 ppdu_sch_eval_start_tstmp_us; 1108d3ade00eSHarsh Kumar Bijlani __le32 ppdu_sch_end_tstmp_us; 1109d3ade00eSHarsh Kumar Bijlani __le32 ppdu_start_tstmp_us; 1110d3ade00eSHarsh Kumar Bijlani /* BIT [15 : 0] - phy mode (WLAN_PHY_MODE) with which ppdu was transmitted 1111d3ade00eSHarsh Kumar Bijlani * BIT [31 : 16] - bandwidth (in MHz) with which ppdu was transmitted 1112d3ade00eSHarsh Kumar Bijlani */ 1113d3ade00eSHarsh Kumar Bijlani __le16 phy_mode; 1114d3ade00eSHarsh Kumar Bijlani __le16 bw_mhz; 1115d3ade00eSHarsh Kumar Bijlani } __packed; 1116d3ade00eSHarsh Kumar Bijlani 1117d3ade00eSHarsh Kumar Bijlani enum htt_ppdu_stats_gi { 1118d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_SGI_0_8_US, 1119d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_SGI_0_4_US, 1120d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_SGI_1_6_US, 1121d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_SGI_3_2_US, 1122d3ade00eSHarsh Kumar Bijlani }; 1123d3ade00eSHarsh Kumar Bijlani 1124d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_INFO0_USER_POS_M GENMASK(3, 0) 1125d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_INFO0_MU_GROUP_ID_M GENMASK(11, 4) 1126d3ade00eSHarsh Kumar Bijlani 1127d3ade00eSHarsh Kumar Bijlani enum HTT_PPDU_STATS_PPDU_TYPE { 1128d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_SU, 1129d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_MU_MIMO, 1130d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_MU_OFDMA, 1131d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_MU_MIMO_OFDMA, 1132d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_UL_TRIG, 1133d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_BURST_BCN, 1134d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_UL_BSR_RESP, 1135d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_UL_BSR_TRIG, 1136d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_UL_RESP, 1137d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_PPDU_TYPE_MAX 1138d3ade00eSHarsh Kumar Bijlani }; 1139d3ade00eSHarsh Kumar Bijlani 1140d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_INFO1_RESP_TYPE_VALD_M BIT(0) 1141d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_INFO1_PPDU_TYPE_M GENMASK(5, 1) 1142d3ade00eSHarsh Kumar Bijlani 1143d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_LTF_SIZE_M GENMASK(1, 0) 1144d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_STBC_M BIT(2) 1145d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_HE_RE_M BIT(3) 1146d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_TXBF_M GENMASK(7, 4) 1147d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_BW_M GENMASK(11, 8) 1148d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_NSS_M GENMASK(15, 12) 1149d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_MCS_M GENMASK(19, 16) 1150d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_PREAMBLE_M GENMASK(23, 20) 1151d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_GI_M GENMASK(27, 24) 1152d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_DCM_M BIT(28) 1153d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_FLAGS_LDPC_M BIT(29) 1154d3ade00eSHarsh Kumar Bijlani 1155d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_PPDU_TYPE(_val) \ 1156d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_INFO1_PPDU_TYPE_M) 1157d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_PREAMBLE(_val) \ 1158d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_PREAMBLE_M) 1159d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_BW(_val) \ 1160d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_BW_M) 1161d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_NSS(_val) \ 1162d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_NSS_M) 1163d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_MCS(_val) \ 1164d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_MCS_M) 1165d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_GI(_val) \ 1166d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_GI_M) 1167d3ade00eSHarsh Kumar Bijlani #define HTT_USR_RATE_DCM(_val) \ 1168d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USER_RATE_FLAGS_DCM_M) 1169d3ade00eSHarsh Kumar Bijlani 1170d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0) 1171d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_STBC_M BIT(2) 1172d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_HE_RE_M BIT(3) 1173d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_TXBF_M GENMASK(7, 4) 1174d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_BW_M GENMASK(11, 8) 1175d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_NSS_M GENMASK(15, 12) 1176d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_MCS_M GENMASK(19, 16) 1177d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_PREAMBLE_M GENMASK(23, 20) 1178d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_GI_M GENMASK(27, 24) 1179d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_DCM_M BIT(28) 1180d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LDPC_M BIT(29) 1181d3ade00eSHarsh Kumar Bijlani 1182d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_user_rate { 1183d3ade00eSHarsh Kumar Bijlani u8 tid_num; 1184d3ade00eSHarsh Kumar Bijlani u8 reserved0; 1185d3ade00eSHarsh Kumar Bijlani __le16 sw_peer_id; 1186d3ade00eSHarsh Kumar Bijlani __le32 info0; /* %HTT_PPDU_STATS_USER_RATE_INFO0_*/ 1187d3ade00eSHarsh Kumar Bijlani __le16 ru_end; 1188d3ade00eSHarsh Kumar Bijlani __le16 ru_start; 1189d3ade00eSHarsh Kumar Bijlani __le16 resp_ru_end; 1190d3ade00eSHarsh Kumar Bijlani __le16 resp_ru_start; 1191d3ade00eSHarsh Kumar Bijlani __le32 info1; /* %HTT_PPDU_STATS_USER_RATE_INFO1_ */ 1192d3ade00eSHarsh Kumar Bijlani __le32 rate_flags; /* %HTT_PPDU_STATS_USER_RATE_FLAGS_ */ 1193d3ade00eSHarsh Kumar Bijlani /* Note: resp_rate_info is only valid for if resp_type is UL */ 1194d3ade00eSHarsh Kumar Bijlani __le32 resp_rate_flags; /* %HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_ */ 1195d3ade00eSHarsh Kumar Bijlani } __packed; 1196d3ade00eSHarsh Kumar Bijlani 1197d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_RATECODE_M GENMASK(7, 0) 1198d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_IS_AMPDU_M BIT(8) 1199d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_BA_ACK_FAILED_M GENMASK(10, 9) 1200d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_BW_M GENMASK(13, 11) 1201d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_SGI_M BIT(14) 1202d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_TX_INFO_FLAGS_PEERID_M GENMASK(31, 16) 1203d3ade00eSHarsh Kumar Bijlani 1204d3ade00eSHarsh Kumar Bijlani #define HTT_TX_INFO_IS_AMSDU(_flags) \ 1205d3ade00eSHarsh Kumar Bijlani u32_get_bits(_flags, HTT_PPDU_STATS_TX_INFO_FLAGS_IS_AMPDU_M) 1206d3ade00eSHarsh Kumar Bijlani #define HTT_TX_INFO_BA_ACK_FAILED(_flags) \ 1207d3ade00eSHarsh Kumar Bijlani u32_get_bits(_flags, HTT_PPDU_STATS_TX_INFO_FLAGS_BA_ACK_FAILED_M) 1208d3ade00eSHarsh Kumar Bijlani #define HTT_TX_INFO_RATECODE(_flags) \ 1209d3ade00eSHarsh Kumar Bijlani u32_get_bits(_flags, HTT_PPDU_STATS_TX_INFO_FLAGS_RATECODE_M) 1210d3ade00eSHarsh Kumar Bijlani #define HTT_TX_INFO_PEERID(_flags) \ 1211d3ade00eSHarsh Kumar Bijlani u32_get_bits(_flags, HTT_PPDU_STATS_TX_INFO_FLAGS_PEERID_M) 1212d3ade00eSHarsh Kumar Bijlani 1213d3ade00eSHarsh Kumar Bijlani enum htt_ppdu_stats_usr_compln_status { 1214d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_USER_STATUS_OK, 1215d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_USER_STATUS_FILTERED, 1216d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_USER_STATUS_RESP_TIMEOUT, 1217d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_USER_STATUS_RESP_MISMATCH, 1218d3ade00eSHarsh Kumar Bijlani HTT_PPDU_STATS_USER_STATUS_ABORT, 1219d3ade00eSHarsh Kumar Bijlani }; 1220d3ade00eSHarsh Kumar Bijlani 1221d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_LONG_RETRY_M GENMASK(3, 0) 1222d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_SHORT_RETRY_M GENMASK(7, 4) 1223d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_IS_AMPDU_M BIT(8) 1224d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_RESP_TYPE_M GENMASK(12, 9) 1225d3ade00eSHarsh Kumar Bijlani 1226d3ade00eSHarsh Kumar Bijlani #define HTT_USR_CMPLTN_IS_AMPDU(_val) \ 1227d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_IS_AMPDU_M) 1228d3ade00eSHarsh Kumar Bijlani #define HTT_USR_CMPLTN_LONG_RETRY(_val) \ 1229d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_LONG_RETRY_M) 1230d3ade00eSHarsh Kumar Bijlani #define HTT_USR_CMPLTN_SHORT_RETRY(_val) \ 1231d3ade00eSHarsh Kumar Bijlani le32_get_bits(_val, HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_SHORT_RETRY_M) 1232d3ade00eSHarsh Kumar Bijlani 1233d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_usr_cmpltn_cmn { 1234d3ade00eSHarsh Kumar Bijlani u8 status; 1235d3ade00eSHarsh Kumar Bijlani u8 tid_num; 1236d3ade00eSHarsh Kumar Bijlani __le16 sw_peer_id; 1237d3ade00eSHarsh Kumar Bijlani /* RSSI value of last ack packet (units = dB above noise floor) */ 1238d3ade00eSHarsh Kumar Bijlani __le32 ack_rssi; 1239d3ade00eSHarsh Kumar Bijlani __le16 mpdu_tried; 1240d3ade00eSHarsh Kumar Bijlani __le16 mpdu_success; 1241d3ade00eSHarsh Kumar Bijlani __le32 flags; /* %HTT_PPDU_STATS_USR_CMPLTN_CMN_FLAGS_LONG_RETRIES*/ 1242d3ade00eSHarsh Kumar Bijlani } __packed; 1243d3ade00eSHarsh Kumar Bijlani 1244d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_ACK_BA_INFO_NUM_MPDU_M GENMASK(8, 0) 1245d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_ACK_BA_INFO_NUM_MSDU_M GENMASK(24, 9) 1246d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_ACK_BA_INFO_TID_NUM GENMASK(31, 25) 1247d3ade00eSHarsh Kumar Bijlani 1248d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_NON_QOS_TID 16 1249d3ade00eSHarsh Kumar Bijlani 1250d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_usr_cmpltn_ack_ba_status { 1251d3ade00eSHarsh Kumar Bijlani __le32 ppdu_id; 1252d3ade00eSHarsh Kumar Bijlani __le16 sw_peer_id; 1253d3ade00eSHarsh Kumar Bijlani __le16 reserved0; 1254d3ade00eSHarsh Kumar Bijlani __le32 info; /* %HTT_PPDU_STATS_USR_CMPLTN_CMN_INFO_ */ 1255d3ade00eSHarsh Kumar Bijlani __le16 current_seq; 1256d3ade00eSHarsh Kumar Bijlani __le16 start_seq; 1257d3ade00eSHarsh Kumar Bijlani __le32 success_bytes; 1258d3ade00eSHarsh Kumar Bijlani } __packed; 1259d3ade00eSHarsh Kumar Bijlani 1260d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_user_stats { 1261d3ade00eSHarsh Kumar Bijlani u16 peer_id; 1262d3ade00eSHarsh Kumar Bijlani u16 delay_ba; 1263d3ade00eSHarsh Kumar Bijlani u32 tlv_flags; 1264d3ade00eSHarsh Kumar Bijlani bool is_valid_peer_id; 1265d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_user_rate rate; 1266d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_usr_cmpltn_cmn cmpltn_cmn; 1267d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_usr_cmpltn_ack_ba_status ack_ba; 1268d3ade00eSHarsh Kumar Bijlani }; 1269d3ade00eSHarsh Kumar Bijlani 1270d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_STATS_MAX_USERS 8 1271d3ade00eSHarsh Kumar Bijlani #define HTT_PPDU_DESC_MAX_DEPTH 16 1272d3ade00eSHarsh Kumar Bijlani 1273d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats { 1274d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_common common; 1275d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_user_stats user_stats[HTT_PPDU_STATS_MAX_USERS]; 1276d3ade00eSHarsh Kumar Bijlani }; 1277d3ade00eSHarsh Kumar Bijlani 1278d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats_info { 1279d3ade00eSHarsh Kumar Bijlani u32 tlv_bitmap; 1280d3ade00eSHarsh Kumar Bijlani u32 ppdu_id; 1281d3ade00eSHarsh Kumar Bijlani u32 frame_type; 1282d3ade00eSHarsh Kumar Bijlani u32 frame_ctrl; 1283d3ade00eSHarsh Kumar Bijlani u32 delay_ba; 1284d3ade00eSHarsh Kumar Bijlani u32 bar_num_users; 1285d3ade00eSHarsh Kumar Bijlani struct htt_ppdu_stats ppdu_stats; 1286d3ade00eSHarsh Kumar Bijlani struct list_head list; 1287d3ade00eSHarsh Kumar Bijlani }; 1288d3ade00eSHarsh Kumar Bijlani 1289d3ade00eSHarsh Kumar Bijlani /* @brief target -> host MLO offset indiciation message 1290d3ade00eSHarsh Kumar Bijlani * 1291d3ade00eSHarsh Kumar Bijlani * @details 1292d3ade00eSHarsh Kumar Bijlani * The following field definitions describe the format of the HTT target 1293d3ade00eSHarsh Kumar Bijlani * to host mlo offset indication message. 1294d3ade00eSHarsh Kumar Bijlani * 1295d3ade00eSHarsh Kumar Bijlani * 1296d3ade00eSHarsh Kumar Bijlani * |31 29|28 |26|25 22|21 16|15 13|12 10 |9 8|7 0| 1297d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1298d3ade00eSHarsh Kumar Bijlani * | rsvd1 | mac_freq |chip_id |pdev_id|msgtype| 1299d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1300d3ade00eSHarsh Kumar Bijlani * | sync_timestamp_lo_us | 1301d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1302d3ade00eSHarsh Kumar Bijlani * | sync_timestamp_hi_us | 1303d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1304d3ade00eSHarsh Kumar Bijlani * | mlo_offset_lo | 1305d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1306d3ade00eSHarsh Kumar Bijlani * | mlo_offset_hi | 1307d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1308d3ade00eSHarsh Kumar Bijlani * | mlo_offset_clcks | 1309d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1310d3ade00eSHarsh Kumar Bijlani * | rsvd2 | mlo_comp_clks |mlo_comp_us | 1311d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1312d3ade00eSHarsh Kumar Bijlani * | rsvd3 |mlo_comp_timer | 1313d3ade00eSHarsh Kumar Bijlani * |---------------------------------------------------------------------| 1314d3ade00eSHarsh Kumar Bijlani * Header fields 1315d3ade00eSHarsh Kumar Bijlani * - MSG_TYPE 1316d3ade00eSHarsh Kumar Bijlani * Bits 7:0 1317d3ade00eSHarsh Kumar Bijlani * Purpose: Identifies this is a MLO offset indication msg 1318d3ade00eSHarsh Kumar Bijlani * - PDEV_ID 1319d3ade00eSHarsh Kumar Bijlani * Bits 9:8 1320d3ade00eSHarsh Kumar Bijlani * Purpose: Pdev of this MLO offset 1321d3ade00eSHarsh Kumar Bijlani * - CHIP_ID 1322d3ade00eSHarsh Kumar Bijlani * Bits 12:10 1323d3ade00eSHarsh Kumar Bijlani * Purpose: chip_id of this MLO offset 1324d3ade00eSHarsh Kumar Bijlani * - MAC_FREQ 1325d3ade00eSHarsh Kumar Bijlani * Bits 28:13 1326d3ade00eSHarsh Kumar Bijlani * - SYNC_TIMESTAMP_LO_US 1327d3ade00eSHarsh Kumar Bijlani * Purpose: clock frequency of the mac HW block in MHz 1328d3ade00eSHarsh Kumar Bijlani * Bits: 31:0 1329d3ade00eSHarsh Kumar Bijlani * Purpose: lower 32 bits of the WLAN global time stamp at which 1330d3ade00eSHarsh Kumar Bijlani * last sync interrupt was received 1331d3ade00eSHarsh Kumar Bijlani * - SYNC_TIMESTAMP_HI_US 1332d3ade00eSHarsh Kumar Bijlani * Bits: 31:0 1333d3ade00eSHarsh Kumar Bijlani * Purpose: upper 32 bits of WLAN global time stamp at which 1334d3ade00eSHarsh Kumar Bijlani * last sync interrupt was received 1335d3ade00eSHarsh Kumar Bijlani * - MLO_OFFSET_LO 1336d3ade00eSHarsh Kumar Bijlani * Bits: 31:0 1337d3ade00eSHarsh Kumar Bijlani * Purpose: lower 32 bits of the MLO offset in us 1338d3ade00eSHarsh Kumar Bijlani * - MLO_OFFSET_HI 1339d3ade00eSHarsh Kumar Bijlani * Bits: 31:0 1340d3ade00eSHarsh Kumar Bijlani * Purpose: upper 32 bits of the MLO offset in us 1341d3ade00eSHarsh Kumar Bijlani * - MLO_COMP_US 1342d3ade00eSHarsh Kumar Bijlani * Bits: 15:0 1343d3ade00eSHarsh Kumar Bijlani * Purpose: MLO time stamp compensation applied in us 1344d3ade00eSHarsh Kumar Bijlani * - MLO_COMP_CLCKS 1345d3ade00eSHarsh Kumar Bijlani * Bits: 25:16 1346d3ade00eSHarsh Kumar Bijlani * Purpose: MLO time stamp compensation applied in clock ticks 1347d3ade00eSHarsh Kumar Bijlani * - MLO_COMP_TIMER 1348d3ade00eSHarsh Kumar Bijlani * Bits: 21:0 1349d3ade00eSHarsh Kumar Bijlani * Purpose: Periodic timer at which compensation is applied 1350d3ade00eSHarsh Kumar Bijlani */ 1351d3ade00eSHarsh Kumar Bijlani 1352d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_MLO_OFFSET_INFO_MSG_TYPE GENMASK(7, 0) 1353d3ade00eSHarsh Kumar Bijlani #define HTT_T2H_MLO_OFFSET_INFO_PDEV_ID GENMASK(9, 8) 1354d3ade00eSHarsh Kumar Bijlani 1355d3ade00eSHarsh Kumar Bijlani struct ath12k_htt_mlo_offset_msg { 1356d3ade00eSHarsh Kumar Bijlani __le32 info; 1357d3ade00eSHarsh Kumar Bijlani __le32 sync_timestamp_lo_us; 1358d3ade00eSHarsh Kumar Bijlani __le32 sync_timestamp_hi_us; 1359d3ade00eSHarsh Kumar Bijlani __le32 mlo_offset_hi; 1360d3ade00eSHarsh Kumar Bijlani __le32 mlo_offset_lo; 1361d3ade00eSHarsh Kumar Bijlani __le32 mlo_offset_clks; 1362d3ade00eSHarsh Kumar Bijlani __le32 mlo_comp_clks; 1363d3ade00eSHarsh Kumar Bijlani __le32 mlo_comp_timer; 1364d3ade00eSHarsh Kumar Bijlani } __packed; 1365d3ade00eSHarsh Kumar Bijlani 1366d3ade00eSHarsh Kumar Bijlani /* @brief host -> target FW extended statistics retrieve 1367d3ade00eSHarsh Kumar Bijlani * 1368d3ade00eSHarsh Kumar Bijlani * @details 1369d3ade00eSHarsh Kumar Bijlani * The following field definitions describe the format of the HTT host 1370d3ade00eSHarsh Kumar Bijlani * to target FW extended stats retrieve message. 1371d3ade00eSHarsh Kumar Bijlani * The message specifies the type of stats the host wants to retrieve. 1372d3ade00eSHarsh Kumar Bijlani * 1373d3ade00eSHarsh Kumar Bijlani * |31 24|23 16|15 8|7 0| 1374d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1375d3ade00eSHarsh Kumar Bijlani * | reserved | stats type | pdev_mask | msg type | 1376d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1377d3ade00eSHarsh Kumar Bijlani * | config param [0] | 1378d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1379d3ade00eSHarsh Kumar Bijlani * | config param [1] | 1380d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1381d3ade00eSHarsh Kumar Bijlani * | config param [2] | 1382d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1383d3ade00eSHarsh Kumar Bijlani * | config param [3] | 1384d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1385d3ade00eSHarsh Kumar Bijlani * | reserved | 1386d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1387d3ade00eSHarsh Kumar Bijlani * | cookie LSBs | 1388d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1389d3ade00eSHarsh Kumar Bijlani * | cookie MSBs | 1390d3ade00eSHarsh Kumar Bijlani * |-----------------------------------------------------------| 1391d3ade00eSHarsh Kumar Bijlani * Header fields: 1392d3ade00eSHarsh Kumar Bijlani * - MSG_TYPE 1393d3ade00eSHarsh Kumar Bijlani * Bits 7:0 1394d3ade00eSHarsh Kumar Bijlani * Purpose: identifies this is a extended stats upload request message 1395d3ade00eSHarsh Kumar Bijlani * Value: 0x10 1396d3ade00eSHarsh Kumar Bijlani * - PDEV_MASK 1397d3ade00eSHarsh Kumar Bijlani * Bits 8:15 1398d3ade00eSHarsh Kumar Bijlani * Purpose: identifies the mask of PDEVs to retrieve stats from 1399d3ade00eSHarsh Kumar Bijlani * Value: This is a overloaded field, refer to usage and interpretation of 1400d3ade00eSHarsh Kumar Bijlani * PDEV in interface document. 1401d3ade00eSHarsh Kumar Bijlani * Bit 8 : Reserved for SOC stats 1402d3ade00eSHarsh Kumar Bijlani * Bit 9 - 15 : Indicates PDEV_MASK in DBDC 1403d3ade00eSHarsh Kumar Bijlani * Indicates MACID_MASK in DBS 1404d3ade00eSHarsh Kumar Bijlani * - STATS_TYPE 1405d3ade00eSHarsh Kumar Bijlani * Bits 23:16 1406d3ade00eSHarsh Kumar Bijlani * Purpose: identifies which FW statistics to upload 1407d3ade00eSHarsh Kumar Bijlani * Value: Defined by htt_dbg_ext_stats_type (see htt_stats.h) 1408d3ade00eSHarsh Kumar Bijlani * - Reserved 1409d3ade00eSHarsh Kumar Bijlani * Bits 31:24 1410d3ade00eSHarsh Kumar Bijlani * - CONFIG_PARAM [0] 1411d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1412d3ade00eSHarsh Kumar Bijlani * Purpose: give an opaque configuration value to the specified stats type 1413d3ade00eSHarsh Kumar Bijlani * Value: stats-type specific configuration value 1414d3ade00eSHarsh Kumar Bijlani * Refer to htt_stats.h for interpretation for each stats sub_type 1415d3ade00eSHarsh Kumar Bijlani * - CONFIG_PARAM [1] 1416d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1417d3ade00eSHarsh Kumar Bijlani * Purpose: give an opaque configuration value to the specified stats type 1418d3ade00eSHarsh Kumar Bijlani * Value: stats-type specific configuration value 1419d3ade00eSHarsh Kumar Bijlani * Refer to htt_stats.h for interpretation for each stats sub_type 1420d3ade00eSHarsh Kumar Bijlani * - CONFIG_PARAM [2] 1421d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1422d3ade00eSHarsh Kumar Bijlani * Purpose: give an opaque configuration value to the specified stats type 1423d3ade00eSHarsh Kumar Bijlani * Value: stats-type specific configuration value 1424d3ade00eSHarsh Kumar Bijlani * Refer to htt_stats.h for interpretation for each stats sub_type 1425d3ade00eSHarsh Kumar Bijlani * - CONFIG_PARAM [3] 1426d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1427d3ade00eSHarsh Kumar Bijlani * Purpose: give an opaque configuration value to the specified stats type 1428d3ade00eSHarsh Kumar Bijlani * Value: stats-type specific configuration value 1429d3ade00eSHarsh Kumar Bijlani * Refer to htt_stats.h for interpretation for each stats sub_type 1430d3ade00eSHarsh Kumar Bijlani * - Reserved [31:0] for future use. 1431d3ade00eSHarsh Kumar Bijlani * - COOKIE_LSBS 1432d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1433d3ade00eSHarsh Kumar Bijlani * Purpose: Provide a mechanism to match a target->host stats confirmation 1434d3ade00eSHarsh Kumar Bijlani * message with its preceding host->target stats request message. 1435d3ade00eSHarsh Kumar Bijlani * Value: LSBs of the opaque cookie specified by the host-side requestor 1436d3ade00eSHarsh Kumar Bijlani * - COOKIE_MSBS 1437d3ade00eSHarsh Kumar Bijlani * Bits 31:0 1438d3ade00eSHarsh Kumar Bijlani * Purpose: Provide a mechanism to match a target->host stats confirmation 1439d3ade00eSHarsh Kumar Bijlani * message with its preceding host->target stats request message. 1440d3ade00eSHarsh Kumar Bijlani * Value: MSBs of the opaque cookie specified by the host-side requestor 1441d3ade00eSHarsh Kumar Bijlani */ 1442d3ade00eSHarsh Kumar Bijlani 1443d3ade00eSHarsh Kumar Bijlani struct htt_ext_stats_cfg_hdr { 1444d3ade00eSHarsh Kumar Bijlani u8 msg_type; 1445d3ade00eSHarsh Kumar Bijlani u8 pdev_mask; 1446d3ade00eSHarsh Kumar Bijlani u8 stats_type; 1447d3ade00eSHarsh Kumar Bijlani u8 reserved; 1448d3ade00eSHarsh Kumar Bijlani } __packed; 1449d3ade00eSHarsh Kumar Bijlani 1450d3ade00eSHarsh Kumar Bijlani struct htt_ext_stats_cfg_cmd { 1451d3ade00eSHarsh Kumar Bijlani struct htt_ext_stats_cfg_hdr hdr; 1452d3ade00eSHarsh Kumar Bijlani __le32 cfg_param0; 1453d3ade00eSHarsh Kumar Bijlani __le32 cfg_param1; 1454d3ade00eSHarsh Kumar Bijlani __le32 cfg_param2; 1455d3ade00eSHarsh Kumar Bijlani __le32 cfg_param3; 1456d3ade00eSHarsh Kumar Bijlani __le32 reserved; 1457d3ade00eSHarsh Kumar Bijlani __le32 cookie_lsb; 1458d3ade00eSHarsh Kumar Bijlani __le32 cookie_msb; 1459d3ade00eSHarsh Kumar Bijlani } __packed; 1460d3ade00eSHarsh Kumar Bijlani 1461d3ade00eSHarsh Kumar Bijlani /* htt stats config default params */ 1462d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_RESET_START_OFFSET 0 1463d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ALL_HWQS 0xffffffff 1464d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ALL_TXQS 0xffffffff 1465d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ALL_CMDQS 0xffff 1466d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ALL_RINGS 0xffff 1467d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ACTIVE_PEERS 0xff 1468d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_CCA_CUMULATIVE 0x00 1469d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_CFG0_ACTIVE_VDEVS 0x00 1470d3ade00eSHarsh Kumar Bijlani 1471d3ade00eSHarsh Kumar Bijlani /* HTT_DBG_EXT_STATS_PEER_INFO 1472d3ade00eSHarsh Kumar Bijlani * PARAMS: 1473d3ade00eSHarsh Kumar Bijlani * @config_param0: 1474d3ade00eSHarsh Kumar Bijlani * [Bit0] - [0] for sw_peer_id, [1] for mac_addr based request 1475d3ade00eSHarsh Kumar Bijlani * [Bit15 : Bit 1] htt_peer_stats_req_mode_t 1476d3ade00eSHarsh Kumar Bijlani * [Bit31 : Bit16] sw_peer_id 1477d3ade00eSHarsh Kumar Bijlani * @config_param1: 1478d3ade00eSHarsh Kumar Bijlani * peer_stats_req_type_mask:32 (enum htt_peer_stats_tlv_enum) 1479d3ade00eSHarsh Kumar Bijlani * 0 bit htt_peer_stats_cmn_tlv 1480d3ade00eSHarsh Kumar Bijlani * 1 bit htt_peer_details_tlv 1481d3ade00eSHarsh Kumar Bijlani * 2 bit htt_tx_peer_rate_stats_tlv 1482d3ade00eSHarsh Kumar Bijlani * 3 bit htt_rx_peer_rate_stats_tlv 1483d3ade00eSHarsh Kumar Bijlani * 4 bit htt_tx_tid_stats_tlv/htt_tx_tid_stats_v1_tlv 1484d3ade00eSHarsh Kumar Bijlani * 5 bit htt_rx_tid_stats_tlv 1485d3ade00eSHarsh Kumar Bijlani * 6 bit htt_msdu_flow_stats_tlv 1486d3ade00eSHarsh Kumar Bijlani * @config_param2: [Bit31 : Bit0] mac_addr31to0 1487d3ade00eSHarsh Kumar Bijlani * @config_param3: [Bit15 : Bit0] mac_addr47to32 1488d3ade00eSHarsh Kumar Bijlani * [Bit31 : Bit16] reserved 1489d3ade00eSHarsh Kumar Bijlani */ 1490d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_PEER_INFO_MAC_ADDR BIT(0) 1491d3ade00eSHarsh Kumar Bijlani #define HTT_STAT_DEFAULT_PEER_REQ_TYPE 0x7f 1492d3ade00eSHarsh Kumar Bijlani 1493d3ade00eSHarsh Kumar Bijlani /* Used to set different configs to the specified stats type.*/ 1494d3ade00eSHarsh Kumar Bijlani struct htt_ext_stats_cfg_params { 1495d3ade00eSHarsh Kumar Bijlani u32 cfg0; 1496d3ade00eSHarsh Kumar Bijlani u32 cfg1; 1497d3ade00eSHarsh Kumar Bijlani u32 cfg2; 1498d3ade00eSHarsh Kumar Bijlani u32 cfg3; 1499d3ade00eSHarsh Kumar Bijlani }; 1500d3ade00eSHarsh Kumar Bijlani 1501d3ade00eSHarsh Kumar Bijlani enum vdev_stats_offload_timer_duration { 1502d3ade00eSHarsh Kumar Bijlani ATH12K_STATS_TIMER_DUR_500MS = 1, 1503d3ade00eSHarsh Kumar Bijlani ATH12K_STATS_TIMER_DUR_1SEC = 2, 1504d3ade00eSHarsh Kumar Bijlani ATH12K_STATS_TIMER_DUR_2SEC = 3, 1505d3ade00eSHarsh Kumar Bijlani }; 1506d3ade00eSHarsh Kumar Bijlani 1507d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_L32_0 GENMASK(7, 0) 1508d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_L32_1 GENMASK(15, 8) 1509d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_L32_2 GENMASK(23, 16) 1510d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_L32_3 GENMASK(31, 24) 1511d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_H16_0 GENMASK(7, 0) 1512d3ade00eSHarsh Kumar Bijlani #define ATH12K_HTT_MAC_ADDR_H16_1 GENMASK(15, 8) 1513d3ade00eSHarsh Kumar Bijlani 1514d3ade00eSHarsh Kumar Bijlani struct htt_mac_addr { 1515d3ade00eSHarsh Kumar Bijlani __le32 mac_addr_l32; 1516d3ade00eSHarsh Kumar Bijlani __le32 mac_addr_h16; 1517d3ade00eSHarsh Kumar Bijlani } __packed; 1518d3ade00eSHarsh Kumar Bijlani 1519*d637c58aSHarsh Kumar Bijlani int ath12k_dp_htt_connect(struct ath12k_dp *dp); 1520611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_srng_setup(struct ath12k_base *ab, u32 ring_id, 1521611297eeSHarsh Kumar Bijlani int mac_id, enum hal_ring_type ring_type); 1522611297eeSHarsh Kumar Bijlani 1523611297eeSHarsh Kumar Bijlani void ath12k_dp_htt_htc_t2h_msg_handler(struct ath12k_base *ab, 1524611297eeSHarsh Kumar Bijlani struct sk_buff *skb); 152571a3f92cSHarsh Kumar Bijlani int ath12k_dp_htt_tlv_iter(struct ath12k_base *ab, const void *ptr, size_t len, 152671a3f92cSHarsh Kumar Bijlani int (*iter)(struct ath12k_base *ar, u16 tag, u16 len, 152771a3f92cSHarsh Kumar Bijlani const void *ptr, void *data), 152871a3f92cSHarsh Kumar Bijlani void *data); 1529611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_h2t_ver_req_msg(struct ath12k_base *ab); 1530611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_h2t_ppdu_stats_req(struct ath12k *ar, u32 mask); 1531611297eeSHarsh Kumar Bijlani int 1532611297eeSHarsh Kumar Bijlani ath12k_dp_tx_htt_h2t_ext_stats_req(struct ath12k *ar, u8 type, 1533611297eeSHarsh Kumar Bijlani struct htt_ext_stats_cfg_params *cfg_params, 1534611297eeSHarsh Kumar Bijlani u64 cookie); 1535611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_rx_monitor_mode_ring_config(struct ath12k *ar, bool reset); 1536611297eeSHarsh Kumar Bijlani 1537611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_rx_filter_setup(struct ath12k_base *ab, u32 ring_id, 1538611297eeSHarsh Kumar Bijlani int mac_id, enum hal_ring_type ring_type, 1539611297eeSHarsh Kumar Bijlani int rx_buf_size, 1540611297eeSHarsh Kumar Bijlani struct htt_rx_ring_tlv_filter *tlv_filter); 1541611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_tx_filter_setup(struct ath12k_base *ab, u32 ring_id, 1542611297eeSHarsh Kumar Bijlani int mac_id, enum hal_ring_type ring_type, 1543611297eeSHarsh Kumar Bijlani int tx_buf_size, 1544611297eeSHarsh Kumar Bijlani struct htt_tx_ring_tlv_filter *htt_tlv_filter); 1545611297eeSHarsh Kumar Bijlani int ath12k_dp_tx_htt_monitor_mode_ring_config(struct ath12k *ar, bool reset); 1546d3ade00eSHarsh Kumar Bijlani #endif 1547