1 2 /* Copyright (c) 2022, 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 19 20 21 22 23 24 25 26 #ifndef _RECEIVE_USER_INFO_H_ 27 #define _RECEIVE_USER_INFO_H_ 28 #if !defined(__ASSEMBLER__) 29 #endif 30 31 #define NUM_OF_DWORDS_RECEIVE_USER_INFO 8 32 33 34 struct receive_user_info { 35 #ifndef WIFI_BIT_ORDER_BIG_ENDIAN 36 uint32_t phy_ppdu_id : 16, // [15:0] 37 user_rssi : 8, // [23:16] 38 pkt_type : 4, // [27:24] 39 stbc : 1, // [28:28] 40 reception_type : 3; // [31:29] 41 uint32_t rate_mcs : 4, // [3:0] 42 sgi : 2, // [5:4] 43 he_ranging_ndp : 1, // [6:6] 44 reserved_1a : 1, // [7:7] 45 mimo_ss_bitmap : 8, // [15:8] 46 receive_bandwidth : 3, // [18:16] 47 reserved_1b : 5, // [23:19] 48 dl_ofdma_user_index : 8; // [31:24] 49 uint32_t dl_ofdma_content_channel : 1, // [0:0] 50 reserved_2a : 7, // [7:1] 51 nss : 3, // [10:8] 52 stream_offset : 3, // [13:11] 53 sta_dcm : 1, // [14:14] 54 ldpc : 1, // [15:15] 55 ru_type_80_0 : 4, // [19:16] 56 ru_type_80_1 : 4, // [23:20] 57 ru_type_80_2 : 4, // [27:24] 58 ru_type_80_3 : 4; // [31:28] 59 uint32_t ru_start_index_80_0 : 6, // [5:0] 60 reserved_3a : 2, // [7:6] 61 ru_start_index_80_1 : 6, // [13:8] 62 reserved_3b : 2, // [15:14] 63 ru_start_index_80_2 : 6, // [21:16] 64 reserved_3c : 2, // [23:22] 65 ru_start_index_80_3 : 6, // [29:24] 66 reserved_3d : 2; // [31:30] 67 uint32_t user_fd_rssi_seg0 : 32; // [31:0] 68 uint32_t user_fd_rssi_seg1 : 32; // [31:0] 69 uint32_t user_fd_rssi_seg2 : 32; // [31:0] 70 uint32_t user_fd_rssi_seg3 : 32; // [31:0] 71 #else 72 uint32_t reception_type : 3, // [31:29] 73 stbc : 1, // [28:28] 74 pkt_type : 4, // [27:24] 75 user_rssi : 8, // [23:16] 76 phy_ppdu_id : 16; // [15:0] 77 uint32_t dl_ofdma_user_index : 8, // [31:24] 78 reserved_1b : 5, // [23:19] 79 receive_bandwidth : 3, // [18:16] 80 mimo_ss_bitmap : 8, // [15:8] 81 reserved_1a : 1, // [7:7] 82 he_ranging_ndp : 1, // [6:6] 83 sgi : 2, // [5:4] 84 rate_mcs : 4; // [3:0] 85 uint32_t ru_type_80_3 : 4, // [31:28] 86 ru_type_80_2 : 4, // [27:24] 87 ru_type_80_1 : 4, // [23:20] 88 ru_type_80_0 : 4, // [19:16] 89 ldpc : 1, // [15:15] 90 sta_dcm : 1, // [14:14] 91 stream_offset : 3, // [13:11] 92 nss : 3, // [10:8] 93 reserved_2a : 7, // [7:1] 94 dl_ofdma_content_channel : 1; // [0:0] 95 uint32_t reserved_3d : 2, // [31:30] 96 ru_start_index_80_3 : 6, // [29:24] 97 reserved_3c : 2, // [23:22] 98 ru_start_index_80_2 : 6, // [21:16] 99 reserved_3b : 2, // [15:14] 100 ru_start_index_80_1 : 6, // [13:8] 101 reserved_3a : 2, // [7:6] 102 ru_start_index_80_0 : 6; // [5:0] 103 uint32_t user_fd_rssi_seg0 : 32; // [31:0] 104 uint32_t user_fd_rssi_seg1 : 32; // [31:0] 105 uint32_t user_fd_rssi_seg2 : 32; // [31:0] 106 uint32_t user_fd_rssi_seg3 : 32; // [31:0] 107 #endif 108 }; 109 110 111 /* Description PHY_PPDU_ID 112 113 A ppdu counter value that PHY increments for every PPDU 114 received. The counter value wraps around 115 <legal all> 116 */ 117 118 #define RECEIVE_USER_INFO_PHY_PPDU_ID_OFFSET 0x00000000 119 #define RECEIVE_USER_INFO_PHY_PPDU_ID_LSB 0 120 #define RECEIVE_USER_INFO_PHY_PPDU_ID_MSB 15 121 #define RECEIVE_USER_INFO_PHY_PPDU_ID_MASK 0x0000ffff 122 123 124 /* Description USER_RSSI 125 126 RSSI for this user 127 Frequency domain RSSI measurement for this user. Based on 128 the channel estimate. 129 130 <legal all> 131 */ 132 133 #define RECEIVE_USER_INFO_USER_RSSI_OFFSET 0x00000000 134 #define RECEIVE_USER_INFO_USER_RSSI_LSB 16 135 #define RECEIVE_USER_INFO_USER_RSSI_MSB 23 136 #define RECEIVE_USER_INFO_USER_RSSI_MASK 0x00ff0000 137 138 139 /* Description PKT_TYPE 140 141 Packet type: 142 143 <enum 0 dot11a>802.11a PPDU type 144 <enum 1 dot11b>802.11b PPDU type 145 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 146 <enum 3 dot11ac>802.11ac PPDU type 147 <enum 4 dot11ax>802.11ax PPDU type 148 <enum 5 dot11ba>802.11ba (WUR) PPDU type 149 <enum 6 dot11be>802.11be PPDU type 150 <enum 7 dot11az>802.11az (ranging) PPDU type 151 <enum 8 dot11n_gf>802.11n Green Field PPDU type (unsupported 152 & aborted) 153 */ 154 155 #define RECEIVE_USER_INFO_PKT_TYPE_OFFSET 0x00000000 156 #define RECEIVE_USER_INFO_PKT_TYPE_LSB 24 157 #define RECEIVE_USER_INFO_PKT_TYPE_MSB 27 158 #define RECEIVE_USER_INFO_PKT_TYPE_MASK 0x0f000000 159 160 161 /* Description STBC 162 163 When set, use STBC transmission rates 164 */ 165 166 #define RECEIVE_USER_INFO_STBC_OFFSET 0x00000000 167 #define RECEIVE_USER_INFO_STBC_LSB 28 168 #define RECEIVE_USER_INFO_STBC_MSB 28 169 #define RECEIVE_USER_INFO_STBC_MASK 0x10000000 170 171 172 /* Description RECEPTION_TYPE 173 174 Indicates what type of reception this is. 175 <enum 0 reception_type_SU > Basic SU reception (not 176 part of OFDMA or MU-MIMO) 177 <enum 1 reception_type_MU_MIMO > This is related to 178 DL type of reception 179 <enum 2 reception_type_MU_OFDMA > This is related to 180 DL type of reception 181 <enum 3 reception_type_MU_OFDMA_MIMO > This is related 182 to DL type of reception 183 <enum 4 reception_type_UL_MU_MIMO > This is related 184 to UL type of reception 185 <enum 5 reception_type_UL_MU_OFDMA > This is related 186 to UL type of reception 187 <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is related 188 to UL type of reception 189 190 <legal 0-6> 191 */ 192 193 #define RECEIVE_USER_INFO_RECEPTION_TYPE_OFFSET 0x00000000 194 #define RECEIVE_USER_INFO_RECEPTION_TYPE_LSB 29 195 #define RECEIVE_USER_INFO_RECEPTION_TYPE_MSB 31 196 #define RECEIVE_USER_INFO_RECEPTION_TYPE_MASK 0xe0000000 197 198 199 /* Description RATE_MCS 200 201 For details, refer to MCS_TYPE description 202 <legal all> 203 */ 204 205 #define RECEIVE_USER_INFO_RATE_MCS_OFFSET 0x00000004 206 #define RECEIVE_USER_INFO_RATE_MCS_LSB 0 207 #define RECEIVE_USER_INFO_RATE_MCS_MSB 3 208 #define RECEIVE_USER_INFO_RATE_MCS_MASK 0x0000000f 209 210 211 /* Description SGI 212 213 Field only valid when pkt type is HT, VHT or HE. 214 215 <enum 0 gi_0_8_us > Legacy normal GI. Can also be used 216 for HE 217 <enum 1 gi_0_4_us > Legacy short GI. Can also be used 218 for HE 219 <enum 2 gi_1_6_us > HE related GI 220 <enum 3 gi_3_2_us > HE related GI 221 <legal 0 - 3> 222 */ 223 224 #define RECEIVE_USER_INFO_SGI_OFFSET 0x00000004 225 #define RECEIVE_USER_INFO_SGI_LSB 4 226 #define RECEIVE_USER_INFO_SGI_MSB 5 227 #define RECEIVE_USER_INFO_SGI_MASK 0x00000030 228 229 230 /* Description HE_RANGING_NDP 231 232 Set to 1 for expected HE TB ranging NDP Rx in response to 233 sounding/secure sounding ranging Trigger Tx 234 235 <legal all> 236 */ 237 238 #define RECEIVE_USER_INFO_HE_RANGING_NDP_OFFSET 0x00000004 239 #define RECEIVE_USER_INFO_HE_RANGING_NDP_LSB 6 240 #define RECEIVE_USER_INFO_HE_RANGING_NDP_MSB 6 241 #define RECEIVE_USER_INFO_HE_RANGING_NDP_MASK 0x00000040 242 243 244 /* Description RESERVED_1A 245 246 <legal 0> 247 */ 248 249 #define RECEIVE_USER_INFO_RESERVED_1A_OFFSET 0x00000004 250 #define RECEIVE_USER_INFO_RESERVED_1A_LSB 7 251 #define RECEIVE_USER_INFO_RESERVED_1A_MSB 7 252 #define RECEIVE_USER_INFO_RESERVED_1A_MASK 0x00000080 253 254 255 /* Description MIMO_SS_BITMAP 256 257 Bitmap, with each bit indicating if the related spatial 258 stream is used for this STA 259 LSB related to SS 0 260 261 0: spatial stream not used for this reception 262 1: spatial stream used for this reception 263 264 <legal all> 265 */ 266 267 #define RECEIVE_USER_INFO_MIMO_SS_BITMAP_OFFSET 0x00000004 268 #define RECEIVE_USER_INFO_MIMO_SS_BITMAP_LSB 8 269 #define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MSB 15 270 #define RECEIVE_USER_INFO_MIMO_SS_BITMAP_MASK 0x0000ff00 271 272 273 /* Description RECEIVE_BANDWIDTH 274 275 Full receive Bandwidth 276 277 <enum 0 20_mhz>20 Mhz BW 278 <enum 1 40_mhz>40 Mhz BW 279 <enum 2 80_mhz>80 Mhz BW 280 <enum 3 160_mhz>160 Mhz BW 281 <enum 4 320_mhz>320 Mhz BW 282 <enum 5 240_mhz>240 Mhz BW 283 */ 284 285 #define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_OFFSET 0x00000004 286 #define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_LSB 16 287 #define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MSB 18 288 #define RECEIVE_USER_INFO_RECEIVE_BANDWIDTH_MASK 0x00070000 289 290 291 /* Description RESERVED_1B 292 293 <legal 0> 294 */ 295 296 #define RECEIVE_USER_INFO_RESERVED_1B_OFFSET 0x00000004 297 #define RECEIVE_USER_INFO_RESERVED_1B_LSB 19 298 #define RECEIVE_USER_INFO_RESERVED_1B_MSB 23 299 #define RECEIVE_USER_INFO_RESERVED_1B_MASK 0x00f80000 300 301 302 /* Description DL_OFDMA_USER_INDEX 303 304 Field only valid in the of DL MU OFDMA reception 305 306 The user number within the RU_allocation. 307 308 This is needed for SW to determine the exact RU position 309 within the reception. 310 <legal all> 311 */ 312 313 #define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_OFFSET 0x00000004 314 #define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_LSB 24 315 #define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MSB 31 316 #define RECEIVE_USER_INFO_DL_OFDMA_USER_INDEX_MASK 0xff000000 317 318 319 /* Description DL_OFDMA_CONTENT_CHANNEL 320 321 Field only valid in the of DL MU OFDMA/MIMO reception 322 323 In case of DL MU reception, this field indicates the content 324 channel number where PHY found the RU information for this 325 user 326 327 This is needed for SW to determine the exact RU position 328 within the reception. 329 330 <enum 0 content_channel_1> 331 <enum 1 content_channel_2> 332 333 <legal all> 334 */ 335 336 #define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000008 337 #define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_LSB 0 338 #define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MSB 0 339 #define RECEIVE_USER_INFO_DL_OFDMA_CONTENT_CHANNEL_MASK 0x00000001 340 341 342 /* Description RESERVED_2A 343 344 <legal 0> 345 */ 346 347 #define RECEIVE_USER_INFO_RESERVED_2A_OFFSET 0x00000008 348 #define RECEIVE_USER_INFO_RESERVED_2A_LSB 1 349 #define RECEIVE_USER_INFO_RESERVED_2A_MSB 7 350 #define RECEIVE_USER_INFO_RESERVED_2A_MASK 0x000000fe 351 352 353 /* Description NSS 354 355 Field only valid in case of Uplink_receive_type == mimo_only 356 OR ofdma_mimo 357 358 Number of Spatial Streams occupied by the User 359 360 <enum 0 1_spatial_stream>Single spatial stream 361 <enum 1 2_spatial_streams>2 spatial streams 362 <enum 2 3_spatial_streams>3 spatial streams 363 <enum 3 4_spatial_streams>4 spatial streams 364 <enum 4 5_spatial_streams>5 spatial streams 365 <enum 5 6_spatial_streams>6 spatial streams 366 <enum 6 7_spatial_streams>7 spatial streams 367 <enum 7 8_spatial_streams>8 spatial streams 368 */ 369 370 #define RECEIVE_USER_INFO_NSS_OFFSET 0x00000008 371 #define RECEIVE_USER_INFO_NSS_LSB 8 372 #define RECEIVE_USER_INFO_NSS_MSB 10 373 #define RECEIVE_USER_INFO_NSS_MASK 0x00000700 374 375 376 /* Description STREAM_OFFSET 377 378 Field only valid in case of Uplink_receive_type == mimo_only 379 OR ofdma_mimo 380 381 Stream Offset from which the User occupies the Streams 382 383 Note MAC: 384 directly from pdg_fes_setup, based on BW 385 */ 386 387 #define RECEIVE_USER_INFO_STREAM_OFFSET_OFFSET 0x00000008 388 #define RECEIVE_USER_INFO_STREAM_OFFSET_LSB 11 389 #define RECEIVE_USER_INFO_STREAM_OFFSET_MSB 13 390 #define RECEIVE_USER_INFO_STREAM_OFFSET_MASK 0x00003800 391 392 393 /* Description STA_DCM 394 395 Indicates whether dual sub-carrier modulation is applied 396 397 0: No DCM 398 1:DCM 399 <legal all> 400 */ 401 402 #define RECEIVE_USER_INFO_STA_DCM_OFFSET 0x00000008 403 #define RECEIVE_USER_INFO_STA_DCM_LSB 14 404 #define RECEIVE_USER_INFO_STA_DCM_MSB 14 405 #define RECEIVE_USER_INFO_STA_DCM_MASK 0x00004000 406 407 408 /* Description LDPC 409 410 When set, use LDPC transmission rates were used. 411 <legal all> 412 */ 413 414 #define RECEIVE_USER_INFO_LDPC_OFFSET 0x00000008 415 #define RECEIVE_USER_INFO_LDPC_LSB 15 416 #define RECEIVE_USER_INFO_LDPC_MSB 15 417 #define RECEIVE_USER_INFO_LDPC_MASK 0x00008000 418 419 420 /* Description RU_TYPE_80_0 421 422 Indicates the size of the RU in the first 80 MHz sub-band 423 424 <enum 0 RU_26_per80> 425 <enum 1 RU_52_per80> 426 <enum 2 RU_78_per80> 427 <enum 3 RU_106_per80> 428 <enum 4 RU_132_per80> 429 <enum 5 RU_242_per80> 430 <enum 6 RU_484_per80> 431 <enum 7 RU_726_per80> 432 <enum 8 RU_996_per80> 433 <enum 9 RU_996x2> 434 <enum 10 RU_996x3> 435 <enum 11 RU_996x4> 436 <enum 12 RU_rsvd0> DO NOT USE 437 <enum 13 RU_rsvd1> DO NOT USE 438 <enum 14 RU_rsvd2> DO NOT USE 439 <enum 15 RU_NONE> No RUs in this 80 MHz 440 <legal 0-15> 441 */ 442 443 #define RECEIVE_USER_INFO_RU_TYPE_80_0_OFFSET 0x00000008 444 #define RECEIVE_USER_INFO_RU_TYPE_80_0_LSB 16 445 #define RECEIVE_USER_INFO_RU_TYPE_80_0_MSB 19 446 #define RECEIVE_USER_INFO_RU_TYPE_80_0_MASK 0x000f0000 447 448 449 /* Description RU_TYPE_80_1 450 451 Indicates the size of the RU in the second 80 MHz sub-band 452 453 <enum 0 RU_26_per80> 454 <enum 1 RU_52_per80> 455 <enum 2 RU_78_per80> 456 <enum 3 RU_106_per80> 457 <enum 4 RU_132_per80> 458 <enum 5 RU_242_per80> 459 <enum 6 RU_484_per80> 460 <enum 7 RU_726_per80> 461 <enum 8 RU_996_per80> 462 <enum 9 RU_996x2> 463 <enum 10 RU_996x3> 464 <enum 11 RU_996x4> 465 <enum 12 RU_rsvd0> DO NOT USE 466 <enum 13 RU_rsvd1> DO NOT USE 467 <enum 14 RU_rsvd2> DO NOT USE 468 <enum 15 RU_NONE> No RUs in this 80 MHz 469 <legal 0-15> 470 */ 471 472 #define RECEIVE_USER_INFO_RU_TYPE_80_1_OFFSET 0x00000008 473 #define RECEIVE_USER_INFO_RU_TYPE_80_1_LSB 20 474 #define RECEIVE_USER_INFO_RU_TYPE_80_1_MSB 23 475 #define RECEIVE_USER_INFO_RU_TYPE_80_1_MASK 0x00f00000 476 477 478 /* Description RU_TYPE_80_2 479 480 Indicates the size of the RU in the third 80 MHz sub-band 481 482 <enum 0 RU_26_per80> 483 <enum 1 RU_52_per80> 484 <enum 2 RU_78_per80> 485 <enum 3 RU_106_per80> 486 <enum 4 RU_132_per80> 487 <enum 5 RU_242_per80> 488 <enum 6 RU_484_per80> 489 <enum 7 RU_726_per80> 490 <enum 8 RU_996_per80> 491 <enum 9 RU_996x2> 492 <enum 10 RU_996x3> 493 <enum 11 RU_996x4> 494 <enum 12 RU_rsvd0> DO NOT USE 495 <enum 13 RU_rsvd1> DO NOT USE 496 <enum 14 RU_rsvd2> DO NOT USE 497 <enum 15 RU_NONE> No RUs in this 80 MHz 498 <legal 0-15> 499 */ 500 501 #define RECEIVE_USER_INFO_RU_TYPE_80_2_OFFSET 0x00000008 502 #define RECEIVE_USER_INFO_RU_TYPE_80_2_LSB 24 503 #define RECEIVE_USER_INFO_RU_TYPE_80_2_MSB 27 504 #define RECEIVE_USER_INFO_RU_TYPE_80_2_MASK 0x0f000000 505 506 507 /* Description RU_TYPE_80_3 508 509 Indicates the size of the RU in the fourth 80 MHz sub-band 510 511 <enum 0 RU_26_per80> 512 <enum 1 RU_52_per80> 513 <enum 2 RU_78_per80> 514 <enum 3 RU_106_per80> 515 <enum 4 RU_132_per80> 516 <enum 5 RU_242_per80> 517 <enum 6 RU_484_per80> 518 <enum 7 RU_726_per80> 519 <enum 8 RU_996_per80> 520 <enum 9 RU_996x2> 521 <enum 10 RU_996x3> 522 <enum 11 RU_996x4> 523 <enum 12 RU_rsvd0> DO NOT USE 524 <enum 13 RU_rsvd1> DO NOT USE 525 <enum 14 RU_rsvd2> DO NOT USE 526 <enum 15 RU_NONE> No RUs in this 80 MHz 527 <legal 0-15> 528 */ 529 530 #define RECEIVE_USER_INFO_RU_TYPE_80_3_OFFSET 0x00000008 531 #define RECEIVE_USER_INFO_RU_TYPE_80_3_LSB 28 532 #define RECEIVE_USER_INFO_RU_TYPE_80_3_MSB 31 533 #define RECEIVE_USER_INFO_RU_TYPE_80_3_MASK 0xf0000000 534 535 536 /* Description RU_START_INDEX_80_0 537 538 RU index number to which User is assigned in the first 80 539 MHz 540 RU numbering is over the entire BW, starting from 0 and 541 in increasing frequency order and not primary-secondary 542 order 543 <legal 0-36> 544 */ 545 546 #define RECEIVE_USER_INFO_RU_START_INDEX_80_0_OFFSET 0x0000000c 547 #define RECEIVE_USER_INFO_RU_START_INDEX_80_0_LSB 0 548 #define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MSB 5 549 #define RECEIVE_USER_INFO_RU_START_INDEX_80_0_MASK 0x0000003f 550 551 552 /* Description RESERVED_3A 553 554 <legal 0> 555 */ 556 557 #define RECEIVE_USER_INFO_RESERVED_3A_OFFSET 0x0000000c 558 #define RECEIVE_USER_INFO_RESERVED_3A_LSB 6 559 #define RECEIVE_USER_INFO_RESERVED_3A_MSB 7 560 #define RECEIVE_USER_INFO_RESERVED_3A_MASK 0x000000c0 561 562 563 /* Description RU_START_INDEX_80_1 564 565 RU index number to which User is assigned in the second 566 80 MHz 567 RU numbering is over the entire BW, starting from 0 and 568 in increasing frequency order and not primary-secondary 569 order 570 <legal 0-36> 571 */ 572 573 #define RECEIVE_USER_INFO_RU_START_INDEX_80_1_OFFSET 0x0000000c 574 #define RECEIVE_USER_INFO_RU_START_INDEX_80_1_LSB 8 575 #define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MSB 13 576 #define RECEIVE_USER_INFO_RU_START_INDEX_80_1_MASK 0x00003f00 577 578 579 /* Description RESERVED_3B 580 581 <legal 0> 582 */ 583 584 #define RECEIVE_USER_INFO_RESERVED_3B_OFFSET 0x0000000c 585 #define RECEIVE_USER_INFO_RESERVED_3B_LSB 14 586 #define RECEIVE_USER_INFO_RESERVED_3B_MSB 15 587 #define RECEIVE_USER_INFO_RESERVED_3B_MASK 0x0000c000 588 589 590 /* Description RU_START_INDEX_80_2 591 592 RU index number to which User is assigned in the third 80 593 MHz 594 RU numbering is over the entire BW, starting from 0 and 595 in increasing frequency order and not primary-secondary 596 order 597 <legal 0-36> 598 */ 599 600 #define RECEIVE_USER_INFO_RU_START_INDEX_80_2_OFFSET 0x0000000c 601 #define RECEIVE_USER_INFO_RU_START_INDEX_80_2_LSB 16 602 #define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MSB 21 603 #define RECEIVE_USER_INFO_RU_START_INDEX_80_2_MASK 0x003f0000 604 605 606 /* Description RESERVED_3C 607 608 <legal 0> 609 */ 610 611 #define RECEIVE_USER_INFO_RESERVED_3C_OFFSET 0x0000000c 612 #define RECEIVE_USER_INFO_RESERVED_3C_LSB 22 613 #define RECEIVE_USER_INFO_RESERVED_3C_MSB 23 614 #define RECEIVE_USER_INFO_RESERVED_3C_MASK 0x00c00000 615 616 617 /* Description RU_START_INDEX_80_3 618 619 RU index number to which User is assigned in the fourth 620 80 MHz 621 RU numbering is over the entire BW, starting from 0 and 622 in increasing frequency order and not primary-secondary 623 order 624 <legal 0-36> 625 */ 626 627 #define RECEIVE_USER_INFO_RU_START_INDEX_80_3_OFFSET 0x0000000c 628 #define RECEIVE_USER_INFO_RU_START_INDEX_80_3_LSB 24 629 #define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MSB 29 630 #define RECEIVE_USER_INFO_RU_START_INDEX_80_3_MASK 0x3f000000 631 632 633 /* Description RESERVED_3D 634 635 <legal 0> 636 */ 637 638 #define RECEIVE_USER_INFO_RESERVED_3D_OFFSET 0x0000000c 639 #define RECEIVE_USER_INFO_RESERVED_3D_LSB 30 640 #define RECEIVE_USER_INFO_RESERVED_3D_MSB 31 641 #define RECEIVE_USER_INFO_RESERVED_3D_MASK 0xc0000000 642 643 644 /* Description USER_FD_RSSI_SEG0 645 646 Frequency domain RSSI measurement for the lowest 80 MHz 647 subband of this user, per spatial stream 648 [7:0]: first spatial stream 649 ... 650 [31:24]: fourth spatial stream 651 652 <legal all> 653 */ 654 655 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_OFFSET 0x00000010 656 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_LSB 0 657 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MSB 31 658 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG0_MASK 0xffffffff 659 660 661 /* Description USER_FD_RSSI_SEG1 662 663 Frequency domain RSSI measurement for the second lowest 664 80 MHz subband of this user, per spatial stream 665 [7:0]: first spatial stream 666 ... 667 [31:24]: fourth spatial stream 668 669 <legal all> 670 */ 671 672 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_OFFSET 0x00000014 673 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_LSB 0 674 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MSB 31 675 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG1_MASK 0xffffffff 676 677 678 /* Description USER_FD_RSSI_SEG2 679 680 Frequency domain RSSI measurement for the third lowest 80 681 MHz subband of this user, per spatial stream 682 [7:0]: first spatial stream 683 ... 684 [31:24]: fourth spatial stream 685 686 <legal all> 687 */ 688 689 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_OFFSET 0x00000018 690 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_LSB 0 691 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MSB 31 692 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG2_MASK 0xffffffff 693 694 695 /* Description USER_FD_RSSI_SEG3 696 697 Frequency domain RSSI measurement for the highest 80 MHz 698 subband of this user, per spatial stream 699 [7:0]: first spatial stream 700 ... 701 [31:24]: fourth spatial stream 702 703 In Hamilton v1 this structure had 4 more (32-bit) words 704 after this field. 705 <legal all> 706 */ 707 708 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_OFFSET 0x0000001c 709 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_LSB 0 710 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MSB 31 711 #define RECEIVE_USER_INFO_USER_FD_RSSI_SEG3_MASK 0xffffffff 712 713 714 715 #endif // RECEIVE_USER_INFO 716