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 _VHT_SIG_B_SU160_INFO_H_ 19 #define _VHT_SIG_B_SU160_INFO_H_ 20 21 #define NUM_OF_DWORDS_VHT_SIG_B_SU160_INFO 8 22 23 struct vht_sig_b_su160_info { 24 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 25 uint32_t length : 21, 26 vhtb_reserved : 2, 27 tail : 6, 28 reserved_0 : 2, 29 rx_ndp : 1; 30 uint32_t length_copy_a : 21, 31 vhtb_reserved_copy_a : 2, 32 tail_copy_a : 6, 33 reserved_1 : 2, 34 rx_ndp_copy_a : 1; 35 uint32_t length_copy_b : 21, 36 vhtb_reserved_copy_b : 2, 37 tail_copy_b : 6, 38 reserved_2 : 2, 39 rx_ndp_copy_b : 1; 40 uint32_t length_copy_c : 21, 41 vhtb_reserved_copy_c : 2, 42 tail_copy_c : 6, 43 reserved_3 : 2, 44 rx_ndp_copy_c : 1; 45 uint32_t length_copy_d : 21, 46 vhtb_reserved_copy_d : 2, 47 tail_copy_d : 6, 48 reserved_4 : 2, 49 rx_ndp_copy_d : 1; 50 uint32_t length_copy_e : 21, 51 vhtb_reserved_copy_e : 2, 52 tail_copy_e : 6, 53 reserved_5 : 2, 54 rx_ndp_copy_e : 1; 55 uint32_t length_copy_f : 21, 56 vhtb_reserved_copy_f : 2, 57 tail_copy_f : 6, 58 reserved_6 : 2, 59 rx_ndp_copy_f : 1; 60 uint32_t length_copy_g : 21, 61 vhtb_reserved_copy_g : 2, 62 tail_copy_g : 6, 63 reserved_7 : 2, 64 rx_ndp_copy_g : 1; 65 #else 66 uint32_t rx_ndp : 1, 67 reserved_0 : 2, 68 tail : 6, 69 vhtb_reserved : 2, 70 length : 21; 71 uint32_t rx_ndp_copy_a : 1, 72 reserved_1 : 2, 73 tail_copy_a : 6, 74 vhtb_reserved_copy_a : 2, 75 length_copy_a : 21; 76 uint32_t rx_ndp_copy_b : 1, 77 reserved_2 : 2, 78 tail_copy_b : 6, 79 vhtb_reserved_copy_b : 2, 80 length_copy_b : 21; 81 uint32_t rx_ndp_copy_c : 1, 82 reserved_3 : 2, 83 tail_copy_c : 6, 84 vhtb_reserved_copy_c : 2, 85 length_copy_c : 21; 86 uint32_t rx_ndp_copy_d : 1, 87 reserved_4 : 2, 88 tail_copy_d : 6, 89 vhtb_reserved_copy_d : 2, 90 length_copy_d : 21; 91 uint32_t rx_ndp_copy_e : 1, 92 reserved_5 : 2, 93 tail_copy_e : 6, 94 vhtb_reserved_copy_e : 2, 95 length_copy_e : 21; 96 uint32_t rx_ndp_copy_f : 1, 97 reserved_6 : 2, 98 tail_copy_f : 6, 99 vhtb_reserved_copy_f : 2, 100 length_copy_f : 21; 101 uint32_t rx_ndp_copy_g : 1, 102 reserved_7 : 2, 103 tail_copy_g : 6, 104 vhtb_reserved_copy_g : 2, 105 length_copy_g : 21; 106 #endif 107 }; 108 109 #define VHT_SIG_B_SU160_INFO_LENGTH_OFFSET 0x00000000 110 #define VHT_SIG_B_SU160_INFO_LENGTH_LSB 0 111 #define VHT_SIG_B_SU160_INFO_LENGTH_MSB 20 112 #define VHT_SIG_B_SU160_INFO_LENGTH_MASK 0x001fffff 113 114 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_OFFSET 0x00000000 115 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_LSB 21 116 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MSB 22 117 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_MASK 0x00600000 118 119 #define VHT_SIG_B_SU160_INFO_TAIL_OFFSET 0x00000000 120 #define VHT_SIG_B_SU160_INFO_TAIL_LSB 23 121 #define VHT_SIG_B_SU160_INFO_TAIL_MSB 28 122 #define VHT_SIG_B_SU160_INFO_TAIL_MASK 0x1f800000 123 124 #define VHT_SIG_B_SU160_INFO_RESERVED_0_OFFSET 0x00000000 125 #define VHT_SIG_B_SU160_INFO_RESERVED_0_LSB 29 126 #define VHT_SIG_B_SU160_INFO_RESERVED_0_MSB 30 127 #define VHT_SIG_B_SU160_INFO_RESERVED_0_MASK 0x60000000 128 129 #define VHT_SIG_B_SU160_INFO_RX_NDP_OFFSET 0x00000000 130 #define VHT_SIG_B_SU160_INFO_RX_NDP_LSB 31 131 #define VHT_SIG_B_SU160_INFO_RX_NDP_MSB 31 132 #define VHT_SIG_B_SU160_INFO_RX_NDP_MASK 0x80000000 133 134 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_OFFSET 0x00000004 135 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_LSB 0 136 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MSB 20 137 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_A_MASK 0x001fffff 138 139 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_OFFSET 0x00000004 140 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_LSB 21 141 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MSB 22 142 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_A_MASK 0x00600000 143 144 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_OFFSET 0x00000004 145 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_LSB 23 146 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MSB 28 147 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_A_MASK 0x1f800000 148 149 #define VHT_SIG_B_SU160_INFO_RESERVED_1_OFFSET 0x00000004 150 #define VHT_SIG_B_SU160_INFO_RESERVED_1_LSB 29 151 #define VHT_SIG_B_SU160_INFO_RESERVED_1_MSB 30 152 #define VHT_SIG_B_SU160_INFO_RESERVED_1_MASK 0x60000000 153 154 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_OFFSET 0x00000004 155 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_LSB 31 156 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MSB 31 157 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_A_MASK 0x80000000 158 159 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_OFFSET 0x00000008 160 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_LSB 0 161 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MSB 20 162 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_B_MASK 0x001fffff 163 164 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_OFFSET 0x00000008 165 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_LSB 21 166 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MSB 22 167 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_B_MASK 0x00600000 168 169 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_OFFSET 0x00000008 170 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_LSB 23 171 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MSB 28 172 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_B_MASK 0x1f800000 173 174 #define VHT_SIG_B_SU160_INFO_RESERVED_2_OFFSET 0x00000008 175 #define VHT_SIG_B_SU160_INFO_RESERVED_2_LSB 29 176 #define VHT_SIG_B_SU160_INFO_RESERVED_2_MSB 30 177 #define VHT_SIG_B_SU160_INFO_RESERVED_2_MASK 0x60000000 178 179 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_OFFSET 0x00000008 180 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_LSB 31 181 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MSB 31 182 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_B_MASK 0x80000000 183 184 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_OFFSET 0x0000000c 185 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_LSB 0 186 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MSB 20 187 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_C_MASK 0x001fffff 188 189 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_OFFSET 0x0000000c 190 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_LSB 21 191 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MSB 22 192 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_C_MASK 0x00600000 193 194 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_OFFSET 0x0000000c 195 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_LSB 23 196 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MSB 28 197 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_C_MASK 0x1f800000 198 199 #define VHT_SIG_B_SU160_INFO_RESERVED_3_OFFSET 0x0000000c 200 #define VHT_SIG_B_SU160_INFO_RESERVED_3_LSB 29 201 #define VHT_SIG_B_SU160_INFO_RESERVED_3_MSB 30 202 #define VHT_SIG_B_SU160_INFO_RESERVED_3_MASK 0x60000000 203 204 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_OFFSET 0x0000000c 205 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_LSB 31 206 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MSB 31 207 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_C_MASK 0x80000000 208 209 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_OFFSET 0x00000010 210 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_LSB 0 211 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MSB 20 212 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_D_MASK 0x001fffff 213 214 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_OFFSET 0x00000010 215 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_LSB 21 216 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MSB 22 217 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_D_MASK 0x00600000 218 219 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_OFFSET 0x00000010 220 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_LSB 23 221 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MSB 28 222 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_D_MASK 0x1f800000 223 224 #define VHT_SIG_B_SU160_INFO_RESERVED_4_OFFSET 0x00000010 225 #define VHT_SIG_B_SU160_INFO_RESERVED_4_LSB 29 226 #define VHT_SIG_B_SU160_INFO_RESERVED_4_MSB 30 227 #define VHT_SIG_B_SU160_INFO_RESERVED_4_MASK 0x60000000 228 229 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_OFFSET 0x00000010 230 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_LSB 31 231 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MSB 31 232 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_D_MASK 0x80000000 233 234 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_OFFSET 0x00000014 235 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_LSB 0 236 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MSB 20 237 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_E_MASK 0x001fffff 238 239 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_OFFSET 0x00000014 240 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_LSB 21 241 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MSB 22 242 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_E_MASK 0x00600000 243 244 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_OFFSET 0x00000014 245 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_LSB 23 246 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MSB 28 247 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_E_MASK 0x1f800000 248 249 #define VHT_SIG_B_SU160_INFO_RESERVED_5_OFFSET 0x00000014 250 #define VHT_SIG_B_SU160_INFO_RESERVED_5_LSB 29 251 #define VHT_SIG_B_SU160_INFO_RESERVED_5_MSB 30 252 #define VHT_SIG_B_SU160_INFO_RESERVED_5_MASK 0x60000000 253 254 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_OFFSET 0x00000014 255 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_LSB 31 256 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MSB 31 257 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_E_MASK 0x80000000 258 259 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_OFFSET 0x00000018 260 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_LSB 0 261 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MSB 20 262 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_F_MASK 0x001fffff 263 264 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_OFFSET 0x00000018 265 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_LSB 21 266 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MSB 22 267 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_F_MASK 0x00600000 268 269 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_OFFSET 0x00000018 270 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_LSB 23 271 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MSB 28 272 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_F_MASK 0x1f800000 273 274 #define VHT_SIG_B_SU160_INFO_RESERVED_6_OFFSET 0x00000018 275 #define VHT_SIG_B_SU160_INFO_RESERVED_6_LSB 29 276 #define VHT_SIG_B_SU160_INFO_RESERVED_6_MSB 30 277 #define VHT_SIG_B_SU160_INFO_RESERVED_6_MASK 0x60000000 278 279 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_OFFSET 0x00000018 280 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_LSB 31 281 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MSB 31 282 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_F_MASK 0x80000000 283 284 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_OFFSET 0x0000001c 285 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_LSB 0 286 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MSB 20 287 #define VHT_SIG_B_SU160_INFO_LENGTH_COPY_G_MASK 0x001fffff 288 289 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_OFFSET 0x0000001c 290 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_LSB 21 291 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MSB 22 292 #define VHT_SIG_B_SU160_INFO_VHTB_RESERVED_COPY_G_MASK 0x00600000 293 294 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_OFFSET 0x0000001c 295 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_LSB 23 296 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MSB 28 297 #define VHT_SIG_B_SU160_INFO_TAIL_COPY_G_MASK 0x1f800000 298 299 #define VHT_SIG_B_SU160_INFO_RESERVED_7_OFFSET 0x0000001c 300 #define VHT_SIG_B_SU160_INFO_RESERVED_7_LSB 29 301 #define VHT_SIG_B_SU160_INFO_RESERVED_7_MSB 30 302 #define VHT_SIG_B_SU160_INFO_RESERVED_7_MASK 0x60000000 303 304 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_OFFSET 0x0000001c 305 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_LSB 31 306 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MSB 31 307 #define VHT_SIG_B_SU160_INFO_RX_NDP_COPY_G_MASK 0x80000000 308 309 #endif 310