Loading fw/htt.h +162 −57 Original line number Diff line number Diff line Loading @@ -234,9 +234,12 @@ * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. * 3.110 Add more word_mask fields in htt_tx_monitor_cfg_t. * 3.111 Add RXPCU filter enable flag in RX_RING_SELECTION_CFG msg. * 3.112 Add logical_link_id field in rx_peer_metadata_v1. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_CURRENT_VERSION_MINOR 112 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -420,7 +423,7 @@ PREPACK struct htt_option_tlv_ll_bus_addr_size_t { * downloads over the host --> target bus are as slow as or slower than * the transmissions over the WLAN PHY. For cases where the bus is faster * than the WLAN PHY, the target will transmit relatively large A-MPDUs, * and consquently will send one TX_COMPL_IND message that covers several * and consequently will send one TX_COMPL_IND message that covers several * tx frames. For cases where the WLAN PHY is faster than the bus, * the target will end up transmitting very short A-MPDUs, and consequently * sending many TX_COMPL_IND messages, which each cover a very small number Loading Loading @@ -463,7 +466,7 @@ PREPACK struct htt_option_tlv_hl_suppress_tx_compl_ind_t { * The MAX_TX_QUEUE_GROUPS TLV can be sent from the target to the host as * a suffix to the VERSION_CONF message. If the host has specified in the * VER_REQ message a limit on the number of tx queue groups the host can * supprt, the target shall limit its specification of the maximum tx groups * support, the target shall limit its specification of the maximum tx groups * to be no larger than this host-specified limit. * * If the target does not provide a MAX_TX_QUEUE_GROUPS TLV, then the host Loading Loading @@ -760,6 +763,9 @@ typedef enum { HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */ HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v */ HTT_STATS_TXBF_OFDMA_AX_STEER_MPDU_STATS_TAG = 172, /* htt_txbf_ofdma_ax_steer_mpdu_stats_tlv */ HTT_STATS_TXBF_OFDMA_BE_STEER_MPDU_STATS_TAG = 173, /* htt_txbf_ofdma_be_steer_mpdu_stats_tlv */ HTT_STATS_MAX_TAG, Loading Loading @@ -1131,7 +1137,7 @@ PREPACK struct htt_tx_msdu_desc ## _paddr_bits_ ## _t \ A_UINT16 chanfreq; \ \ /* Reason reserved is commented is increasing the htt structure size \ * leads to some wierd issues. Contact Raj/Kyeyoon for more info \ * leads to some weird issues. \ * A_UINT32 reserved_dword3_bits0_31; \ */ \ } POSTPACK Loading Loading @@ -2716,7 +2722,7 @@ typedef enum { /** * @brief HTT TX WBM Completion from firmware to host * @details * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * DWORD 3 and 4 for software based completions (Exception frames and * TQM bypass frames) * For software based completions, wbm_release_ring->release_source_module will Loading Loading @@ -2809,7 +2815,7 @@ PREPACK struct htt_tx_wbm_completion { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * For software based completions, release_source_module will * be set to WIFIRELEASE_SOURCE_FW_E. Host SW is expected to inspect using * struct wbm_release_ring and then switch to this after looking at Loading Loading @@ -2888,7 +2894,7 @@ PREPACK struct htt_tx_wbm_completion_v2 { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * For software based completions, release_source_module will * be set to WIFIRELEASE_SOURCE_FW_E. Host SW is expected to inspect using * struct wbm_release_ring and then switch to this after looking at Loading Loading @@ -2975,7 +2981,7 @@ typedef enum { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP * or HTT_TX_FW2WBM_TX_STATUS_TTL */ Loading Loading @@ -3106,7 +3112,7 @@ PREPACK struct htt_tx_wbm_transmit_status { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_REINJECT. */ PREPACK struct htt_tx_wbm_reinject_status { Loading @@ -3123,7 +3129,7 @@ PREPACK struct htt_tx_wbm_reinject_status { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY. * FW sends SA addresses to host for all multicast/broadcast packets received on * STA side. Loading Loading @@ -5130,7 +5136,7 @@ enum htt_msi_setup_type { * 3'b010: 4 usec * 3'b011: 8 usec (default) * 3'b100: 16 usec * Others: Reserverd * Others: Reserved * b'19 - response_required: * Host needs HTT_T2H_MSG_TYPE_SRING_SETUP_DONE as response * b'20 - ipa_drop_flag: Loading Loading @@ -5531,38 +5537,43 @@ enum htt_srng_ring_id { * * The message would appear as follows: * * |31 28|27|26|25|24|23 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+----------------+----+---+---+---+---------------| * |31 28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |-------------------------------------------------------------------| * | rsvd2 | ring_buffer_size | * |-------------------------------------------------------------------| * |-----------------------+-----+-----+--------------------------------| * |rsvd2|RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | * |--------------------------------------------------------------------| * | packet_type_enable_flags_0 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_1 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_2 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_3 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | tlv_filter_in_flags | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_header_offset | rx_packet_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_mpdu_start_offset | rx_mpdu_end_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_msdu_start_offset | rx_msdu_end_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rsvd3 | rx_attention_offset | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | rsvd4 | mo| fp| rx_drop_threshold | * | |ndp|ndp| | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * Where: * PS = pkt_swap * SS = status_swap * OV = rx_offsets_valid * DT = drop_thresh_valid * CLM = config_length_mgmt * CLC = config_length_ctrl * CLD = config_length_data * RXHDL = rx_hdr_len * RX = rxpcu_filter_enable_flag * The message is interpreted as follows: * dword0 - b'0:7 - msg_type: This will be set to * 0xc (HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG) Loading Loading @@ -5616,7 +5627,15 @@ enum htt_srng_ring_id { * 10 - 128bytes * 11 - 256bytes * default - 128 bytes * b'27:31 - rsvd2: Reserved for future use * b'27 - rxpcu_filter_enable_flag * For Scan Radio Host CPU utilization is very high. * In order to reduce CPU utilization we need to filter out * certain configured MAC frames. * To filter out configured MAC address frames, RxPCU should * be zero which means allow all frames for MD at RxOLE * host wil fiter out frames. * RxPCU (Filter IN) -> RxOLE (Filter In/Filter Out) * b'28:31 - rsvd2: Reserved for future use * dword2 - b'0:31 - packet_type_enable_flags_0: * Enable MGMT packet from 0b0000 to 0b1001 * bits from low to high: FP, MD, MO - 3 bits Loading Loading @@ -5755,7 +5774,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { config_length_ctrl:3, config_length_data:3, rx_hdr_len: 2, rsvd2: 5; rxpcu_filter_enable_flag:1, rsvd2: 4; A_UINT32 packet_type_enable_flags_0; A_UINT32 packet_type_enable_flags_1; A_UINT32 packet_type_enable_flags_2; Loading Loading @@ -5929,6 +5949,17 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S));\ } while(0) #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_M 0x08000000 #define HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S 27 #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_M) >> \ HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S) #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL( HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S));\ } while(0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_GET(_var) \ Loading Loading @@ -6961,6 +6992,13 @@ PREPACK struct htt_tx_monitor_cfg_t { dma_mpdu_ctrl: 1, dma_mpdu_data: 1, rsvd4: 10; A_UINT32 tx_queue_ext_v2_word_mask: 12, tx_peer_entry_v2_word_mask: 12, rsvd5: 10; A_UINT32 fes_status_end_word_mask: 16, response_end_status_word_mask: 16; A_UINT32 fes_status_prot_word_mask: 11, rsvd6: 21; } POSTPACK; #define HTT_TX_MONITOR_CFG_SZ (sizeof(struct htt_tx_monitor_cfg_t)) Loading Loading @@ -7339,6 +7377,61 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M 0x00000fff #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M 0x00fff000 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S 12 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M 0x0000ffff #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M 0xffff0000 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S 16 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M 0x000007ff #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S)); \ } while (0) /* * pkt_type_enable_flags */ Loading Loading @@ -8251,7 +8344,7 @@ enum htt_ip_da_sa_prefix { * b'9 - DISABLE_TA_CHECK: 1- Disable TA check for MPDU Sequence * num jump * b'10 - DISABLE_QOS_CHECK: 1- Disable checking if qos/nonqos * data type switch has happend for MPDU Sequence num jump * data type switch has happened for MPDU Sequence num jump * b'11 - DISABLE_RAW_CHECK: 1- Disable checking for raw packet type * for MPDU Sequence num jump * b'12 - DISABLE_DECRYPT_ERR_CHECK: 1- Disable fisa cache commands Loading Loading @@ -12046,7 +12139,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t * In certain generations of chips, the peer map message also contains * a HW peer ID. This HW peer ID is used during rx --> tx frame forwarding * to identify which peer the frame needs to be forwarded to (i.e. the * peer assocated with the Destination MAC Address within the packet), * peer associated with the Destination MAC Address within the packet), * and particularly which vdev needs to transmit the frame (for cases * of inter-vdev rx --> tx forwarding). The HW peer id here is the same * meaning as AST_INDEX_0. Loading Loading @@ -12189,7 +12282,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t * * The peer map v2 message also contains a HW peer ID. This HW peer ID * is used during rx --> tx frame forwarding to identify which peer the * frame needs to be forwarded to (i.e. the peer assocated with the * frame needs to be forwarded to (i.e. the peer associated with the * Destination MAC Address within the packet), and particularly which vdev * needs to transmit the frame (for cases of inter-vdev rx --> tx forwarding). * This DA-based peer ID that is provided for certain rx frames Loading Loading @@ -13825,7 +13918,7 @@ PREPACK struct htt_txq_group { * Purpose: Indicate whether data ACK RSSI is appended for each MSDU in * TX_COMP_IND message. The order of the per-MSDU ACK RSSI report * matches the order of the MSDU IDs. Although the ACK RSSI is the * same for all MSDUs witin a single PPDU, the RSSI is duplicated * same for all MSDUs within a single PPDU, the RSSI is duplicated * for each MSDU, for convenience. * The ACK RSSI values are valid when status is COMPLETE_OK (and * this append2 bit is set). Loading Loading @@ -14460,7 +14553,7 @@ typedef struct { * Purpose: indicate how many 32-bit integers follow the message header * - NUM_CHARS * Bits 31:16 * Purpose: indicate how many 8-bit charaters follow the series of integers * Purpose: indicate how many 8-bit characters follow the series of integers */ #define HTT_RX_TEST_NUM_INTS_M 0xff00 #define HTT_RX_TEST_NUM_INTS_S 8 Loading Loading @@ -14663,7 +14756,7 @@ struct rx_reorder_stats { A_UINT32 rxdesc_bmc_msdus_inv_peer; /* Number of MSDUs dropped due to no first MSDU flag */ A_UINT32 rxdesc_no_1st_msdu; /* Number of MSDUs droped due to ring overflow */ /* Number of MSDUs dropped due to ring overflow */ A_UINT32 msdu_drop_ring_ov; /* Number of MSDUs dropped due to FC mismatch */ A_UINT32 msdu_drop_fc_mismatch; Loading Loading @@ -16612,7 +16705,7 @@ typedef enum { * * b'0:15 - flow pool ID: Existing flow pool ID * * b'16:31 - flow pool new size: new pool size for exisiting flow pool ID * b'16:31 - flow pool new size: new pool size for existing flow pool ID * */ Loading Loading @@ -17241,7 +17334,7 @@ PREPACK struct htt_cfr_dump_compl_ind { * subsequent period (100 ms) as long as the backpressure remains unabated. * This message indicates the ring id along with current head and tail index * locations (i.e. write and read indices). * The backpressure time indicates the time in ms for which continous * The backpressure time indicates the time in ms for which continuous * backpressure has been observed in the ring. * * The message format is as follows: Loading @@ -17260,11 +17353,12 @@ PREPACK struct htt_cfr_dump_compl_ind { * (HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND) * b'8:15 - pdev_id: 0 indicates msg is for UMAC ring. * 1, 2, 3 indicates pdev_id 0,1,2 and the msg is for LMAC ring. * the msg is for LMAC ring. * b'16:23 - ring_type: Refer to enum htt_backpressure_ring_type. * b'24:31 - ring_id: Refer enum htt_backpressure_umac_ring_id/ * htt_backpressure_lmac_ring_id. This represents * the ring id for which continous backpressure is seen * the ring id for which continuous backpressure * is seen * * dword1 - b'0:15 - head_idx: This indicates the current head index of * the ring indicated by the ring_id Loading @@ -17272,7 +17366,7 @@ PREPACK struct htt_cfr_dump_compl_ind { * dword1 - b'16:31 - tail_idx: This indicates the current tail index of * the ring indicated by the ring id * * dword2 - b'0:31 - backpressure_time_ms: Indicates how long continous * dword2 - b'0:31 - backpressure_time_ms: Indicates how long continuous * backpressure has been seen in the ring * indicated by the ring_id. * Units = milliseconds Loading Loading @@ -17780,7 +17874,7 @@ enum HTT_UL_OFDMA_TRIG_TYPE { * Bits 31:16 * Purpose: indicates the secondary channel center frequency, * only for 11acvht 80plus80 mode * Value: secondary channel center frequeny, in MHz units, if applicable * Value: secondary channel center frequency, in MHz units, if applicable * * checksum field * - CHECK_SUM Loading Loading @@ -18133,15 +18227,15 @@ PREPACK struct htt_rx_peer_metadata_v0 { * The following diagram shows the format of the RX PEER METADATA V1 format. * * |31 29|28 26|25 24|23 16|15 14| 13 |12 0| * |-----------------------------------------------------------------------| * |Rsvd2|CHIP ID|LMAC ID| VDEV ID |Rsvd1|ML PEER| SW PEER ID/ML PEER ID| * |-----------------------------------------------------------------------| * |---------------------------------------------------------------------------| * |Rsvd2|CHIP ID|LMAC ID|VDEV ID|logical_link_id|ML PEER|SW PEER ID/ML PEER ID| * |---------------------------------------------------------------------------| */ PREPACK struct htt_rx_peer_metadata_v1 { A_UINT32 peer_id: 13, ml_peer_valid: 1, reserved1: 2, logical_link_id: 2, vdev_id: 8, lmac_id: 2, chip_id: 3, Loading Loading @@ -18175,6 +18269,17 @@ PREPACK struct htt_rx_peer_metadata_v1 { #define HTT_RX_PEER_META_DATA_V1_VDEV_ID_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1_VDEV_ID_M) >> HTT_RX_PEER_META_DATA_V1_VDEV_ID_S) #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S 14 #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_M 0x0000c000 #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_M) >> HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S) #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID, _val); \ ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S)); \ } while (0) #define HTT_RX_PEER_META_DATA_V1_VDEV_ID_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1_VDEV_ID, _val); \ fw/htt_common.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2016, 2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -62,7 +63,7 @@ enum htt_rx_ind_mpdu_status { HTT_RX_IND_MPDU_STATUS_ERR_INV_PEER, HTT_RX_IND_MPDU_STATUS_UNAUTH_PEER, /* only accept EAPOL frames */ HTT_RX_IND_MPDU_STATUS_OUT_OF_SYNC, HTT_RX_IND_MPDU_STATUS_MGMT_CTRL, /* Non-data in promiscous mode */ HTT_RX_IND_MPDU_STATUS_MGMT_CTRL, /* Non-data in promiscuous mode */ HTT_RX_IND_MPDU_STATUS_TKIP_MIC_ERR, HTT_RX_IND_MPDU_STATUS_DECRYPT_ERR, HTT_RX_IND_MPDU_STATUS_MPDU_LENGTH_ERR, Loading fw/htt_isoc.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -237,7 +238,7 @@ enum { * - RMF_ENABLED (R) * Bit 6 * Purpose: specify whether the peer in question has enable robust * management frames, to encrypt certain managment frames * management frames, to encrypt certain management frames * Value: HTT_ISOC_RMF enum * Value: HTT_ISOC_NON_QOS or HTT_ISOC_QOS * - VDEV_ID Loading fw/htt_ppdu_stats.h +2 −2 Original line number Diff line number Diff line Loading @@ -2732,7 +2732,7 @@ typedef struct { * The size of the actual mgmt payload (in bytes) can be obtained from * the frame_length field. * The size of entire payload including the padding for alignment * (in bytes) can be derived from the length in tlv parametes, * (in bytes) can be derived from the length in tlv parameters, * minus the 12 bytes of the above fields. */ A_UINT32 payload[1]; Loading Loading @@ -2774,7 +2774,7 @@ typedef struct { * The size of the actual mgmt payload (in bytes) can be obtained from * the frame_length field. * The size of entire payload including the padding for alignment * (in bytes) can be derived from the length in tlv parametes, * (in bytes) can be derived from the length in tlv parameters, * minus the 12 bytes of the above fields. */ A_UINT32 payload[1]; Loading Loading
fw/htt.h +162 −57 Original line number Diff line number Diff line Loading @@ -234,9 +234,12 @@ * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. * 3.110 Add more word_mask fields in htt_tx_monitor_cfg_t. * 3.111 Add RXPCU filter enable flag in RX_RING_SELECTION_CFG msg. * 3.112 Add logical_link_id field in rx_peer_metadata_v1. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_CURRENT_VERSION_MINOR 112 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -420,7 +423,7 @@ PREPACK struct htt_option_tlv_ll_bus_addr_size_t { * downloads over the host --> target bus are as slow as or slower than * the transmissions over the WLAN PHY. For cases where the bus is faster * than the WLAN PHY, the target will transmit relatively large A-MPDUs, * and consquently will send one TX_COMPL_IND message that covers several * and consequently will send one TX_COMPL_IND message that covers several * tx frames. For cases where the WLAN PHY is faster than the bus, * the target will end up transmitting very short A-MPDUs, and consequently * sending many TX_COMPL_IND messages, which each cover a very small number Loading Loading @@ -463,7 +466,7 @@ PREPACK struct htt_option_tlv_hl_suppress_tx_compl_ind_t { * The MAX_TX_QUEUE_GROUPS TLV can be sent from the target to the host as * a suffix to the VERSION_CONF message. If the host has specified in the * VER_REQ message a limit on the number of tx queue groups the host can * supprt, the target shall limit its specification of the maximum tx groups * support, the target shall limit its specification of the maximum tx groups * to be no larger than this host-specified limit. * * If the target does not provide a MAX_TX_QUEUE_GROUPS TLV, then the host Loading Loading @@ -760,6 +763,9 @@ typedef enum { HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */ HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v */ HTT_STATS_TXBF_OFDMA_AX_STEER_MPDU_STATS_TAG = 172, /* htt_txbf_ofdma_ax_steer_mpdu_stats_tlv */ HTT_STATS_TXBF_OFDMA_BE_STEER_MPDU_STATS_TAG = 173, /* htt_txbf_ofdma_be_steer_mpdu_stats_tlv */ HTT_STATS_MAX_TAG, Loading Loading @@ -1131,7 +1137,7 @@ PREPACK struct htt_tx_msdu_desc ## _paddr_bits_ ## _t \ A_UINT16 chanfreq; \ \ /* Reason reserved is commented is increasing the htt structure size \ * leads to some wierd issues. Contact Raj/Kyeyoon for more info \ * leads to some weird issues. \ * A_UINT32 reserved_dword3_bits0_31; \ */ \ } POSTPACK Loading Loading @@ -2716,7 +2722,7 @@ typedef enum { /** * @brief HTT TX WBM Completion from firmware to host * @details * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * DWORD 3 and 4 for software based completions (Exception frames and * TQM bypass frames) * For software based completions, wbm_release_ring->release_source_module will Loading Loading @@ -2809,7 +2815,7 @@ PREPACK struct htt_tx_wbm_completion { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * For software based completions, release_source_module will * be set to WIFIRELEASE_SOURCE_FW_E. Host SW is expected to inspect using * struct wbm_release_ring and then switch to this after looking at Loading Loading @@ -2888,7 +2894,7 @@ PREPACK struct htt_tx_wbm_completion_v2 { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring * This structure is passed from firmware to host overlaid on wbm_release_ring * For software based completions, release_source_module will * be set to WIFIRELEASE_SOURCE_FW_E. Host SW is expected to inspect using * struct wbm_release_ring and then switch to this after looking at Loading Loading @@ -2975,7 +2981,7 @@ typedef enum { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP * or HTT_TX_FW2WBM_TX_STATUS_TTL */ Loading Loading @@ -3106,7 +3112,7 @@ PREPACK struct htt_tx_wbm_transmit_status { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_REINJECT. */ PREPACK struct htt_tx_wbm_reinject_status { Loading @@ -3123,7 +3129,7 @@ PREPACK struct htt_tx_wbm_reinject_status { * @details * This structure applies only to WLAN chips that contain WLAN Buffer Mgmt * (WBM) offload HW. * This structure is passed from firmware to host overlayed on wbm_release_ring. * This structure is passed from firmware to host overlaid on wbm_release_ring. * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY. * FW sends SA addresses to host for all multicast/broadcast packets received on * STA side. Loading Loading @@ -5130,7 +5136,7 @@ enum htt_msi_setup_type { * 3'b010: 4 usec * 3'b011: 8 usec (default) * 3'b100: 16 usec * Others: Reserverd * Others: Reserved * b'19 - response_required: * Host needs HTT_T2H_MSG_TYPE_SRING_SETUP_DONE as response * b'20 - ipa_drop_flag: Loading Loading @@ -5531,38 +5537,43 @@ enum htt_srng_ring_id { * * The message would appear as follows: * * |31 28|27|26|25|24|23 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+----------------+----+---+---+---+---------------| * |31 28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |-------------------------------------------------------------------| * | rsvd2 | ring_buffer_size | * |-------------------------------------------------------------------| * |-----------------------+-----+-----+--------------------------------| * |rsvd2|RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | * |--------------------------------------------------------------------| * | packet_type_enable_flags_0 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_1 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_2 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | packet_type_enable_flags_3 | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | tlv_filter_in_flags | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_header_offset | rx_packet_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_mpdu_start_offset | rx_mpdu_end_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rx_msdu_start_offset | rx_msdu_end_offset | * |-------------------------------------------------------------------| * |-----------------------------------+--------------------------------| * | rsvd3 | rx_attention_offset | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * | rsvd4 | mo| fp| rx_drop_threshold | * | |ndp|ndp| | * |-------------------------------------------------------------------| * |--------------------------------------------------------------------| * Where: * PS = pkt_swap * SS = status_swap * OV = rx_offsets_valid * DT = drop_thresh_valid * CLM = config_length_mgmt * CLC = config_length_ctrl * CLD = config_length_data * RXHDL = rx_hdr_len * RX = rxpcu_filter_enable_flag * The message is interpreted as follows: * dword0 - b'0:7 - msg_type: This will be set to * 0xc (HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG) Loading Loading @@ -5616,7 +5627,15 @@ enum htt_srng_ring_id { * 10 - 128bytes * 11 - 256bytes * default - 128 bytes * b'27:31 - rsvd2: Reserved for future use * b'27 - rxpcu_filter_enable_flag * For Scan Radio Host CPU utilization is very high. * In order to reduce CPU utilization we need to filter out * certain configured MAC frames. * To filter out configured MAC address frames, RxPCU should * be zero which means allow all frames for MD at RxOLE * host wil fiter out frames. * RxPCU (Filter IN) -> RxOLE (Filter In/Filter Out) * b'28:31 - rsvd2: Reserved for future use * dword2 - b'0:31 - packet_type_enable_flags_0: * Enable MGMT packet from 0b0000 to 0b1001 * bits from low to high: FP, MD, MO - 3 bits Loading Loading @@ -5755,7 +5774,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { config_length_ctrl:3, config_length_data:3, rx_hdr_len: 2, rsvd2: 5; rxpcu_filter_enable_flag:1, rsvd2: 4; A_UINT32 packet_type_enable_flags_0; A_UINT32 packet_type_enable_flags_1; A_UINT32 packet_type_enable_flags_2; Loading Loading @@ -5929,6 +5949,17 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S));\ } while(0) #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_M 0x08000000 #define HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S 27 #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_M) >> \ HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S) #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL( HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RXPXU_FILTER_S));\ } while(0) #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_FLAG_0_GET(_var) \ Loading Loading @@ -6961,6 +6992,13 @@ PREPACK struct htt_tx_monitor_cfg_t { dma_mpdu_ctrl: 1, dma_mpdu_data: 1, rsvd4: 10; A_UINT32 tx_queue_ext_v2_word_mask: 12, tx_peer_entry_v2_word_mask: 12, rsvd5: 10; A_UINT32 fes_status_end_word_mask: 16, response_end_status_word_mask: 16; A_UINT32 fes_status_prot_word_mask: 11, rsvd6: 21; } POSTPACK; #define HTT_TX_MONITOR_CFG_SZ (sizeof(struct htt_tx_monitor_cfg_t)) Loading Loading @@ -7339,6 +7377,61 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M 0x00000fff #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M 0x00fff000 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S 12 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M 0x0000ffff #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M 0xffff0000 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S 16 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M 0x000007ff #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S)); \ } while (0) /* * pkt_type_enable_flags */ Loading Loading @@ -8251,7 +8344,7 @@ enum htt_ip_da_sa_prefix { * b'9 - DISABLE_TA_CHECK: 1- Disable TA check for MPDU Sequence * num jump * b'10 - DISABLE_QOS_CHECK: 1- Disable checking if qos/nonqos * data type switch has happend for MPDU Sequence num jump * data type switch has happened for MPDU Sequence num jump * b'11 - DISABLE_RAW_CHECK: 1- Disable checking for raw packet type * for MPDU Sequence num jump * b'12 - DISABLE_DECRYPT_ERR_CHECK: 1- Disable fisa cache commands Loading Loading @@ -12046,7 +12139,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t * In certain generations of chips, the peer map message also contains * a HW peer ID. This HW peer ID is used during rx --> tx frame forwarding * to identify which peer the frame needs to be forwarded to (i.e. the * peer assocated with the Destination MAC Address within the packet), * peer associated with the Destination MAC Address within the packet), * and particularly which vdev needs to transmit the frame (for cases * of inter-vdev rx --> tx forwarding). The HW peer id here is the same * meaning as AST_INDEX_0. Loading Loading @@ -12189,7 +12282,7 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t * * The peer map v2 message also contains a HW peer ID. This HW peer ID * is used during rx --> tx frame forwarding to identify which peer the * frame needs to be forwarded to (i.e. the peer assocated with the * frame needs to be forwarded to (i.e. the peer associated with the * Destination MAC Address within the packet), and particularly which vdev * needs to transmit the frame (for cases of inter-vdev rx --> tx forwarding). * This DA-based peer ID that is provided for certain rx frames Loading Loading @@ -13825,7 +13918,7 @@ PREPACK struct htt_txq_group { * Purpose: Indicate whether data ACK RSSI is appended for each MSDU in * TX_COMP_IND message. The order of the per-MSDU ACK RSSI report * matches the order of the MSDU IDs. Although the ACK RSSI is the * same for all MSDUs witin a single PPDU, the RSSI is duplicated * same for all MSDUs within a single PPDU, the RSSI is duplicated * for each MSDU, for convenience. * The ACK RSSI values are valid when status is COMPLETE_OK (and * this append2 bit is set). Loading Loading @@ -14460,7 +14553,7 @@ typedef struct { * Purpose: indicate how many 32-bit integers follow the message header * - NUM_CHARS * Bits 31:16 * Purpose: indicate how many 8-bit charaters follow the series of integers * Purpose: indicate how many 8-bit characters follow the series of integers */ #define HTT_RX_TEST_NUM_INTS_M 0xff00 #define HTT_RX_TEST_NUM_INTS_S 8 Loading Loading @@ -14663,7 +14756,7 @@ struct rx_reorder_stats { A_UINT32 rxdesc_bmc_msdus_inv_peer; /* Number of MSDUs dropped due to no first MSDU flag */ A_UINT32 rxdesc_no_1st_msdu; /* Number of MSDUs droped due to ring overflow */ /* Number of MSDUs dropped due to ring overflow */ A_UINT32 msdu_drop_ring_ov; /* Number of MSDUs dropped due to FC mismatch */ A_UINT32 msdu_drop_fc_mismatch; Loading Loading @@ -16612,7 +16705,7 @@ typedef enum { * * b'0:15 - flow pool ID: Existing flow pool ID * * b'16:31 - flow pool new size: new pool size for exisiting flow pool ID * b'16:31 - flow pool new size: new pool size for existing flow pool ID * */ Loading Loading @@ -17241,7 +17334,7 @@ PREPACK struct htt_cfr_dump_compl_ind { * subsequent period (100 ms) as long as the backpressure remains unabated. * This message indicates the ring id along with current head and tail index * locations (i.e. write and read indices). * The backpressure time indicates the time in ms for which continous * The backpressure time indicates the time in ms for which continuous * backpressure has been observed in the ring. * * The message format is as follows: Loading @@ -17260,11 +17353,12 @@ PREPACK struct htt_cfr_dump_compl_ind { * (HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND) * b'8:15 - pdev_id: 0 indicates msg is for UMAC ring. * 1, 2, 3 indicates pdev_id 0,1,2 and the msg is for LMAC ring. * the msg is for LMAC ring. * b'16:23 - ring_type: Refer to enum htt_backpressure_ring_type. * b'24:31 - ring_id: Refer enum htt_backpressure_umac_ring_id/ * htt_backpressure_lmac_ring_id. This represents * the ring id for which continous backpressure is seen * the ring id for which continuous backpressure * is seen * * dword1 - b'0:15 - head_idx: This indicates the current head index of * the ring indicated by the ring_id Loading @@ -17272,7 +17366,7 @@ PREPACK struct htt_cfr_dump_compl_ind { * dword1 - b'16:31 - tail_idx: This indicates the current tail index of * the ring indicated by the ring id * * dword2 - b'0:31 - backpressure_time_ms: Indicates how long continous * dword2 - b'0:31 - backpressure_time_ms: Indicates how long continuous * backpressure has been seen in the ring * indicated by the ring_id. * Units = milliseconds Loading Loading @@ -17780,7 +17874,7 @@ enum HTT_UL_OFDMA_TRIG_TYPE { * Bits 31:16 * Purpose: indicates the secondary channel center frequency, * only for 11acvht 80plus80 mode * Value: secondary channel center frequeny, in MHz units, if applicable * Value: secondary channel center frequency, in MHz units, if applicable * * checksum field * - CHECK_SUM Loading Loading @@ -18133,15 +18227,15 @@ PREPACK struct htt_rx_peer_metadata_v0 { * The following diagram shows the format of the RX PEER METADATA V1 format. * * |31 29|28 26|25 24|23 16|15 14| 13 |12 0| * |-----------------------------------------------------------------------| * |Rsvd2|CHIP ID|LMAC ID| VDEV ID |Rsvd1|ML PEER| SW PEER ID/ML PEER ID| * |-----------------------------------------------------------------------| * |---------------------------------------------------------------------------| * |Rsvd2|CHIP ID|LMAC ID|VDEV ID|logical_link_id|ML PEER|SW PEER ID/ML PEER ID| * |---------------------------------------------------------------------------| */ PREPACK struct htt_rx_peer_metadata_v1 { A_UINT32 peer_id: 13, ml_peer_valid: 1, reserved1: 2, logical_link_id: 2, vdev_id: 8, lmac_id: 2, chip_id: 3, Loading Loading @@ -18175,6 +18269,17 @@ PREPACK struct htt_rx_peer_metadata_v1 { #define HTT_RX_PEER_META_DATA_V1_VDEV_ID_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1_VDEV_ID_M) >> HTT_RX_PEER_META_DATA_V1_VDEV_ID_S) #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S 14 #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_M 0x0000c000 #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_M) >> HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S) #define HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID, _val); \ ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1_LOGICAL_LINK_ID_S)); \ } while (0) #define HTT_RX_PEER_META_DATA_V1_VDEV_ID_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1_VDEV_ID, _val); \
fw/htt_common.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2016, 2020 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -62,7 +63,7 @@ enum htt_rx_ind_mpdu_status { HTT_RX_IND_MPDU_STATUS_ERR_INV_PEER, HTT_RX_IND_MPDU_STATUS_UNAUTH_PEER, /* only accept EAPOL frames */ HTT_RX_IND_MPDU_STATUS_OUT_OF_SYNC, HTT_RX_IND_MPDU_STATUS_MGMT_CTRL, /* Non-data in promiscous mode */ HTT_RX_IND_MPDU_STATUS_MGMT_CTRL, /* Non-data in promiscuous mode */ HTT_RX_IND_MPDU_STATUS_TKIP_MIC_ERR, HTT_RX_IND_MPDU_STATUS_DECRYPT_ERR, HTT_RX_IND_MPDU_STATUS_MPDU_LENGTH_ERR, Loading
fw/htt_isoc.h +2 −1 Original line number Diff line number Diff line /* * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -237,7 +238,7 @@ enum { * - RMF_ENABLED (R) * Bit 6 * Purpose: specify whether the peer in question has enable robust * management frames, to encrypt certain managment frames * management frames, to encrypt certain management frames * Value: HTT_ISOC_RMF enum * Value: HTT_ISOC_NON_QOS or HTT_ISOC_QOS * - VDEV_ID Loading
fw/htt_ppdu_stats.h +2 −2 Original line number Diff line number Diff line Loading @@ -2732,7 +2732,7 @@ typedef struct { * The size of the actual mgmt payload (in bytes) can be obtained from * the frame_length field. * The size of entire payload including the padding for alignment * (in bytes) can be derived from the length in tlv parametes, * (in bytes) can be derived from the length in tlv parameters, * minus the 12 bytes of the above fields. */ A_UINT32 payload[1]; Loading Loading @@ -2774,7 +2774,7 @@ typedef struct { * The size of the actual mgmt payload (in bytes) can be obtained from * the frame_length field. * The size of entire payload including the padding for alignment * (in bytes) can be derived from the length in tlv parametes, * (in bytes) can be derived from the length in tlv parameters, * minus the 12 bytes of the above fields. */ A_UINT32 payload[1]; Loading