1 /* 2 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 18 #ifndef _TX_FES_STATUS_PROT_H_ 19 #define _TX_FES_STATUS_PROT_H_ 20 21 #include "phytx_abort_request_info.h" 22 #define NUM_OF_DWORDS_TX_FES_STATUS_PROT 3 23 24 struct tx_fes_status_prot { 25 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 26 uint32_t success : 1, 27 phytx_pkt_end_info_valid : 1, 28 phytx_abort_request_info_valid : 1, 29 reserved_0 : 20, 30 pkt_type : 4, 31 dot11ax_su_extended : 1, 32 rate_mcs : 4; 33 uint32_t frame_type : 2, 34 frame_subtype : 4, 35 rx_pwr_mgmt : 1, 36 status : 1, 37 duration_field : 16, 38 reserved_1a : 2, 39 agc_cbw : 3, 40 service_cbw : 3; 41 struct phytx_abort_request_info phytx_abort_request_info_details; 42 uint16_t reserved_2a : 16; 43 #else 44 uint32_t rate_mcs : 4, 45 dot11ax_su_extended : 1, 46 pkt_type : 4, 47 reserved_0 : 20, 48 phytx_abort_request_info_valid : 1, 49 phytx_pkt_end_info_valid : 1, 50 success : 1; 51 uint32_t service_cbw : 3, 52 agc_cbw : 3, 53 reserved_1a : 2, 54 duration_field : 16, 55 status : 1, 56 rx_pwr_mgmt : 1, 57 frame_subtype : 4, 58 frame_type : 2; 59 uint32_t reserved_2a : 16; 60 struct phytx_abort_request_info phytx_abort_request_info_details; 61 #endif 62 }; 63 64 #define TX_FES_STATUS_PROT_SUCCESS_OFFSET 0x00000000 65 #define TX_FES_STATUS_PROT_SUCCESS_LSB 0 66 #define TX_FES_STATUS_PROT_SUCCESS_MSB 0 67 #define TX_FES_STATUS_PROT_SUCCESS_MASK 0x00000001 68 69 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_OFFSET 0x00000000 70 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_LSB 1 71 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MSB 1 72 #define TX_FES_STATUS_PROT_PHYTX_PKT_END_INFO_VALID_MASK 0x00000002 73 74 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_OFFSET 0x00000000 75 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_LSB 2 76 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MSB 2 77 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_VALID_MASK 0x00000004 78 79 #define TX_FES_STATUS_PROT_RESERVED_0_OFFSET 0x00000000 80 #define TX_FES_STATUS_PROT_RESERVED_0_LSB 3 81 #define TX_FES_STATUS_PROT_RESERVED_0_MSB 22 82 #define TX_FES_STATUS_PROT_RESERVED_0_MASK 0x007ffff8 83 84 #define TX_FES_STATUS_PROT_PKT_TYPE_OFFSET 0x00000000 85 #define TX_FES_STATUS_PROT_PKT_TYPE_LSB 23 86 #define TX_FES_STATUS_PROT_PKT_TYPE_MSB 26 87 #define TX_FES_STATUS_PROT_PKT_TYPE_MASK 0x07800000 88 89 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_OFFSET 0x00000000 90 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_LSB 27 91 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MSB 27 92 #define TX_FES_STATUS_PROT_DOT11AX_SU_EXTENDED_MASK 0x08000000 93 94 #define TX_FES_STATUS_PROT_RATE_MCS_OFFSET 0x00000000 95 #define TX_FES_STATUS_PROT_RATE_MCS_LSB 28 96 #define TX_FES_STATUS_PROT_RATE_MCS_MSB 31 97 #define TX_FES_STATUS_PROT_RATE_MCS_MASK 0xf0000000 98 99 #define TX_FES_STATUS_PROT_FRAME_TYPE_OFFSET 0x00000004 100 #define TX_FES_STATUS_PROT_FRAME_TYPE_LSB 0 101 #define TX_FES_STATUS_PROT_FRAME_TYPE_MSB 1 102 #define TX_FES_STATUS_PROT_FRAME_TYPE_MASK 0x00000003 103 104 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_OFFSET 0x00000004 105 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_LSB 2 106 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MSB 5 107 #define TX_FES_STATUS_PROT_FRAME_SUBTYPE_MASK 0x0000003c 108 109 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_OFFSET 0x00000004 110 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_LSB 6 111 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MSB 6 112 #define TX_FES_STATUS_PROT_RX_PWR_MGMT_MASK 0x00000040 113 114 #define TX_FES_STATUS_PROT_STATUS_OFFSET 0x00000004 115 #define TX_FES_STATUS_PROT_STATUS_LSB 7 116 #define TX_FES_STATUS_PROT_STATUS_MSB 7 117 #define TX_FES_STATUS_PROT_STATUS_MASK 0x00000080 118 119 #define TX_FES_STATUS_PROT_DURATION_FIELD_OFFSET 0x00000004 120 #define TX_FES_STATUS_PROT_DURATION_FIELD_LSB 8 121 #define TX_FES_STATUS_PROT_DURATION_FIELD_MSB 23 122 #define TX_FES_STATUS_PROT_DURATION_FIELD_MASK 0x00ffff00 123 124 #define TX_FES_STATUS_PROT_RESERVED_1A_OFFSET 0x00000004 125 #define TX_FES_STATUS_PROT_RESERVED_1A_LSB 24 126 #define TX_FES_STATUS_PROT_RESERVED_1A_MSB 25 127 #define TX_FES_STATUS_PROT_RESERVED_1A_MASK 0x03000000 128 129 #define TX_FES_STATUS_PROT_AGC_CBW_OFFSET 0x00000004 130 #define TX_FES_STATUS_PROT_AGC_CBW_LSB 26 131 #define TX_FES_STATUS_PROT_AGC_CBW_MSB 28 132 #define TX_FES_STATUS_PROT_AGC_CBW_MASK 0x1c000000 133 134 #define TX_FES_STATUS_PROT_SERVICE_CBW_OFFSET 0x00000004 135 #define TX_FES_STATUS_PROT_SERVICE_CBW_LSB 29 136 #define TX_FES_STATUS_PROT_SERVICE_CBW_MSB 31 137 #define TX_FES_STATUS_PROT_SERVICE_CBW_MASK 0xe0000000 138 139 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_OFFSET 0x00000008 140 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_LSB 0 141 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MSB 7 142 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_PHYTX_ABORT_REASON_MASK 0x000000ff 143 144 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_OFFSET 0x00000008 145 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_LSB 8 146 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MSB 13 147 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_USER_NUMBER_MASK 0x00003f00 148 149 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_OFFSET 0x00000008 150 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_LSB 14 151 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MSB 15 152 #define TX_FES_STATUS_PROT_PHYTX_ABORT_REQUEST_INFO_DETAILS_RESERVED_MASK 0x0000c000 153 154 #define TX_FES_STATUS_PROT_RESERVED_2A_OFFSET 0x00000008 155 #define TX_FES_STATUS_PROT_RESERVED_2A_LSB 16 156 #define TX_FES_STATUS_PROT_RESERVED_2A_MSB 31 157 #define TX_FES_STATUS_PROT_RESERVED_2A_MASK 0xffff0000 158 159 #endif 160