1 2 /* 3 * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 * SPDX-License-Identifier: ISC 5 */ 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #ifndef _VHT_SIG_A_INFO_H_ 20 #define _VHT_SIG_A_INFO_H_ 21 #if !defined(__ASSEMBLER__) 22 #endif 23 24 #define NUM_OF_DWORDS_VHT_SIG_A_INFO 2 25 26 27 struct vht_sig_a_info { 28 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 29 uint32_t bandwidth : 2, 30 vhta_reserved_0 : 1, 31 stbc : 1, 32 group_id : 6, 33 n_sts : 12, 34 txop_ps_not_allowed : 1, 35 vhta_reserved_0b : 1, 36 reserved_0 : 8; 37 uint32_t gi_setting : 2, 38 su_mu_coding : 1, 39 ldpc_extra_symbol : 1, 40 mcs : 4, 41 beamformed : 1, 42 vhta_reserved_1 : 1, 43 crc : 8, 44 tail : 6, 45 reserved_1 : 7, 46 rx_integrity_check_passed : 1; 47 #else 48 uint32_t reserved_0 : 8, 49 vhta_reserved_0b : 1, 50 txop_ps_not_allowed : 1, 51 n_sts : 12, 52 group_id : 6, 53 stbc : 1, 54 vhta_reserved_0 : 1, 55 bandwidth : 2; 56 uint32_t rx_integrity_check_passed : 1, 57 reserved_1 : 7, 58 tail : 6, 59 crc : 8, 60 vhta_reserved_1 : 1, 61 beamformed : 1, 62 mcs : 4, 63 ldpc_extra_symbol : 1, 64 su_mu_coding : 1, 65 gi_setting : 2; 66 #endif 67 }; 68 69 70 71 72 #define VHT_SIG_A_INFO_BANDWIDTH_OFFSET 0x00000000 73 #define VHT_SIG_A_INFO_BANDWIDTH_LSB 0 74 #define VHT_SIG_A_INFO_BANDWIDTH_MSB 1 75 #define VHT_SIG_A_INFO_BANDWIDTH_MASK 0x00000003 76 77 78 79 80 #define VHT_SIG_A_INFO_VHTA_RESERVED_0_OFFSET 0x00000000 81 #define VHT_SIG_A_INFO_VHTA_RESERVED_0_LSB 2 82 #define VHT_SIG_A_INFO_VHTA_RESERVED_0_MSB 2 83 #define VHT_SIG_A_INFO_VHTA_RESERVED_0_MASK 0x00000004 84 85 86 87 88 #define VHT_SIG_A_INFO_STBC_OFFSET 0x00000000 89 #define VHT_SIG_A_INFO_STBC_LSB 3 90 #define VHT_SIG_A_INFO_STBC_MSB 3 91 #define VHT_SIG_A_INFO_STBC_MASK 0x00000008 92 93 94 95 96 #define VHT_SIG_A_INFO_GROUP_ID_OFFSET 0x00000000 97 #define VHT_SIG_A_INFO_GROUP_ID_LSB 4 98 #define VHT_SIG_A_INFO_GROUP_ID_MSB 9 99 #define VHT_SIG_A_INFO_GROUP_ID_MASK 0x000003f0 100 101 102 103 104 #define VHT_SIG_A_INFO_N_STS_OFFSET 0x00000000 105 #define VHT_SIG_A_INFO_N_STS_LSB 10 106 #define VHT_SIG_A_INFO_N_STS_MSB 21 107 #define VHT_SIG_A_INFO_N_STS_MASK 0x003ffc00 108 109 110 111 112 #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_OFFSET 0x00000000 113 #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_LSB 22 114 #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MSB 22 115 #define VHT_SIG_A_INFO_TXOP_PS_NOT_ALLOWED_MASK 0x00400000 116 117 118 119 120 #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_OFFSET 0x00000000 121 #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_LSB 23 122 #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MSB 23 123 #define VHT_SIG_A_INFO_VHTA_RESERVED_0B_MASK 0x00800000 124 125 126 127 128 #define VHT_SIG_A_INFO_RESERVED_0_OFFSET 0x00000000 129 #define VHT_SIG_A_INFO_RESERVED_0_LSB 24 130 #define VHT_SIG_A_INFO_RESERVED_0_MSB 31 131 #define VHT_SIG_A_INFO_RESERVED_0_MASK 0xff000000 132 133 134 135 136 #define VHT_SIG_A_INFO_GI_SETTING_OFFSET 0x00000004 137 #define VHT_SIG_A_INFO_GI_SETTING_LSB 0 138 #define VHT_SIG_A_INFO_GI_SETTING_MSB 1 139 #define VHT_SIG_A_INFO_GI_SETTING_MASK 0x00000003 140 141 142 143 144 #define VHT_SIG_A_INFO_SU_MU_CODING_OFFSET 0x00000004 145 #define VHT_SIG_A_INFO_SU_MU_CODING_LSB 2 146 #define VHT_SIG_A_INFO_SU_MU_CODING_MSB 2 147 #define VHT_SIG_A_INFO_SU_MU_CODING_MASK 0x00000004 148 149 150 151 152 #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004 153 #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_LSB 3 154 #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MSB 3 155 #define VHT_SIG_A_INFO_LDPC_EXTRA_SYMBOL_MASK 0x00000008 156 157 158 159 160 #define VHT_SIG_A_INFO_MCS_OFFSET 0x00000004 161 #define VHT_SIG_A_INFO_MCS_LSB 4 162 #define VHT_SIG_A_INFO_MCS_MSB 7 163 #define VHT_SIG_A_INFO_MCS_MASK 0x000000f0 164 165 166 167 168 #define VHT_SIG_A_INFO_BEAMFORMED_OFFSET 0x00000004 169 #define VHT_SIG_A_INFO_BEAMFORMED_LSB 8 170 #define VHT_SIG_A_INFO_BEAMFORMED_MSB 8 171 #define VHT_SIG_A_INFO_BEAMFORMED_MASK 0x00000100 172 173 174 175 176 #define VHT_SIG_A_INFO_VHTA_RESERVED_1_OFFSET 0x00000004 177 #define VHT_SIG_A_INFO_VHTA_RESERVED_1_LSB 9 178 #define VHT_SIG_A_INFO_VHTA_RESERVED_1_MSB 9 179 #define VHT_SIG_A_INFO_VHTA_RESERVED_1_MASK 0x00000200 180 181 182 183 184 #define VHT_SIG_A_INFO_CRC_OFFSET 0x00000004 185 #define VHT_SIG_A_INFO_CRC_LSB 10 186 #define VHT_SIG_A_INFO_CRC_MSB 17 187 #define VHT_SIG_A_INFO_CRC_MASK 0x0003fc00 188 189 190 191 192 #define VHT_SIG_A_INFO_TAIL_OFFSET 0x00000004 193 #define VHT_SIG_A_INFO_TAIL_LSB 18 194 #define VHT_SIG_A_INFO_TAIL_MSB 23 195 #define VHT_SIG_A_INFO_TAIL_MASK 0x00fc0000 196 197 198 199 200 #define VHT_SIG_A_INFO_RESERVED_1_OFFSET 0x00000004 201 #define VHT_SIG_A_INFO_RESERVED_1_LSB 24 202 #define VHT_SIG_A_INFO_RESERVED_1_MSB 30 203 #define VHT_SIG_A_INFO_RESERVED_1_MASK 0x7f000000 204 205 206 207 208 #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004 209 #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31 210 #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31 211 #define VHT_SIG_A_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000 212 213 214 215 #endif 216