rx_ppdu_start_user_info.h 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  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 _RX_PPDU_START_USER_INFO_H_
  17. #define _RX_PPDU_START_USER_INFO_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. #include "receive_user_info.h"
  21. #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 8
  22. #define NUM_OF_QWORDS_RX_PPDU_START_USER_INFO 4
  23. struct rx_ppdu_start_user_info {
  24. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  25. struct receive_user_info receive_user_info_details;
  26. #else
  27. struct receive_user_info receive_user_info_details;
  28. #endif
  29. };
  30. /* Description RECEIVE_USER_INFO_DETAILS
  31. Overview of receive parameters that the MAC needs to prepend
  32. to every received MSDU/MPDU.
  33. */
  34. /* Description PHY_PPDU_ID
  35. A ppdu counter value that PHY increments for every PPDU
  36. received. The counter value wraps around
  37. <legal all>
  38. */
  39. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x0000000000000000
  40. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0
  41. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MSB 15
  42. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x000000000000ffff
  43. /* Description USER_RSSI
  44. RSSI for this user
  45. Frequency domain RSSI measurement for this user. Based on
  46. the channel estimate.
  47. <legal all>
  48. */
  49. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x0000000000000000
  50. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16
  51. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MSB 23
  52. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x0000000000ff0000
  53. /* Description PKT_TYPE
  54. Packet type:
  55. <enum_type PKT_TYPE_ENUM>
  56. */
  57. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x0000000000000000
  58. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24
  59. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MSB 27
  60. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x000000000f000000
  61. /* Description STBC
  62. When set, use STBC transmission rates
  63. */
  64. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x0000000000000000
  65. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28
  66. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MSB 28
  67. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x0000000010000000
  68. /* Description RECEPTION_TYPE
  69. Indicates what type of reception this is.
  70. <enum 0 reception_type_SU > Basic SU reception (not
  71. part of OFDMA or MU-MIMO)
  72. <enum 1 reception_type_MU_MIMO > This is related to
  73. DL type of reception
  74. <enum 2 reception_type_MU_OFDMA > This is related to
  75. DL type of reception
  76. <enum 3 reception_type_MU_OFDMA_MIMO > This is related
  77. to DL type of reception
  78. <enum 4 reception_type_UL_MU_MIMO > This is related
  79. to UL type of reception
  80. <enum 5 reception_type_UL_MU_OFDMA > This is related
  81. to UL type of reception
  82. <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is related
  83. to UL type of reception
  84. <legal 0-6>
  85. */
  86. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x0000000000000000
  87. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29
  88. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MSB 31
  89. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0x00000000e0000000
  90. /* Description RATE_MCS
  91. For details, refer to MCS_TYPE description
  92. <legal all>
  93. */
  94. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x0000000000000000
  95. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 32
  96. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MSB 35
  97. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f00000000
  98. /* Description SGI
  99. Field only valid when pkt type is HT, VHT or HE.
  100. <enum 0 gi_0_8_us > Legacy normal GI. Can also be used
  101. for HE
  102. <enum 1 gi_0_4_us > Legacy short GI. Can also be used
  103. for HE
  104. <enum 2 gi_1_6_us > HE related GI
  105. <enum 3 gi_3_2_us > HE related GI
  106. <legal 0 - 3>
  107. */
  108. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x0000000000000000
  109. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_LSB 36
  110. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MSB 37
  111. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x0000003000000000
  112. /* Description HE_RANGING_NDP
  113. Set to 1 for expected HE TB ranging NDP Rx in response to
  114. sounding/secure sounding ranging Trigger Tx
  115. <legal all>
  116. */
  117. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_OFFSET 0x0000000000000000
  118. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_LSB 38
  119. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MSB 38
  120. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_HE_RANGING_NDP_MASK 0x0000004000000000
  121. /* Description RESERVED_1A
  122. <legal 0>
  123. */
  124. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_OFFSET 0x0000000000000000
  125. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_LSB 39
  126. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MSB 39
  127. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1A_MASK 0x0000008000000000
  128. /* Description MIMO_SS_BITMAP
  129. Bitmap, with each bit indicating if the related spatial
  130. stream is used for this STA
  131. LSB related to SS 0
  132. 0: spatial stream not used for this reception
  133. 1: spatial stream used for this reception
  134. <legal all>
  135. */
  136. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x0000000000000000
  137. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 40
  138. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MSB 47
  139. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff0000000000
  140. /* Description RECEIVE_BANDWIDTH
  141. Full receive Bandwidth
  142. <enum_type BW_ENUM>
  143. */
  144. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x0000000000000000
  145. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 48
  146. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MSB 50
  147. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x0007000000000000
  148. /* Description RESERVED_1B
  149. <legal 0>
  150. */
  151. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_OFFSET 0x0000000000000000
  152. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_LSB 51
  153. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MSB 55
  154. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_1B_MASK 0x00f8000000000000
  155. /* Description DL_OFDMA_USER_INDEX
  156. Field only valid in the of DL MU OFDMA reception
  157. The user number within the RU_allocation.
  158. This is needed for SW to determine the exact RU position
  159. within the reception.
  160. <legal all>
  161. */
  162. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_OFFSET 0x0000000000000000
  163. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_LSB 56
  164. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MSB 63
  165. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_USER_INDEX_MASK 0xff00000000000000
  166. /* Description DL_OFDMA_CONTENT_CHANNEL
  167. Field only valid in the of DL MU OFDMA/MIMO reception
  168. In case of DL MU reception, this field indicates the content
  169. channel number where PHY found the RU information for this
  170. user
  171. This is needed for SW to determine the exact RU position
  172. within the reception.
  173. <enum 0 content_channel_1>
  174. <enum 1 content_channel_2>
  175. <legal all>
  176. */
  177. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_OFFSET 0x0000000000000008
  178. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_LSB 0
  179. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MSB 0
  180. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_DL_OFDMA_CONTENT_CHANNEL_MASK 0x0000000000000001
  181. /* Description RESERVED_2A
  182. <legal 0>
  183. */
  184. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x0000000000000008
  185. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 1
  186. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MSB 7
  187. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0x00000000000000fe
  188. /* Description NSS
  189. Field only valid in case of Uplink_receive_type == mimo_only
  190. OR ofdma_mimo
  191. Number of Spatial Streams occupied by the User
  192. <enum_type SS_COUNT_ENUM>
  193. */
  194. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_OFFSET 0x0000000000000008
  195. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_LSB 8
  196. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MSB 10
  197. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_NSS_MASK 0x0000000000000700
  198. /* Description STREAM_OFFSET
  199. Field only valid in case of Uplink_receive_type == mimo_only
  200. OR ofdma_mimo
  201. Stream Offset from which the User occupies the Streams
  202. Note MAC:
  203. directly from pdg_fes_setup, based on BW
  204. */
  205. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_OFFSET 0x0000000000000008
  206. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_LSB 11
  207. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MSB 13
  208. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STREAM_OFFSET_MASK 0x0000000000003800
  209. /* Description STA_DCM
  210. Indicates whether dual sub-carrier modulation is applied
  211. 0: No DCM
  212. 1:DCM
  213. <legal all>
  214. */
  215. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_OFFSET 0x0000000000000008
  216. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_LSB 14
  217. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MSB 14
  218. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_STA_DCM_MASK 0x0000000000004000
  219. /* Description LDPC
  220. When set, use LDPC transmission rates were used.
  221. <legal all>
  222. */
  223. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x0000000000000008
  224. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 15
  225. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MSB 15
  226. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x0000000000008000
  227. /* Description RU_TYPE_80_0
  228. Indicates the size of the RU in the first 80 MHz sub-band
  229. <enum 0 RU_26_per80>
  230. <enum 1 RU_52_per80>
  231. <enum 2 RU_78_per80>
  232. <enum 3 RU_106_per80>
  233. <enum 4 RU_132_per80>
  234. <enum 5 RU_242_per80>
  235. <enum 6 RU_484_per80>
  236. <enum 7 RU_726_per80>
  237. <enum 8 RU_996_per80>
  238. <enum 9 RU_996x2>
  239. <enum 10 RU_996x3>
  240. <enum 11 RU_996x4>
  241. <enum 12 RU_rsvd0> DO NOT USE
  242. <enum 13 RU_rsvd1> DO NOT USE
  243. <enum 14 RU_rsvd2> DO NOT USE
  244. <enum 15 RU_NONE> No RUs in this 80 MHz
  245. <legal 0-15>
  246. */
  247. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_OFFSET 0x0000000000000008
  248. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_LSB 16
  249. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MSB 19
  250. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_0_MASK 0x00000000000f0000
  251. /* Description RU_TYPE_80_1
  252. Indicates the size of the RU in the second 80 MHz sub-band
  253. <enum 0 RU_26_per80>
  254. <enum 1 RU_52_per80>
  255. <enum 2 RU_78_per80>
  256. <enum 3 RU_106_per80>
  257. <enum 4 RU_132_per80>
  258. <enum 5 RU_242_per80>
  259. <enum 6 RU_484_per80>
  260. <enum 7 RU_726_per80>
  261. <enum 8 RU_996_per80>
  262. <enum 9 RU_996x2>
  263. <enum 10 RU_996x3>
  264. <enum 11 RU_996x4>
  265. <enum 12 RU_rsvd0> DO NOT USE
  266. <enum 13 RU_rsvd1> DO NOT USE
  267. <enum 14 RU_rsvd2> DO NOT USE
  268. <enum 15 RU_NONE> No RUs in this 80 MHz
  269. <legal 0-15>
  270. */
  271. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_OFFSET 0x0000000000000008
  272. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_LSB 20
  273. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MSB 23
  274. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_1_MASK 0x0000000000f00000
  275. /* Description RU_TYPE_80_2
  276. Indicates the size of the RU in the third 80 MHz sub-band
  277. <enum 0 RU_26_per80>
  278. <enum 1 RU_52_per80>
  279. <enum 2 RU_78_per80>
  280. <enum 3 RU_106_per80>
  281. <enum 4 RU_132_per80>
  282. <enum 5 RU_242_per80>
  283. <enum 6 RU_484_per80>
  284. <enum 7 RU_726_per80>
  285. <enum 8 RU_996_per80>
  286. <enum 9 RU_996x2>
  287. <enum 10 RU_996x3>
  288. <enum 11 RU_996x4>
  289. <enum 12 RU_rsvd0> DO NOT USE
  290. <enum 13 RU_rsvd1> DO NOT USE
  291. <enum 14 RU_rsvd2> DO NOT USE
  292. <enum 15 RU_NONE> No RUs in this 80 MHz
  293. <legal 0-15>
  294. */
  295. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_OFFSET 0x0000000000000008
  296. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_LSB 24
  297. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MSB 27
  298. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_2_MASK 0x000000000f000000
  299. /* Description RU_TYPE_80_3
  300. Indicates the size of the RU in the fourth 80 MHz sub-band
  301. <enum 0 RU_26_per80>
  302. <enum 1 RU_52_per80>
  303. <enum 2 RU_78_per80>
  304. <enum 3 RU_106_per80>
  305. <enum 4 RU_132_per80>
  306. <enum 5 RU_242_per80>
  307. <enum 6 RU_484_per80>
  308. <enum 7 RU_726_per80>
  309. <enum 8 RU_996_per80>
  310. <enum 9 RU_996x2>
  311. <enum 10 RU_996x3>
  312. <enum 11 RU_996x4>
  313. <enum 12 RU_rsvd0> DO NOT USE
  314. <enum 13 RU_rsvd1> DO NOT USE
  315. <enum 14 RU_rsvd2> DO NOT USE
  316. <enum 15 RU_NONE> No RUs in this 80 MHz
  317. <legal 0-15>
  318. */
  319. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_OFFSET 0x0000000000000008
  320. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_LSB 28
  321. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MSB 31
  322. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_TYPE_80_3_MASK 0x00000000f0000000
  323. /* Description RU_START_INDEX_80_0
  324. RU index number to which User is assigned in the first 80
  325. MHz
  326. RU numbering is over the entire BW, starting from 0 and
  327. in increasing frequency order and not primary-secondary
  328. order
  329. <legal 0-36>
  330. */
  331. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_OFFSET 0x0000000000000008
  332. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_LSB 32
  333. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MSB 37
  334. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_0_MASK 0x0000003f00000000
  335. /* Description RESERVED_3A
  336. <legal 0>
  337. */
  338. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_OFFSET 0x0000000000000008
  339. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_LSB 38
  340. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MSB 39
  341. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3A_MASK 0x000000c000000000
  342. /* Description RU_START_INDEX_80_1
  343. RU index number to which User is assigned in the second
  344. 80 MHz
  345. RU numbering is over the entire BW, starting from 0 and
  346. in increasing frequency order and not primary-secondary
  347. order
  348. <legal 0-36>
  349. */
  350. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_OFFSET 0x0000000000000008
  351. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_LSB 40
  352. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MSB 45
  353. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_1_MASK 0x00003f0000000000
  354. /* Description RESERVED_3B
  355. <legal 0>
  356. */
  357. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_OFFSET 0x0000000000000008
  358. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_LSB 46
  359. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MSB 47
  360. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3B_MASK 0x0000c00000000000
  361. /* Description RU_START_INDEX_80_2
  362. RU index number to which User is assigned in the third 80
  363. MHz
  364. RU numbering is over the entire BW, starting from 0 and
  365. in increasing frequency order and not primary-secondary
  366. order
  367. <legal 0-36>
  368. */
  369. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_OFFSET 0x0000000000000008
  370. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_LSB 48
  371. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MSB 53
  372. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_2_MASK 0x003f000000000000
  373. /* Description RESERVED_3C
  374. <legal 0>
  375. */
  376. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_OFFSET 0x0000000000000008
  377. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_LSB 54
  378. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MSB 55
  379. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3C_MASK 0x00c0000000000000
  380. /* Description RU_START_INDEX_80_3
  381. RU index number to which User is assigned in the fourth
  382. 80 MHz
  383. RU numbering is over the entire BW, starting from 0 and
  384. in increasing frequency order and not primary-secondary
  385. order
  386. <legal 0-36>
  387. */
  388. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_OFFSET 0x0000000000000008
  389. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_LSB 56
  390. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MSB 61
  391. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RU_START_INDEX_80_3_MASK 0x3f00000000000000
  392. /* Description RESERVED_3D
  393. <legal 0>
  394. */
  395. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_OFFSET 0x0000000000000008
  396. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_LSB 62
  397. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MSB 63
  398. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_RESERVED_3D_MASK 0xc000000000000000
  399. /* Description USER_FD_RSSI_SEG0
  400. Frequency domain RSSI measurement for the lowest 80 MHz
  401. subband of this user, per spatial stream
  402. [7:0]: first spatial stream
  403. ...
  404. [31:24]: fourth spatial stream
  405. <legal all>
  406. */
  407. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_OFFSET 0x0000000000000010
  408. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_LSB 0
  409. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MSB 31
  410. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG0_MASK 0x00000000ffffffff
  411. /* Description USER_FD_RSSI_SEG1
  412. Frequency domain RSSI measurement for the second lowest
  413. 80 MHz subband of this user, per spatial stream
  414. [7:0]: first spatial stream
  415. ...
  416. [31:24]: fourth spatial stream
  417. <legal all>
  418. */
  419. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_OFFSET 0x0000000000000010
  420. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_LSB 32
  421. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MSB 63
  422. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG1_MASK 0xffffffff00000000
  423. /* Description USER_FD_RSSI_SEG2
  424. Frequency domain RSSI measurement for the third lowest 80
  425. MHz subband of this user, per spatial stream
  426. [7:0]: first spatial stream
  427. ...
  428. [31:24]: fourth spatial stream
  429. <legal all>
  430. */
  431. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_OFFSET 0x0000000000000018
  432. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_LSB 0
  433. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MSB 31
  434. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG2_MASK 0x00000000ffffffff
  435. /* Description USER_FD_RSSI_SEG3
  436. Frequency domain RSSI measurement for the highest 80 MHz
  437. subband of this user, per spatial stream
  438. [7:0]: first spatial stream
  439. ...
  440. [31:24]: fourth spatial stream
  441. <legal all>
  442. */
  443. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_OFFSET 0x0000000000000018
  444. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_LSB 32
  445. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MSB 63
  446. #define RX_PPDU_START_USER_INFO_RECEIVE_USER_INFO_DETAILS_USER_FD_RSSI_SEG3_MASK 0xffffffff00000000
  447. #endif // RX_PPDU_START_USER_INFO