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