receive_user_info.h 29 KB

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