1*5113495bSYour Name 2*5113495bSYour Name /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. 3*5113495bSYour Name * 4*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for any 5*5113495bSYour Name * purpose with or without fee is hereby granted, provided that the above 6*5113495bSYour Name * copyright notice and this permission notice appear in all copies. 7*5113495bSYour Name * 8*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*5113495bSYour Name * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*5113495bSYour Name * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*5113495bSYour Name * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*5113495bSYour Name * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*5113495bSYour Name * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*5113495bSYour Name * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*5113495bSYour Name */ 16*5113495bSYour Name 17*5113495bSYour Name 18*5113495bSYour Name 19*5113495bSYour Name 20*5113495bSYour Name 21*5113495bSYour Name 22*5113495bSYour Name 23*5113495bSYour Name 24*5113495bSYour Name 25*5113495bSYour Name 26*5113495bSYour Name #ifndef _TX_FLUSH_REQ_H_ 27*5113495bSYour Name #define _TX_FLUSH_REQ_H_ 28*5113495bSYour Name #if !defined(__ASSEMBLER__) 29*5113495bSYour Name #endif 30*5113495bSYour Name 31*5113495bSYour Name #define NUM_OF_DWORDS_TX_FLUSH_REQ 2 32*5113495bSYour Name 33*5113495bSYour Name #define NUM_OF_QWORDS_TX_FLUSH_REQ 1 34*5113495bSYour Name 35*5113495bSYour Name 36*5113495bSYour Name struct tx_flush_req { 37*5113495bSYour Name #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 38*5113495bSYour Name uint32_t flush_req_reason : 8, // [7:0] 39*5113495bSYour Name phytx_abort_reason : 8, // [15:8] 40*5113495bSYour Name flush_req_user_number_or_link_id : 6, // [21:16] 41*5113495bSYour Name mlo_abort_reason : 5, // [26:22] 42*5113495bSYour Name reserved_0a : 5; // [31:27] 43*5113495bSYour Name uint32_t tlv64_padding : 32; // [31:0] 44*5113495bSYour Name #else 45*5113495bSYour Name uint32_t reserved_0a : 5, // [31:27] 46*5113495bSYour Name mlo_abort_reason : 5, // [26:22] 47*5113495bSYour Name flush_req_user_number_or_link_id : 6, // [21:16] 48*5113495bSYour Name phytx_abort_reason : 8, // [15:8] 49*5113495bSYour Name flush_req_reason : 8; // [7:0] 50*5113495bSYour Name uint32_t tlv64_padding : 32; // [31:0] 51*5113495bSYour Name #endif 52*5113495bSYour Name }; 53*5113495bSYour Name 54*5113495bSYour Name 55*5113495bSYour Name /* Description FLUSH_REQ_REASON 56*5113495bSYour Name 57*5113495bSYour Name The reason why the flush request was generated. 58*5113495bSYour Name 59*5113495bSYour Name <enum 0 reserved_code>This is included for clean implementation 60*5113495bSYour Name and verification. This code should NOT be used during a 61*5113495bSYour Name valid FLUSH. It is used as a keeper value when flush logic 62*5113495bSYour Name is idle 63*5113495bSYour Name <enum 1 txpcu_flreq_code_txop_exceeded>Flush request issued 64*5113495bSYour Name by TXPCU in case of a WCOEX abort. 65*5113495bSYour Name <enum 2 crypt_flreq_rx_int_tx>This is a corner case scenario. 66*5113495bSYour Name A situation where: 67*5113495bSYour Name a.A RX is just over and CCA indication is IDLE 68*5113495bSYour Name b.Crypt is still busy decrypting 69*5113495bSYour Name c.A TX just starts. 70*5113495bSYour Name The TX should be tried later. This situation may be rare. 71*5113495bSYour Name Just taking an extra precaution. 72*5113495bSYour Name <enum 3 txpcu_flreq_code_rts_pkt_cca_abort>This is the static 73*5113495bSYour Name BW failure happening right after start_tx for either RTS 74*5113495bSYour Name frame or data packet 75*5113495bSYour Name <enum 4 txpcu_flreq_code_cts_cca_abort>This is the static 76*5113495bSYour Name BW failure in the protection sequence (CTS). 77*5113495bSYour Name <enum 5 pdg_flreq_code_txop_abort>This is PDG signaling 78*5113495bSYour Name not enough TXOP for transmission 79*5113495bSYour Name <enum 6 sw_explicit_flush_termination>When SW issues a flush 80*5113495bSYour Name WHICH CAUSES AN ONGOING FES to terminate 81*5113495bSYour Name <enum 7 fes_stp_not_enough_txop_rem>Not enough TXOP remaining 82*5113495bSYour Name in either SW or HW mode. This checks if the remaining TXOP 83*5113495bSYour Name < a parameterized minimum time. Currently half SIFS duration 84*5113495bSYour Name (5 us). 85*5113495bSYour Name <enum 8 hwsch_sch_tlv_zero_hdr_err>HWSCH flush when Parser 86*5113495bSYour Name engine encounters a header with all zeros in the DWORD 87*5113495bSYour Name <enum 9 fes_stp_tlv_time_exceeded_bkof_exp>Issued in case 88*5113495bSYour Name TLV transmission exceeds start_tx time 89*5113495bSYour Name <enum 10 fes_stp_sw_fes_time_gt_hw>SW mode abort. When HWSCH 90*5113495bSYour Name determines that none of the SW programmed (upto 3) BW times 91*5113495bSYour Name can fit into the current TXOP remaining 92*5113495bSYour Name <enum 11 txpcu_flreq_ppdu_allow_bw_fields_not_set>Flush 93*5113495bSYour Name request issued by TXPCU in case none of the PPDU_ALLOW_BW_* 94*5113495bSYour Name fields are set in PCU_PPDU_SETUP TLV 95*5113495bSYour Name <enum 12 txpcu_false_mu_reception>Flush request issued by 96*5113495bSYour Name TXPCU if RXPCU initiates a response generation for a MU 97*5113495bSYour Name reception even though MU reception was not expected 98*5113495bSYour Name <enum 13 hwsch_coex_abort>Flush request issued by HWSCH 99*5113495bSYour Name when a coex event caused this transmit to be aborted 100*5113495bSYour Name <enum 14 hwsch_svd_rdy_timeout>Flush request issued by HWSCH 101*5113495bSYour Name when the PHY does not return the SVD_READY before a timeout 102*5113495bSYour Name expires 103*5113495bSYour Name <enum 15 num_mpdu_count_zero>Flush request issued by TXPCU 104*5113495bSYour Name when the number of MPDU counter for selected BW is zero 105*5113495bSYour Name 106*5113495bSYour Name <enum 16 unsupported_cbf>Flush request issued by TXPCU if 107*5113495bSYour Name TXPCU receives TX_PKT_END with error_unsupported_cbf during 108*5113495bSYour Name CV transfer. 109*5113495bSYour Name <enum 17 txpcu_flreq_pcu_ppdu_setup_init_not_valid>Indicates 110*5113495bSYour Name TXPCU has not received PCU_PPDU_SETUP_INIT from PDG, by 111*5113495bSYour Name the time it received PRE_START_TX from HWSCH. 112*5113495bSYour Name <enum 18 txpcu_flreq_pcu_ppdu_setup_start_not_valid>Indicates 113*5113495bSYour Name TXPCU has not received PCU_PPDU_SETUP_START from PDG, by 114*5113495bSYour Name the time it received START_TX from HWSCH. 115*5113495bSYour Name <enum 19 txpcu_flreq_tx_phy_descriptor_not_valid>Indicates 116*5113495bSYour Name TXPCU has not received TX_PHY_DESCRIPTOR within REQD_TLVS_WAIT_TIME 117*5113495bSYour Name after receiving START_TX from HWSCH. 118*5113495bSYour Name <enum 20 txpcu_req_tlvs_timeout_for_cbf>TXPCU did nor receive 119*5113495bSYour Name the CBF info TLVs from the PHY fast enough which resulted 120*5113495bSYour Name in a timeout. 121*5113495bSYour Name <enum 21 txdma_flreq_no_of_mpdu_less_than_limit_status>Indicates 122*5113495bSYour Name the total number of MPDUs that needs to be send out by 123*5113495bSYour Name TXDMA is less than the number indicated by PDG/TXPCU in 124*5113495bSYour Name the MPDU_LIMIT_STATUS 125*5113495bSYour Name <enum 22 txole_flreq_frag_en_amsdu_ampdu>Fragmentation is 126*5113495bSYour Name enabled in TX_FES_SETUP for an AMSDU or AMPDU 127*5113495bSYour Name <enum 23 txole_flreq_more_frag_set_for_last_seg>more_frag 128*5113495bSYour Name bit in TX_FES_SETUP TLV is set for the last MPDU fragment 129*5113495bSYour Name 130*5113495bSYour Name <enum 24 txpcu_flreq_start_tx_bw_mismatch>Indicates TXPCU 131*5113495bSYour Name has detected a mismatch between BWs detected at PRE_START_TX 132*5113495bSYour Name and START_TX 133*5113495bSYour Name <enum 25 txpcu_flreq_coex_bw_not_allowed>flush request and 134*5113495bSYour Name is asserted by TXPCU when the final negotiated BW from 135*5113495bSYour Name COEX is not allowed by SW 136*5113495bSYour Name <enum 26 txole_flreq_frag_en_sw_encrypted>flush request 137*5113495bSYour Name and is asserted by TXPCU when the final negotiated BW from 138*5113495bSYour Name COEX is not allowed by SW 139*5113495bSYour Name <enum 27 txole_flreq_frag_en_buffer_chaining>Fragmentation 140*5113495bSYour Name is enabled in raw mode buffer chaining mode. 141*5113495bSYour Name <enum 28 txole_flreq_pv1_type3_amsdu_error>A1 and A2 set 142*5113495bSYour Name to MAC addresses for 11ah PV1 short frame which is an AMSDU 143*5113495bSYour Name 144*5113495bSYour Name <enum 29 txole_flreq_pv1_wrong_key_type>An unsupported key_type 145*5113495bSYour Name is set for a PV1 frames. WEP, TKIP and WAPI are not supported 146*5113495bSYour Name for PV1 frames 147*5113495bSYour Name <enum 30 txole_flreq_illegal_frame>Unexpected Tx Mpdu length. 148*5113495bSYour Name Asserted if the MSDU PACKET TLV length is less than the 149*5113495bSYour Name expected WMAC header 150*5113495bSYour Name <enum 31 pdg_flreq_coex_reasons>Asserted by PDG when COEX 151*5113495bSYour Name related logic in PDG requires a flush request. 152*5113495bSYour Name <enum 32 wifi_txole_no_full_msdu_for_checksum_en>Full MSDU 153*5113495bSYour Name packet was not provided by TXDMA when checksum/TSO/fragmentation 154*5113495bSYour Name was enabled 155*5113495bSYour Name <enum 33 wifi_txole_length_mismatch_802_3_eth_frame>The 156*5113495bSYour Name length field in the incoming 802.3 ethernet frame doesn't 157*5113495bSYour Name match with the actual number of bytes in the data TLV. 158*5113495bSYour Name <enum 34 wifi_txole_pv0_amsdu_frame_err>Non-QoS frames are 159*5113495bSYour Name queued as part of AMSDU 160*5113495bSYour Name <enum 35 wifi_txole_pv0_wrong_key_type>Key type in peer 161*5113495bSYour Name table set to NO_CIPHER for protected frames 162*5113495bSYour Name <enum 36 wifi_fes_stp_cca_busy_in_pifs>This flush is initiated 163*5113495bSYour Name by scheduler when (if enabled) CCA goes busy in the middle 164*5113495bSYour Name of a PIFS burst 165*5113495bSYour Name <enum 37 prot_frame_data_underrun>This flush is initiated 166*5113495bSYour Name by TXPCU when a protection frame is send, but TXPCU has 167*5113495bSYour Name not received address fields in time. 168*5113495bSYour Name <enum 38 pdg_no_length_received>PDG generated this flush 169*5113495bSYour Name request because not one MPDU length info has been received 170*5113495bSYour Name at the required timeout (which is programmable) 171*5113495bSYour Name <enum 39 pdg_wrong_preamble_req_order>PDG generated this 172*5113495bSYour Name flush request because PHY issued an unexpected preamble 173*5113495bSYour Name request type 174*5113495bSYour Name <enum 40 txpcu_flreq_retry_for_optimal_bw>The most desired 175*5113495bSYour Name BW was not available, and TXPCU would like to try the most 176*5113495bSYour Name optimal transmit BW again after a new BO period. 177*5113495bSYour Name <enum 41 wifi_txole_incomplete_llc_frame>LLC received incomplete 178*5113495bSYour Name frame 179*5113495bSYour Name <enum 42 pdg_cts_lower_bw_fit_err>PDG received a CTS frame 180*5113495bSYour Name that reduced the BW, As a result the MPDU does not fit 181*5113495bSYour Name in the previous reserved time, the thus this transmission 182*5113495bSYour Name is aborted 183*5113495bSYour Name <enum 43 pdg_cts_shorter_dur_fit_err>PDG received a CTS 184*5113495bSYour Name frame that a reduced duration field. As a result the MPDU 185*5113495bSYour Name does not fit in the previous reserved time, the thus this 186*5113495bSYour Name transmission is aborted 187*5113495bSYour Name 188*5113495bSYour Name Note the duration field in CTS can be reduced as a result 189*5113495bSYour Name of COEX reasons 190*5113495bSYour Name <enum 44 hwsch_sch_tlv_len_oor_err>HWSCH flush when Parser 191*5113495bSYour Name engine encounters a header whose length is greater than 192*5113495bSYour Name 511 dwords. This excludes DUMMY TLVs. 193*5113495bSYour Name <enum 45 hwsch_sch_tlv_taglen_mismatch_err>HWSCH flush when 194*5113495bSYour Name Parser engine encounters a header whose TAG does not match 195*5113495bSYour Name the XML specified length. This check excludes zero length 196*5113495bSYour Name and variable length TLVs 197*5113495bSYour Name <enum 46 hwsch_sch_tlv_sfm_tracking_err>HWSCH flush when 198*5113495bSYour Name Parser engine encounters a non contiguous error check code, 199*5113495bSYour Name while reading SFM. This check is primarily to catch data 200*5113495bSYour Name write or read issues within the buffering process of scheduler 201*5113495bSYour Name TLV in SFM 202*5113495bSYour Name <enum 47 wifitx_flush_rssi_above_obss_nonsrg_thr>When HWSCH 203*5113495bSYour Name attempts to transmit a packet based on OBSS_PD non-SRG 204*5113495bSYour Name opportunity, a flush with this code is generated if "ReceivedRssi 205*5113495bSYour Name from RXPCU > Scheduler_cmd.RssiAltNonSrg". 206*5113495bSYour Name <enum 48 wifitx_flush_rssi_above_obss_srg_thr>When HWSCH 207*5113495bSYour Name attempts to transmit a packet based on OBSS_PD non-SRG 208*5113495bSYour Name opportunity, a flush with this code is generated if "ReceivedRssi 209*5113495bSYour Name from RXPCU > Scheduler_cmd.RssiAltSrg". 210*5113495bSYour Name <enum 49 wifitx_flush_rssi_above_srp_pwr_thr>When HWSCH 211*5113495bSYour Name attempts to transmit a packet within an SRP opportunity 212*5113495bSYour Name window, a flush with this code is generated if "Scheduler_cmd.SrpAltPwr 213*5113495bSYour Name > SRP_less_RSSI". 214*5113495bSYour Name <enum 50 hwsch_unexpected_sch_tlv_end_err>parse errors 215*5113495bSYour Name <enum 51 hwsch_sch_tlv_tag_oor_err>HWSCH flush when Parser 216*5113495bSYour Name engine encounters a header whose TAG is not listed in the 217*5113495bSYour Name XML TAG table 218*5113495bSYour Name <enum 52 txpcu_phytx_abort_err>An abort from PHY TX got 219*5113495bSYour Name received 220*5113495bSYour Name <enum 53 txpcu_coex_soft_abort_err>A soft from coex got 221*5113495bSYour Name received before even a single MPDU got transmitted. Therefor 222*5113495bSYour Name transmission is terminated. 223*5113495bSYour Name <enum 54 pdg_min_user_count_missed>PDG was asked to start 224*5113495bSYour Name an MU transmission, but the number of users with actual 225*5113495bSYour Name data was less then the threshold (Min_users_with_data_count) 226*5113495bSYour Name 227*5113495bSYour Name <enum 55 pdg_min_byte_count_missed>PDG was asked to start 228*5113495bSYour Name an SU transmission, but the number of bytes that PDG has 229*5113495bSYour Name been informed about that can be transmitted is less then 230*5113495bSYour Name the required threshold (min_ppdu_bytes) 231*5113495bSYour Name <enum 56 pdg_min_mpdu_count_missed>PDG was asked to start 232*5113495bSYour Name an SU transmission, but the number of MPDUs that PDG has 233*5113495bSYour Name been informed about that can be transmitted is less then 234*5113495bSYour Name the required threshold (min_mpdus_in_ppdu) 235*5113495bSYour Name <enum 57 pdg_cannot_pad_min_ppdu_time>PDG uses this code 236*5113495bSYour Name when the min PPDU time to pad up to (pad_min_ppdu_time) 237*5113495bSYour Name can not be met due to other boundary conditions (e.g. FES 238*5113495bSYour Name time/TXOP time/TBTT) 239*5113495bSYour Name <enum 58 ucode_flush_request>Flush request initiated by 240*5113495bSYour Name the ucode (M3) 241*5113495bSYour Name <enum 59 txpcu_resp_frame_flushed>TXPCU uses this code on 242*5113495bSYour Name encountering an error condition (e.g. late MACTX_PHY_DESC 243*5113495bSYour Name or CV error) while generating a response. 244*5113495bSYour Name <enum 60 hwsch_sifs_burst_svd_ready_timeout>This flush code 245*5113495bSYour Name is used by HWSCH to indicate that during SIFS bursting, 246*5113495bSYour Name an SVD_READY timeout was detected, which resulted in the 247*5113495bSYour Name SIFS burst to be aborted. 248*5113495bSYour Name <enum 61 txpcu_phy_data_request_to_early>TXPCU has not been 249*5113495bSYour Name properly initialized when the first data request from the 250*5113495bSYour Name PHY has been seen. 251*5113495bSYour Name <enum 62 txpcu_trigger_response_cs_check_fail>TXPCU found 252*5113495bSYour Name that the medium was not idle for the Carries Sense check 253*5113495bSYour Name that PDG indicated was needed for the triggered response 254*5113495bSYour Name frame. 255*5113495bSYour Name <enum 63 pdg_ofdma_max_unused_space_violation>PDG found 256*5113495bSYour Name out that when trying to assign the RUs among the available 257*5113495bSYour Name users, the number of unused RUs remained above the allowed 258*5113495bSYour Name threshold 259*5113495bSYour Name <enum 64 crypto_tx_user_capacity_exceeded>This happens when 260*5113495bSYour Name Crypto receives TLVs for more TX users than it can support 261*5113495bSYour Name at that point of time 262*5113495bSYour Name <enum 65 crypto_tx_non_mu_key_type_rcvd>This happens when 263*5113495bSYour Name Crypto receives unsupported Key types (WEP, TKIP) for MU 264*5113495bSYour Name 265*5113495bSYour Name <enum 66 txpcu_cbf_resp_abort>CBF response generation by 266*5113495bSYour Name TXPCU ran into issues due to info not being available from 267*5113495bSYour Name the PHY 268*5113495bSYour Name <enum 67 txpcu_phy_nap_received_during_tx>TXPCU received 269*5113495bSYour Name a PHY NAP TLV from rxpcu while a transmission was ongoing. 270*5113495bSYour Name The transmission will be terminated with this abort reason. 271*5113495bSYour Name 272*5113495bSYour Name <enum 68 rxpcu_trigger_with_fcs_error>RXPCU found out that 273*5113495bSYour Name the trigger frame that was received and for which the TX 274*5113495bSYour Name path has been activated to generate a response, had an 275*5113495bSYour Name FCS error. 276*5113495bSYour Name <enum 69 pdg_flreq_coex_bt_higher_priority>Asserted by PDG 277*5113495bSYour Name when COEX indicated to PDG that the transmit request is 278*5113495bSYour Name NOT granted because a higher priority BT activity is ongoing. 279*5113495bSYour Name 280*5113495bSYour Name <enum 70 txpcu_txrx_conflict_detected>TXPCU detected a conflict 281*5113495bSYour Name between an FES transmission and a self-gen response transmission. 282*5113495bSYour Name This is when the PHY + RXPCU delays cause a self-gen to 283*5113495bSYour Name overlap with the pre-backoff time from HWSCH for the next 284*5113495bSYour Name FES. 285*5113495bSYour Name <enum 71 pdg_mu_cts_ru_allocation_corruption>PDG received 286*5113495bSYour Name a MU-RTS trigger for which the CTS RU response setting 287*5113495bSYour Name is not valid 288*5113495bSYour Name <enum 72 pdg_trig_for_blocked_ru>PDG received a trigger 289*5113495bSYour Name based transmission request for an RU size that is blocked 290*5113495bSYour Name by SW. 291*5113495bSYour Name <enum 73 pdg_trig_response_mode_corruption>Asserted when 292*5113495bSYour Name PDG gets a TX_FES_SETUP with field "Fes_in_11ax_Trigger_response_config" 293*5113495bSYour Name not being in sync with what it was expecting. 294*5113495bSYour Name <enum 74 pdg_invalid_trigger_config_received>PDG received 295*5113495bSYour Name OFDMA_TRIGGER_DETAILS and the configuration in there (which 296*5113495bSYour Name RXPCU gets from the trigger frame has invalid field value 297*5113495bSYour Name combinations 298*5113495bSYour Name <enum 75 txole_msdu_too_long>This flush request will be 299*5113495bSYour Name asserted if the length of a checksum enabled MSDU is more 300*5113495bSYour Name than 2400 bytes. 301*5113495bSYour Name <enum 76 txole_inconsistent_mesh>This flush request will 302*5113495bSYour Name be asserted if mesh_enable is set for an MSDU subframe 303*5113495bSYour Name while its not set for another MSDU subframe in the same 304*5113495bSYour Name AMSDU 305*5113495bSYour Name <enum 77 txole_mesh_enable_for_ethernet>This flush request 306*5113495bSYour Name will be asserted if mesh_enable is set for an ethernet 307*5113495bSYour Name frame 308*5113495bSYour Name <enum 78 txpcu_trig_response_mode_corruption>Asserted when 309*5113495bSYour Name TXPCU gets a TX_FES_SETUP with field "ofdma_triggered_response" 310*5113495bSYour Name not being in sync with what it was expecting. 311*5113495bSYour Name <enum 79 pdg_11ax_invalid_rate_setup>PDG received an 11ax 312*5113495bSYour Name transmit set of parameters that is not allowed or not supported 313*5113495bSYour Name 314*5113495bSYour Name <enum 80 txpcu_trig_response_info_too_late>TXPCU generates 315*5113495bSYour Name this flush request because trigger response transmission 316*5113495bSYour Name setup info from the SCH was received too late 317*5113495bSYour Name <enum 81 wifitx_flush_obss_pd_disabled_for_tx>When HWSCH 318*5113495bSYour Name attempts to transmit a packet having obss_pd disabled within 319*5113495bSYour Name an obss_pd opportunity window this flush code is generated 320*5113495bSYour Name 321*5113495bSYour Name <enum 82 wifitx_flush_srp_disabled_for_tx>When HWSCH attempts 322*5113495bSYour Name to transmit a packet having SRP disabled within an obss_pd 323*5113495bSYour Name opportunity window this flush code is generated 324*5113495bSYour Name <enum 83 pdg_flreq_code_srp_sr_missed>In SRP SR, PDG will 325*5113495bSYour Name generate flush if receiving PDG_TX_REQ in a blocking window 326*5113495bSYour Name around SRP SR limit 327*5113495bSYour Name <enum 84 pdg_rbo_user_limit_no_data>PDG generates when no 328*5113495bSYour Name data can be sent for the users specified by TX_FES_SETUP 329*5113495bSYour Name field "RBO_must_have_data_user_limit." 330*5113495bSYour Name <enum 85 pdg_no_cbf_response_received>Used by PDG for an 331*5113495bSYour Name MU-MIMO sounding plus steering burst when it did not receive 332*5113495bSYour Name CBF from any recipient STA 333*5113495bSYour Name <enum 86 pdg_flreq_unexpected_notify_frame>PDG generates 334*5113495bSYour Name when encountering a 'HARD_NOTIFY' or a 'SEMI_HARD_NOTIFY' 335*5113495bSYour Name frame unless ignore_tx_notify_setting is set in 'PDG_FES_SETUP' 336*5113495bSYour Name 337*5113495bSYour Name <enum 87 pdg_flush_min_ppdu_time_missed>PDG was asked to 338*5113495bSYour Name start a transmission, but the time required to transmit 339*5113495bSYour Name the PPDU is less than the required threshold (flush_min_ppdu_time) 340*5113495bSYour Name 341*5113495bSYour Name <enum 88 txpcu_flreq_rxpcu_setup_config_error>Used by TXPCU 342*5113495bSYour Name when Tx is complete and it is about to generate 'EXPECTED_RESPONSE' 343*5113495bSYour Name but it has not got any 'RXPCU_SETUP_COMPLETE' although 'rxpcu_setup_complete_present' 344*5113495bSYour Name was set in 'TX_FES_SETUP' 345*5113495bSYour Name <enum 89 txpcu_flreq_late_trig_tlvs>Used by TXPCU when the 346*5113495bSYour Name 'RECEIVED_TRIGER_INFO' TLV is sent to SCH after the 'pre_phy_desc' 347*5113495bSYour Name timer has expired, if enabled 348*5113495bSYour Name <enum 90 pdg_flreq_notify_mpdu_late>Used by PDG when the 349*5113495bSYour Name first 'MPDU_INFO' is not available when sending 'PCU_PPDU_SETUP_START' 350*5113495bSYour Name so PDG has assumed a regular MPDU ('FW_tx_notify_frame = 351*5113495bSYour Name NO_TX_NOTIFY'), but later the MPDU turned out to be a notify 352*5113495bSYour Name frame, if enabled 353*5113495bSYour Name <enum 91 txdma_flreq_sfm_full>TXDMA generates this flush 354*5113495bSYour Name request when it gets 'MPDU_INFO's for a user that it is 355*5113495bSYour Name unable to write into SFM since its SFM allocation is full. 356*5113495bSYour Name 357*5113495bSYour Name <enum 92 txpcu_flreq_pre_phy_desc_late>Used in TXPCU for 358*5113495bSYour Name generating a flush request when 'PRE_PHY_DESC' is received 359*5113495bSYour Name late (determined by a timer) 360*5113495bSYour Name <enum 93 pdg_flreq_cannot_fit_trig_response>This flush request 361*5113495bSYour Name code is used by PDG if the trigger response MPDUs cannot 362*5113495bSYour Name be fit to avoid sending only null delimiters for e.g. unassociated 363*5113495bSYour Name UORA and colliding with another STA with valid data. 364*5113495bSYour Name <enum 94 pdg_flreq_unexpected_fes_setup>Flush request used 365*5113495bSYour Name by PDG in case of unexpected 'TX_FES_SETUP' 366*5113495bSYour Name <enum 95 pdg_flreq_code_mlo_abort>Flush request used by 367*5113495bSYour Name PDG in case of MLO constraints forcing an abort 368*5113495bSYour Name <enum 96 hwsch_bkoff_trunc_seq_abort>Flush request used 369*5113495bSYour Name by HWSCH if an MLO backoff truncation request resulted in 370*5113495bSYour Name a forced abort to avoid windows too close to transmissions 371*5113495bSYour Name 372*5113495bSYour Name <enum 97 txole_flreq_illegal_frag_settings>Flush request 373*5113495bSYour Name used by TXOLE if fragmentation is requested but the settings 374*5113495bSYour Name are illegal 375*5113495bSYour Name <enum 98 txpcu_flreq_mac_flex_overwrite_err>Flush request 376*5113495bSYour Name used by TXPCU when required overwrite TLVs are not received 377*5113495bSYour Name from microcode, or when overwrite TLVs are dropped in MAC 378*5113495bSYour Name due to SFM full condition 379*5113495bSYour Name <enum 99 txpcu_lmr_req_timeout>Flush request by TXPCU if 380*5113495bSYour Name PHY does not respond to 'MACRX_LMR_READ_REQUEST' or 'MACRX_LMR_DATA_REQUEST' 381*5113495bSYour Name on time 382*5113495bSYour Name <enum 100 txpcu_lmr_phyrx_err_abort>Flush request by TXPCU 383*5113495bSYour Name if PHY sent 'PHYRX_LMR_TRANSFER_ABORT' or 'PHYRX_LMR_READ_REQUEST_ACK' 384*5113495bSYour Name with status anything other than OK 385*5113495bSYour Name <enum 101 txpcu_rx_bitmap_ack_mismatch>Flush request by 386*5113495bSYour Name TXPCU on getting a mismatched TLV from RXPCU for 'RX_FRAME_*BITMAP_ACK' (1Kbit 387*5113495bSYour Name instead of 256-bit or vice versa) 388*5113495bSYour Name <enum 102 txpcu_rx_incorrect_ba_cnt_for_ampdu>Flush request 389*5113495bSYour Name by TXPCU on getting an 'RX_RESPONSE_REQUIRED_INFO' with 390*5113495bSYour Name A-MPDU set, VHT Ack clear and 'response_ba*_cnt' zero, 391*5113495bSYour Name to avoid a system hang 392*5113495bSYour Name <enum 103 txpcu_flreq_cbf_done_delayed>Flush request by 393*5113495bSYour Name TXPCU on not getting a 'MACTX_CBF_DONE' from RXPCU after 394*5113495bSYour Name sending 'RESPONSE_END_STATUS' TLV 395*5113495bSYour Name <enum 104 txpcu_flreq_sfm_full>Flush request by TXPCU if 396*5113495bSYour Name SFM indicates 'user_fifo_full' 397*5113495bSYour Name <enum 105 pdg_flreq_calc_psdu_length_too_low>PDG was asked 398*5113495bSYour Name to start an MU transmission, but one of the users' RU is 399*5113495bSYour Name such that within the PPDU time the PSDU length that can 400*5113495bSYour Name be fit is too low (based on a threshold in a PDG register) 401*5113495bSYour Name 402*5113495bSYour Name <enum 106 pdg_flush_min_ppdu_time_obss_sr_missed>PDG was 403*5113495bSYour Name asked to start an OBSS PD SR transmission, but the time 404*5113495bSYour Name required to transmit the PPDU is less than the required 405*5113495bSYour Name threshold (flush_min_ppdu_time_obss_pd_sr) 406*5113495bSYour Name <enum 107 pdg_flreq_code_txop_abort_obss_sr>PDG was asked 407*5113495bSYour Name to start an OBSS PD SR transmission, but the time required 408*5113495bSYour Name for the FES is more than the OBSS PPDU duration (max_fes_time_obss_pd_sr) 409*5113495bSYour Name 410*5113495bSYour Name <enum 108 pdg_flreq_cv_corr_tlv_timeout>PDG timed out waiting 411*5113495bSYour Name for CV correlation TLVs from microcode 412*5113495bSYour Name <enum 109 pdg_flreq_pri_user_cbf_fail>Flush request from 413*5113495bSYour Name PDG if CV correlation is enabled and the 'PHYTX_CV_CORR_STATUS' 414*5113495bSYour Name from microcode indicates that the primary user's CBF has 415*5113495bSYour Name failed 416*5113495bSYour Name <enum 110 hwsch_sfm_availability_check_fail>HWSCH-issued 417*5113495bSYour Name flush when the SFM availability check fails during a SIFS 418*5113495bSYour Name burst or when fetching part 2 TLVs 419*5113495bSYour Name <enum 111 pdg_cannot_pad_response_time>PDG uses this code 420*5113495bSYour Name when the response time to pad up to (required_response_time) 421*5113495bSYour Name cannot be met due to the frame length in 'PDG_RESPONSE' 422*5113495bSYour Name exceeding the calculated padded length 423*5113495bSYour Name <enum 112 ul_mu_rx_early_abort>Flush request to terminate 424*5113495bSYour Name an FES when RXPCU aborted an UL MU reception early because 425*5113495bSYour Name at the end of the "early_termination_window," the required 426*5113495bSYour Name number of users with at least one valid MPDU delimiter 427*5113495bSYour Name was not reached. 428*5113495bSYour Name 429*5113495bSYour Name This is unsupported in Beryllium. 430*5113495bSYour Name <enum 113 reserved_flush_code_25>Placeholder for future 431*5113495bSYour Name needs 432*5113495bSYour Name <enum 114 reserved_flush_code_26>TXPCU uses this code when 433*5113495bSYour Name more than the configured maximum CTS2SELF are being sent. 434*5113495bSYour Name 435*5113495bSYour Name <enum 115 reserved_flush_code_27>TXPCU uses this code when 436*5113495bSYour Name at the time of the main PPDU transmission, fewer than the 437*5113495bSYour Name configured minimum CTS2SELF were sent. 438*5113495bSYour Name <enum 116 reserved_flush_code_28>Placeholder for future 439*5113495bSYour Name needs 440*5113495bSYour Name <enum 117 reserved_flush_code_29>Placeholder for future 441*5113495bSYour Name needs 442*5113495bSYour Name <enum 118 reserved_flush_code_30>Placeholder for future 443*5113495bSYour Name needs 444*5113495bSYour Name <enum 119 reserved_flush_code_31>Placeholder for future 445*5113495bSYour Name needs 446*5113495bSYour Name <enum 120 reserved_flush_code_32>Placeholder for future 447*5113495bSYour Name needs 448*5113495bSYour Name <enum 121 reserved_flush_code_33>Placeholder for future 449*5113495bSYour Name needs 450*5113495bSYour Name <enum 122 reserved_flush_code_34>Placeholder for future 451*5113495bSYour Name needs 452*5113495bSYour Name <enum 123 reserved_flush_code_35>Placeholder for future 453*5113495bSYour Name needs 454*5113495bSYour Name <enum 124 reserved_flush_code_36>Placeholder for future 455*5113495bSYour Name needs 456*5113495bSYour Name <enum 125 reserved_flush_code_37>Placeholder for future 457*5113495bSYour Name needs 458*5113495bSYour Name <enum 126 reserved_flush_code_38>Placeholder for future 459*5113495bSYour Name needs 460*5113495bSYour Name <enum 127 unknown_flush_request_code>Used by SCH when it 461*5113495bSYour Name receives an undefined flush request reason code 462*5113495bSYour Name */ 463*5113495bSYour Name 464*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_REASON_OFFSET 0x0000000000000000 465*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_REASON_LSB 0 466*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_REASON_MSB 7 467*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_REASON_MASK 0x00000000000000ff 468*5113495bSYour Name 469*5113495bSYour Name 470*5113495bSYour Name /* Description PHYTX_ABORT_REASON 471*5113495bSYour Name 472*5113495bSYour Name Field only valid when Flush_req_reason == TXPCU_PHYTX_ABORT_ERR 473*5113495bSYour Name 474*5113495bSYour Name 475*5113495bSYour Name <enum 0 no_phytx_error_reported>This value is the default 476*5113495bSYour Name value the MAC will fill in the status TLV (when not PHY 477*5113495bSYour Name abort was received). 478*5113495bSYour Name 479*5113495bSYour Name Note that when PHY generates the PHYTX_ABORT_REQUEST, this 480*5113495bSYour Name value shall never be used. 481*5113495bSYour Name <enum 1 error_txtd_ifft_underrun>PHY ran out of transmit 482*5113495bSYour Name data due to transmit underrun - this field is user-specific 483*5113495bSYour Name (see user_number field) 484*5113495bSYour Name <enum 2 error_tx_invalid_tlv> 485*5113495bSYour Name <enum 3 error_tx_unexpected_tlv> 486*5113495bSYour Name <enum 4 error_tx_pkt_end_error> 487*5113495bSYour Name <enum 5 error_tx_bw_is_gt_dyn_bw> 488*5113495bSYour Name <enum 6 error_txtd_pkt_start_error> 489*5113495bSYour Name <enum 7 error_txfd_pre_phy_tlv_ooo> 490*5113495bSYour Name <enum 8 error_txtd_mu_data_underrun> 491*5113495bSYour Name <enum 9 error_tx_legacy_rate_illegal> 492*5113495bSYour Name <enum 10 error_tx_fifo_error> 493*5113495bSYour Name <enum 11 error_tx_ack_wd_error> 494*5113495bSYour Name <enum 12 error_tx_tpc_miss> 495*5113495bSYour Name <enum 13 error_mac_tx_abort> 496*5113495bSYour Name <enum 14 error_tx_pcss_phy_desc_wdg_timeout> 497*5113495bSYour Name <enum 15 error_unsupported_cbf> 498*5113495bSYour Name <enum 16 error_cv_static_bandwidth_mismatch> 499*5113495bSYour Name <enum 17 error_cv_dynamic_bandwidth_mismatch> 500*5113495bSYour Name <enum 18 error_cv_unsupported_nss_total> 501*5113495bSYour Name <enum 19 error_nss_bf_params_mismatch> 502*5113495bSYour Name <enum 20 error_txbf_fail> 503*5113495bSYour Name <enum 21 error_txbf_snd_fail>This used to be called 'error_illegal_nss.' 504*5113495bSYour Name 505*5113495bSYour Name <enum 22 error_otp_txbf> 506*5113495bSYour Name <enum 23 error_tx_inv_chainmask> 507*5113495bSYour Name <enum 24 error_cv_index_assign_overload>This error indicates 508*5113495bSYour Name that CV prefetch command indicated a CV index that is not 509*5113495bSYour Name available. 510*5113495bSYour Name <enum 25 error_cv_index_delete>This error indicates that 511*5113495bSYour Name CV delete command indicated a CV index that did not contain 512*5113495bSYour Name any valid info 513*5113495bSYour Name <enum 26 error_tx_he_rate_illegal>Error found with the HE 514*5113495bSYour Name transmission parameters 515*5113495bSYour Name <enum 27 error_tx_pcss_wdg_timeout> 516*5113495bSYour Name <enum 28 error_tx_tlv_tag_mismatch> 517*5113495bSYour Name <enum 29 error_tx_cck_fifo_flush> 518*5113495bSYour Name <enum 30 error_tx_no_mac_pkt_end> 519*5113495bSYour Name <enum 31 error_tx_abort_for_mac_war> 520*5113495bSYour Name <enum 32 error_tx_stuck> 521*5113495bSYour Name <enum 33 error_tx_invalid_uplink_tlv> 522*5113495bSYour Name <enum 34 error_txfd_txcck_illegal_tx_rate_error> 523*5113495bSYour Name <enum 35 error_txfd_txcck_underrun_error> 524*5113495bSYour Name <enum 36 error_txfd_mpi_req_grant_error> 525*5113495bSYour Name <enum 37 error_txfd_control_tlv_fifo_ovfl_error> 526*5113495bSYour Name <enum 38 error_txfd_tlv_fifo_overflow_error> 527*5113495bSYour Name <enum 39 error_txfd_data_fifo_underflow_error> 528*5113495bSYour Name <enum 40 error_txfd_data_fifo_overflow_error> 529*5113495bSYour Name <enum 41 error_txfd_service_fifo_overflow_error> 530*5113495bSYour Name <enum 42 error_txfd_he_sigb_fifo_overflow_error> 531*5113495bSYour Name <enum 43 error_txfd_spurious_data_fifo_error> 532*5113495bSYour Name <enum 44 error_txfd_he_siga_fifo_ovfl_error> 533*5113495bSYour Name <enum 45 error_txfd_unknown_tlv_error> 534*5113495bSYour Name <enum 46 error_txfd_mac_response_ordering_error> 535*5113495bSYour Name <enum 47 error_txfd_unexpected_mac_pkt_end_error> 536*5113495bSYour Name <enum 48 error_txfd_tlv_fifo_rd_hang_error>All FIFO read 537*5113495bSYour Name hang errors use this value. 538*5113495bSYour Name <enum 49 error_txfd_tlv_fifo_no_rd_error>All FIFO no read 539*5113495bSYour Name errors use this value. 540*5113495bSYour Name <enum 50 error_txfd_ordering_fifo_no_rd_error> 541*5113495bSYour Name <enum 51 error_txfd_illegal_cf_tlv_error> 542*5113495bSYour Name <enum 52 error_txfd_user_ru_hang_error> 543*5113495bSYour Name <enum 53 error_txfd_stream_ru_hang_error> 544*5113495bSYour Name <enum 54 error_txfd_num_pad_bits_error> 545*5113495bSYour Name <enum 55 error_txfd_phy_abort_ack_wd_to_error> 546*5113495bSYour Name <enum 56 error_txfd_pre_pkt_isr_not_done_before_phy_desc_error> 547*5113495bSYour Name 548*5113495bSYour Name <enum 57 error_txfd_bf_weights_not_ready_error> 549*5113495bSYour Name <enum 58 error_txfd_req_timer_breach_error> 550*5113495bSYour Name <enum 59 error_txfd_wd_to_error> 551*5113495bSYour Name <enum 60 error_txfd_legacy_bf_weights_not_ready_error> 552*5113495bSYour Name <enum 61 error_txfd_axi_slave_to_error> 553*5113495bSYour Name <enum 62 error_txfd_hw_acc_error> 554*5113495bSYour Name <enum 63 error_txfd_txb_req_fifo_underrun_error> 555*5113495bSYour Name <enum 64 error_txfd_unknown_ru_alloc_error> 556*5113495bSYour Name <enum 65 error_txfd_more_user_desc_per_user_tlvs_error> 557*5113495bSYour Name <enum 66 error_txfd_ldpc_param_calc_to_error> 558*5113495bSYour Name <enum 69 error_txfd_cbf_start_before_expect_cbf_clear_error> 559*5113495bSYour Name 560*5113495bSYour Name <enum 70 error_txfd_out_of_range_cbf_user_id_error> 561*5113495bSYour Name <enum 71 error_txfd_less_cbf_data_error> 562*5113495bSYour Name <enum 72 error_txfd_more_cbf_data_error> 563*5113495bSYour Name <enum 73 error_txfd_cbf_done_not_received_error> 564*5113495bSYour Name <enum 74 error_txfd_mpi_cbf_valid_to_error> 565*5113495bSYour Name <enum 75 error_txfd_cbf_start_missing_error> 566*5113495bSYour Name <enum 76 error_txfd_mimo_ctrl_error> 567*5113495bSYour Name <enum 77 error_txfd_cbf_buffer_ovfl_error> 568*5113495bSYour Name <enum 78 error_txfd_dma0_hang_error> 569*5113495bSYour Name <enum 79 error_txfd_dma1_hang_error> 570*5113495bSYour Name <enum 80 error_txfd_b2b_cbf_start_error> 571*5113495bSYour Name <enum 81 error_txfd_b2b_cbf_done_error> 572*5113495bSYour Name <enum 82 error_txfd_unsaved_cv_error> 573*5113495bSYour Name <enum 83 error_txfd_wt_mem_wr_conflict_error> 574*5113495bSYour Name <enum 84 error_txfd_wt_mem_rd_conflict_error> 575*5113495bSYour Name <enum 85 error_txfd_qre_intf_to_error> 576*5113495bSYour Name <enum 86 error_txfd_qre_txbf_stomp_rx_error> 577*5113495bSYour Name <enum 87 error_txfd_qre_rx_stomp_txbf_error> 578*5113495bSYour Name <enum 88 error_txfd_precoding_start_before_bf_param_clr_error> 579*5113495bSYour Name 580*5113495bSYour Name <enum 89 error_txfd_tone_map_lut_rd_conflict_error> 581*5113495bSYour Name <enum 90 error_txfd_precoding_fifo_ovfl_error> 582*5113495bSYour Name <enum 91 error_txfd_precoding_fifo_udfl_error> 583*5113495bSYour Name <enum 92 error_txfd_txbf_axi_slave_to_error> 584*5113495bSYour Name <enum 93 error_txfd_less_prefetch_tlvs_error> 585*5113495bSYour Name <enum 94 error_txfd_more_prefetch_tlvs_error> 586*5113495bSYour Name <enum 95 error_txfd_prefetch_fifo_ovfl_error> 587*5113495bSYour Name <enum 96 error_txfd_prefetch_fifo_udfl_error> 588*5113495bSYour Name <enum 97 error_txfd_precoding_error> 589*5113495bSYour Name <enum 98 error_txfd_cv_ctrl_state_to_error> 590*5113495bSYour Name <enum 99 error_txfd_txbfp_qre_tone_udfl_error> 591*5113495bSYour Name <enum 100 error_txfd_less_bf_param_per_user_tlvs_error> 592*5113495bSYour Name <enum 101 error_txfd_more_bf_param_per_user_tlvs_error> 593*5113495bSYour Name <enum 102 error_txfd_bf_param_common_unexpected_error> 594*5113495bSYour Name <enum 103 error_txfd_less_expect_cbf_per_user_tlvs_error> 595*5113495bSYour Name 596*5113495bSYour Name <enum 104 error_txfd_more_expect_cbf_per_user_tlvs_error> 597*5113495bSYour Name 598*5113495bSYour Name <enum 105 error_txfd_precoding_stg1_stg2_wait_to_error> 599*5113495bSYour Name <enum 106 error_txfd_expect_cbf_per_user_before_common_error> 600*5113495bSYour Name 601*5113495bSYour Name <enum 107 error_txfd_prefetch_per_user_before_common_error> 602*5113495bSYour Name 603*5113495bSYour Name <enum 108 error_txfd_bf_param_per_user_before_common_error> 604*5113495bSYour Name 605*5113495bSYour Name <enum 109 error_txfd_ndp_cbf_bw_mismatch_error> 606*5113495bSYour Name <enum 110 error_txtd_tx_pre_desc_error> 607*5113495bSYour Name <enum 111 error_txtd_tx_desc_error> 608*5113495bSYour Name <enum 112 error_txtd_start_error> 609*5113495bSYour Name <enum 113 error_txtd_sym_error> 610*5113495bSYour Name <enum 114 error_txtd_multi_sym_error> 611*5113495bSYour Name <enum 115 error_txtd_pre_data_error> 612*5113495bSYour Name <enum 116 error_txtd_pkt_data_error> 613*5113495bSYour Name <enum 117 error_txtd_pkt_end_error> 614*5113495bSYour Name <enum 118 error_txtd_tx_frame_unexp> 615*5113495bSYour Name <enum 119 error_txtd_start_unexp> 616*5113495bSYour Name <enum 120 error_txtd_fft_error_1> 617*5113495bSYour Name <enum 121 error_txtd_fft_error_2> 618*5113495bSYour Name <enum 122 error_txtd_uld_sym_cp_len_zero> 619*5113495bSYour Name <enum 123 error_txtd_start_done> 620*5113495bSYour Name <enum 124 error_txtd_start_nonidle> 621*5113495bSYour Name <enum 125 error_txtd_tx_abort_nonidle> 622*5113495bSYour Name <enum 126 error_txtd_tx_abort_done> 623*5113495bSYour Name <enum 127 error_txtd_tx_abort_idle> 624*5113495bSYour Name <enum 128 error_txtd_cck_sample_overflow> 625*5113495bSYour Name <enum 129 error_txtd_cck_timeout> 626*5113495bSYour Name <enum 130 error_txtd_ofdm_sym_mismatch> 627*5113495bSYour Name <enum 131 error_txtd_tx_vld_unalign_error> 628*5113495bSYour Name <enum 132 error_txtd_fft_cdc_fifo>This is the merged Rx/Tx 629*5113495bSYour Name CDC FIFO empty/full error code 630*5113495bSYour Name <enum 133 error_mac_tb_ppdu_abort>All 'error_txtd_chn' codes 631*5113495bSYour Name use this value as well. 632*5113495bSYour Name <enum 136 error_abort_req_from_macrx_enum_05>This code is 633*5113495bSYour Name used to abort the Tx when MAC Rx issues an abort request 634*5113495bSYour Name with code 05 "macrx_abort_too_much_bad_data." 635*5113495bSYour Name <enum 137 error_tx_extra_sym_mismatch> 636*5113495bSYour Name <enum 138 error_tx_vht_length_not_multiple_of_3> 637*5113495bSYour Name <enum 139 error_tx_11b_rate_illegal> 638*5113495bSYour Name <enum 140 error_tx_ht_rate_illegal> 639*5113495bSYour Name <enum 141 error_tx_vht_rate_illegal> 640*5113495bSYour Name <enum 142 error_mac_rf_only_abort> 641*5113495bSYour Name <enum 255 error_tx_invalid_error_code> 642*5113495bSYour Name */ 643*5113495bSYour Name 644*5113495bSYour Name #define TX_FLUSH_REQ_PHYTX_ABORT_REASON_OFFSET 0x0000000000000000 645*5113495bSYour Name #define TX_FLUSH_REQ_PHYTX_ABORT_REASON_LSB 8 646*5113495bSYour Name #define TX_FLUSH_REQ_PHYTX_ABORT_REASON_MSB 15 647*5113495bSYour Name #define TX_FLUSH_REQ_PHYTX_ABORT_REASON_MASK 0x000000000000ff00 648*5113495bSYour Name 649*5113495bSYour Name 650*5113495bSYour Name /* Description FLUSH_REQ_USER_NUMBER_OR_LINK_ID 651*5113495bSYour Name 652*5113495bSYour Name Field only valid when Flush_req_reason == TXPCU_PHYTX_ABORT_ERR 653*5113495bSYour Name or PDG_FLREQ_CODE_{TXOP, MLO}_ABORT 654*5113495bSYour Name 655*5113495bSYour Name In case of TXPCU_PHYTX_ABORT_ERR, for some errors, the user 656*5113495bSYour Name for which this error was detected can be indicated in this 657*5113495bSYour Name field. 658*5113495bSYour Name 659*5113495bSYour Name In case of PDG_FLREQ_CODE_*_ABORT due to MLO, this field 660*5113495bSYour Name will carry the partner link ID and validity due to which 661*5113495bSYour Name the abort was initiated. 662*5113495bSYour Name Bit [5]: partner link ID valid 663*5113495bSYour Name Bits [4:3]: set to 0 664*5113495bSYour Name Bits [2:0]: partner link ID 665*5113495bSYour Name <legal 0-39> 666*5113495bSYour Name */ 667*5113495bSYour Name 668*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_OFFSET 0x0000000000000000 669*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_LSB 16 670*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_MSB 21 671*5113495bSYour Name #define TX_FLUSH_REQ_FLUSH_REQ_USER_NUMBER_OR_LINK_ID_MASK 0x00000000003f0000 672*5113495bSYour Name 673*5113495bSYour Name 674*5113495bSYour Name /* Description MLO_ABORT_REASON 675*5113495bSYour Name 676*5113495bSYour Name Field valid only when Flush_req_reason == PDG_FLREQ_CODE_{TXOP, 677*5113495bSYour Name MLO}_ABORT 678*5113495bSYour Name 679*5113495bSYour Name <enum 0 sw_blocked_self> SW-specified block of the peer 680*5113495bSYour Name for self-link 681*5113495bSYour Name <enum 1 sw_blocked_partner> SW-specified block of the peer 682*5113495bSYour Name from a partner link 683*5113495bSYour Name <enum 2 rx_ongoing> Blocked due to RX ongoing in partner 684*5113495bSYour Name link 685*5113495bSYour Name <enum 3 cts2self_truncated> MLO truncated CTS2SELF leading 686*5113495bSYour Name to abort 687*5113495bSYour Name <enum 4 max_padding_exceeded> Maximum padding exceeded 688*5113495bSYour Name <enum 5 max_overlap_exceeded> Maximum overlap duration exceeded 689*5113495bSYour Name 690*5113495bSYour Name <enum 6 user_collision_threshold_exceeded> User collision 691*5113495bSYour Name threshold for MU exceeded 692*5113495bSYour Name <enum 7 sw_blocked_vdev_id> SW-specified block due to VDEV 693*5113495bSYour Name ID collision with a non-MLO broadcast/multicast 694*5113495bSYour Name <enum 8 r2r_response_truncated> 695*5113495bSYour Name <enum 10 emlsr_blackout> Blocked due to EMLSR black-out 696*5113495bSYour Name window 697*5113495bSYour Name <enum 16 t2_response_changed> T2 response changed in 'MLO_TX_RESP' 698*5113495bSYour Name 699*5113495bSYour Name <enum 17 ppdu_duration_zero> PPDU duration zero in 'MLO_TX_RESP' 700*5113495bSYour Name 701*5113495bSYour Name <enum 18 ppdu_duration_bigger_than_allowed> PPDU duration 702*5113495bSYour Name bigger than allowed in non-response mode 'MLO_TX_RESP' 703*5113495bSYour Name <enum 19 ppdu_padding_not_allowed> PPDU in non-A-MPDU format 704*5113495bSYour Name cannot be padded 705*5113495bSYour Name <enum 20 resp_ppdu_duration_truncated> PPDU duration truncated 706*5113495bSYour Name in response mode 'MLO_TX_RESP' 707*5113495bSYour Name <enum 21 ppdu_duration_limit> flush generated due to TXOP 708*5113495bSYour Name abort 709*5113495bSYour Name <enum 22 overview_mpdu_cnt_zero> flush generated due to 710*5113495bSYour Name TXOP abort as MPDU count is zero for all users in 'MPDU_QUEUE_OVERVIEW' 711*5113495bSYour Name 712*5113495bSYour Name <enum 23 overview_not_ready> flush generated due to MLO 713*5113495bSYour Name abort as 'MPDU_QUEUE_OVERVIEW' is not ready for all users 714*5113495bSYour Name at PPDU phase 715*5113495bSYour Name <enum 24 trigger_frame_mlo_alignment_fail> Trigger frame 716*5113495bSYour Name end-alignment cannot be met, e.g. due to LDPC extra symbol 717*5113495bSYour Name 718*5113495bSYour Name <enum 9 mlo_reserved> 719*5113495bSYour Name */ 720*5113495bSYour Name 721*5113495bSYour Name #define TX_FLUSH_REQ_MLO_ABORT_REASON_OFFSET 0x0000000000000000 722*5113495bSYour Name #define TX_FLUSH_REQ_MLO_ABORT_REASON_LSB 22 723*5113495bSYour Name #define TX_FLUSH_REQ_MLO_ABORT_REASON_MSB 26 724*5113495bSYour Name #define TX_FLUSH_REQ_MLO_ABORT_REASON_MASK 0x0000000007c00000 725*5113495bSYour Name 726*5113495bSYour Name 727*5113495bSYour Name /* Description RESERVED_0A 728*5113495bSYour Name 729*5113495bSYour Name <legal 0> 730*5113495bSYour Name */ 731*5113495bSYour Name 732*5113495bSYour Name #define TX_FLUSH_REQ_RESERVED_0A_OFFSET 0x0000000000000000 733*5113495bSYour Name #define TX_FLUSH_REQ_RESERVED_0A_LSB 27 734*5113495bSYour Name #define TX_FLUSH_REQ_RESERVED_0A_MSB 31 735*5113495bSYour Name #define TX_FLUSH_REQ_RESERVED_0A_MASK 0x00000000f8000000 736*5113495bSYour Name 737*5113495bSYour Name 738*5113495bSYour Name /* Description TLV64_PADDING 739*5113495bSYour Name 740*5113495bSYour Name Automatic DWORD padding inserted while converting TLV32 741*5113495bSYour Name to TLV64 for 64 bit ARCH 742*5113495bSYour Name <legal 0> 743*5113495bSYour Name */ 744*5113495bSYour Name 745*5113495bSYour Name #define TX_FLUSH_REQ_TLV64_PADDING_OFFSET 0x0000000000000000 746*5113495bSYour Name #define TX_FLUSH_REQ_TLV64_PADDING_LSB 32 747*5113495bSYour Name #define TX_FLUSH_REQ_TLV64_PADDING_MSB 63 748*5113495bSYour Name #define TX_FLUSH_REQ_TLV64_PADDING_MASK 0xffffffff00000000 749*5113495bSYour Name 750*5113495bSYour Name 751*5113495bSYour Name 752*5113495bSYour Name #endif // TX_FLUSH_REQ 753