he_sig_a_su_info.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859
  1. /*
  2. * Copyright (c) 2020, The Linux Foundation. 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 _HE_SIG_A_SU_INFO_H_
  17. #define _HE_SIG_A_SU_INFO_H_
  18. #if !defined(__ASSEMBLER__)
  19. #endif
  20. // ################ START SUMMARY #################
  21. //
  22. // Dword Fields
  23. // 0 format_indication[0], beam_change[1], dl_ul_flag[2], transmit_mcs[6:3], dcm[7], bss_color_id[13:8], reserved_0a[14], spatial_reuse[18:15], transmit_bw[20:19], cp_ltf_size[22:21], nsts[25:23], reserved_0b[31:26]
  24. // 1 txop_duration[6:0], coding[7], ldpc_extra_symbol[8], stbc[9], txbf[10], packet_extension_a_factor[12:11], packet_extension_pe_disambiguity[13], reserved_1a[14], doppler_indication[15], crc[19:16], tail[25:20], dot11ax_su_extended[26], dot11ax_ext_ru_size[30:27], rx_ndp[31]
  25. //
  26. // ################ END SUMMARY #################
  27. #define NUM_OF_DWORDS_HE_SIG_A_SU_INFO 2
  28. struct he_sig_a_su_info {
  29. uint32_t format_indication : 1, //[0]
  30. beam_change : 1, //[1]
  31. dl_ul_flag : 1, //[2]
  32. transmit_mcs : 4, //[6:3]
  33. dcm : 1, //[7]
  34. bss_color_id : 6, //[13:8]
  35. reserved_0a : 1, //[14]
  36. spatial_reuse : 4, //[18:15]
  37. transmit_bw : 2, //[20:19]
  38. cp_ltf_size : 2, //[22:21]
  39. nsts : 3, //[25:23]
  40. reserved_0b : 6; //[31:26]
  41. uint32_t txop_duration : 7, //[6:0]
  42. coding : 1, //[7]
  43. ldpc_extra_symbol : 1, //[8]
  44. stbc : 1, //[9]
  45. txbf : 1, //[10]
  46. packet_extension_a_factor : 2, //[12:11]
  47. packet_extension_pe_disambiguity: 1, //[13]
  48. reserved_1a : 1, //[14]
  49. doppler_indication : 1, //[15]
  50. crc : 4, //[19:16]
  51. tail : 6, //[25:20]
  52. dot11ax_su_extended : 1, //[26]
  53. dot11ax_ext_ru_size : 4, //[30:27]
  54. rx_ndp : 1; //[31]
  55. };
  56. /*
  57. format_indication
  58. <enum 0 HE_SIGA_FORMAT_HE_TRIG>
  59. <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
  60. <legal all>
  61. beam_change
  62. Indicates whether spatial mapping is changed between
  63. legacy and HE portion of preamble. If not, channel
  64. estimation can include legacy preamble to improve accuracy
  65. <legal all>
  66. dl_ul_flag
  67. Differentiates between DL and UL transmission
  68. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  69. <enum 1 DL_UL_FLAG_IS_UL>
  70. <legal all>
  71. transmit_mcs
  72. Indicates the data MCS
  73. Field Used by MAC HW
  74. <legal all>
  75. dcm
  76. 0: No DCM
  77. 1:DCM
  78. <legal all>
  79. bss_color_id
  80. BSS color ID
  81. Field Used by MAC HW
  82. <legal all>
  83. reserved_0a
  84. Note: spec indicates this shall be set to 1
  85. <legal 1>
  86. spatial_reuse
  87. Spatial reuse
  88. For 20MHz one SR field corresponding to entire 20MHz
  89. (other 3 fields indicate identical values)
  90. For 40MHz two SR fields for each 20MHz (other 2 fields
  91. indicate identical values)
  92. For 80MHz four SR fields for each 20MHz
  93. For 160MHz four SR fields for each 40MHz
  94. <legal all>
  95. transmit_bw
  96. Bandwidth of the PPDU.
  97. For HE SU PPDU
  98. <enum 0 HE_SIG_A_BW20> 20 Mhz
  99. <enum 1 HE_SIG_A_BW40> 40 Mhz
  100. <enum 2 HE_SIG_A_BW80> 80 Mhz
  101. <enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
  102. For HE Extended Range SU PPDU
  103. Set to 0 for 242-tone RU
  104. Set to 1 for right 106-tone RU within the primary 20 MHz
  105. On RX side, Field Used by MAC HW
  106. <legal all>
  107. cp_ltf_size
  108. Indicates the CP and HE-LTF type
  109. <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP (See note for
  110. proprietary mode)
  111. <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP (See note
  112. for proprietary mode)
  113. <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP (See note
  114. for proprietary mode)
  115. <enum 3 FourX_LTF_0_8CP_3_2CP>
  116. When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
  117. When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
  118. In this scenario, Neither DCM nor STBC is applied to HE data
  119. field.
  120. (See note for proprietary mode)
  121. NOTE:
  122. For QTI proprietary mode
  123. If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
  124. 0 = 1xLTF + 0.4 usec
  125. 1 = 2xLTF + 0.4 usec
  126. 2~3 = Reserved
  127. <legal all>
  128. nsts
  129. For HE SU PPDU
  130. For HE Extended Range PPDU
  131. <legal all>
  132. reserved_0b
  133. <legal 0>
  134. txop_duration
  135. Indicates the remaining time in the current TXOP
  136. Field Used by MAC HW
  137. <legal all>
  138. coding
  139. Distinguishes between BCC and LDPC coding.
  140. 0: BCC
  141. 1: LDPC
  142. <legal all>
  143. ldpc_extra_symbol
  144. If LDPC,
  145. 0: LDPC extra symbol not present
  146. 1: LDPC extra symbol present
  147. Else
  148. Set to 1
  149. <legal all>
  150. stbc
  151. Indicates whether STBC is applied
  152. 0: No STBC
  153. 1: STBC
  154. <legal all>
  155. txbf
  156. Indicates whether beamforming is applied
  157. 0: No beamforming
  158. 1: beamforming
  159. <legal all>
  160. packet_extension_a_factor
  161. Common trigger info
  162. the packet extension duration of the trigger-based PPDU
  163. response with these two bits indicating the a-factor
  164. <enum 0 a_factor_4>
  165. <enum 1 a_factor_1>
  166. <enum 2 a_factor_2>
  167. <enum 3 a_factor_3>
  168. <legal all>
  169. packet_extension_pe_disambiguity
  170. Common trigger info
  171. the packet extension duration of the trigger-based PPDU
  172. response with this bit indicating the PE-Disambiguity
  173. <legal all>
  174. reserved_1a
  175. Note: per standard, set to 1
  176. <legal 1>
  177. doppler_indication
  178. 0: No Doppler support
  179. 1: Doppler support
  180. <legal all>
  181. crc
  182. CRC for HE-SIG-A contents.
  183. <legal all>
  184. tail
  185. <legal 0>
  186. dot11ax_su_extended
  187. TX side:
  188. Set to 0
  189. RX side:
  190. On RX side, evaluated by MAC HW. This is the only way
  191. for MAC RX to know that this was an HE_SIG_A_SU received in
  192. 'extended' format
  193. <legal all>
  194. dot11ax_ext_ru_size
  195. TX side:
  196. Set to 0
  197. RX side:
  198. Field only contains valid info when dot11ax_su_extended
  199. is set.
  200. On RX side, evaluated by MAC HW. This is the only way
  201. for MAC RX to know what the number of based RUs was in this
  202. extended range reception. It is used by the MAC to determine
  203. the RU size for the response...
  204. <legal all>
  205. rx_ndp
  206. TX side:
  207. Set to 0
  208. RX side:Valid on RX side only, and looked at by MAC HW
  209. When set, PHY has received (expected) NDP frame
  210. <legal all>
  211. */
  212. /* Description HE_SIG_A_SU_INFO_0_FORMAT_INDICATION
  213. <enum 0 HE_SIGA_FORMAT_HE_TRIG>
  214. <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU>
  215. <legal all>
  216. */
  217. #define HE_SIG_A_SU_INFO_0_FORMAT_INDICATION_OFFSET 0x00000000
  218. #define HE_SIG_A_SU_INFO_0_FORMAT_INDICATION_LSB 0
  219. #define HE_SIG_A_SU_INFO_0_FORMAT_INDICATION_MASK 0x00000001
  220. /* Description HE_SIG_A_SU_INFO_0_BEAM_CHANGE
  221. Indicates whether spatial mapping is changed between
  222. legacy and HE portion of preamble. If not, channel
  223. estimation can include legacy preamble to improve accuracy
  224. <legal all>
  225. */
  226. #define HE_SIG_A_SU_INFO_0_BEAM_CHANGE_OFFSET 0x00000000
  227. #define HE_SIG_A_SU_INFO_0_BEAM_CHANGE_LSB 1
  228. #define HE_SIG_A_SU_INFO_0_BEAM_CHANGE_MASK 0x00000002
  229. /* Description HE_SIG_A_SU_INFO_0_DL_UL_FLAG
  230. Differentiates between DL and UL transmission
  231. <enum 0 DL_UL_FLAG_IS_DL_OR_TDLS>
  232. <enum 1 DL_UL_FLAG_IS_UL>
  233. <legal all>
  234. */
  235. #define HE_SIG_A_SU_INFO_0_DL_UL_FLAG_OFFSET 0x00000000
  236. #define HE_SIG_A_SU_INFO_0_DL_UL_FLAG_LSB 2
  237. #define HE_SIG_A_SU_INFO_0_DL_UL_FLAG_MASK 0x00000004
  238. /* Description HE_SIG_A_SU_INFO_0_TRANSMIT_MCS
  239. Indicates the data MCS
  240. Field Used by MAC HW
  241. <legal all>
  242. */
  243. #define HE_SIG_A_SU_INFO_0_TRANSMIT_MCS_OFFSET 0x00000000
  244. #define HE_SIG_A_SU_INFO_0_TRANSMIT_MCS_LSB 3
  245. #define HE_SIG_A_SU_INFO_0_TRANSMIT_MCS_MASK 0x00000078
  246. /* Description HE_SIG_A_SU_INFO_0_DCM
  247. 0: No DCM
  248. 1:DCM
  249. <legal all>
  250. */
  251. #define HE_SIG_A_SU_INFO_0_DCM_OFFSET 0x00000000
  252. #define HE_SIG_A_SU_INFO_0_DCM_LSB 7
  253. #define HE_SIG_A_SU_INFO_0_DCM_MASK 0x00000080
  254. /* Description HE_SIG_A_SU_INFO_0_BSS_COLOR_ID
  255. BSS color ID
  256. Field Used by MAC HW
  257. <legal all>
  258. */
  259. #define HE_SIG_A_SU_INFO_0_BSS_COLOR_ID_OFFSET 0x00000000
  260. #define HE_SIG_A_SU_INFO_0_BSS_COLOR_ID_LSB 8
  261. #define HE_SIG_A_SU_INFO_0_BSS_COLOR_ID_MASK 0x00003f00
  262. /* Description HE_SIG_A_SU_INFO_0_RESERVED_0A
  263. Note: spec indicates this shall be set to 1
  264. <legal 1>
  265. */
  266. #define HE_SIG_A_SU_INFO_0_RESERVED_0A_OFFSET 0x00000000
  267. #define HE_SIG_A_SU_INFO_0_RESERVED_0A_LSB 14
  268. #define HE_SIG_A_SU_INFO_0_RESERVED_0A_MASK 0x00004000
  269. /* Description HE_SIG_A_SU_INFO_0_SPATIAL_REUSE
  270. Spatial reuse
  271. For 20MHz one SR field corresponding to entire 20MHz
  272. (other 3 fields indicate identical values)
  273. For 40MHz two SR fields for each 20MHz (other 2 fields
  274. indicate identical values)
  275. For 80MHz four SR fields for each 20MHz
  276. For 160MHz four SR fields for each 40MHz
  277. <legal all>
  278. */
  279. #define HE_SIG_A_SU_INFO_0_SPATIAL_REUSE_OFFSET 0x00000000
  280. #define HE_SIG_A_SU_INFO_0_SPATIAL_REUSE_LSB 15
  281. #define HE_SIG_A_SU_INFO_0_SPATIAL_REUSE_MASK 0x00078000
  282. /* Description HE_SIG_A_SU_INFO_0_TRANSMIT_BW
  283. Bandwidth of the PPDU.
  284. For HE SU PPDU
  285. <enum 0 HE_SIG_A_BW20> 20 Mhz
  286. <enum 1 HE_SIG_A_BW40> 40 Mhz
  287. <enum 2 HE_SIG_A_BW80> 80 Mhz
  288. <enum 3 HE_SIG_A_BW160> 160 MHz or 80+80 MHz
  289. For HE Extended Range SU PPDU
  290. Set to 0 for 242-tone RU
  291. Set to 1 for right 106-tone RU within the primary 20 MHz
  292. On RX side, Field Used by MAC HW
  293. <legal all>
  294. */
  295. #define HE_SIG_A_SU_INFO_0_TRANSMIT_BW_OFFSET 0x00000000
  296. #define HE_SIG_A_SU_INFO_0_TRANSMIT_BW_LSB 19
  297. #define HE_SIG_A_SU_INFO_0_TRANSMIT_BW_MASK 0x00180000
  298. /* Description HE_SIG_A_SU_INFO_0_CP_LTF_SIZE
  299. Indicates the CP and HE-LTF type
  300. <enum 0 OneX_LTF_0_8CP> 1xLTF + 0.8 us CP (See note for
  301. proprietary mode)
  302. <enum 1 TwoX_LTF_0_8CP> 2x LTF + 0.8 µs CP (See note
  303. for proprietary mode)
  304. <enum 2 TwoX_LTF_1_6CP> 2x LTF + 1.6 µs CP (See note
  305. for proprietary mode)
  306. <enum 3 FourX_LTF_0_8CP_3_2CP>
  307. When DCM == 0 OR STBC == 0: 4x LTF + 3.2 µs CP
  308. When DCM == 1 AND STBC == 1: 4x LTF + 0.8 µs CP. Note:
  309. In this scenario, Neither DCM nor STBC is applied to HE data
  310. field.
  311. (See note for proprietary mode)
  312. NOTE:
  313. For QTI proprietary mode
  314. If ( DCM == 1 ) and ( MCS > 0 ) and (STBC == 0)
  315. 0 = 1xLTF + 0.4 usec
  316. 1 = 2xLTF + 0.4 usec
  317. 2~3 = Reserved
  318. <legal all>
  319. */
  320. #define HE_SIG_A_SU_INFO_0_CP_LTF_SIZE_OFFSET 0x00000000
  321. #define HE_SIG_A_SU_INFO_0_CP_LTF_SIZE_LSB 21
  322. #define HE_SIG_A_SU_INFO_0_CP_LTF_SIZE_MASK 0x00600000
  323. /* Description HE_SIG_A_SU_INFO_0_NSTS
  324. For HE SU PPDU
  325. For HE Extended Range PPDU
  326. <legal all>
  327. */
  328. #define HE_SIG_A_SU_INFO_0_NSTS_OFFSET 0x00000000
  329. #define HE_SIG_A_SU_INFO_0_NSTS_LSB 23
  330. #define HE_SIG_A_SU_INFO_0_NSTS_MASK 0x03800000
  331. /* Description HE_SIG_A_SU_INFO_0_RESERVED_0B
  332. <legal 0>
  333. */
  334. #define HE_SIG_A_SU_INFO_0_RESERVED_0B_OFFSET 0x00000000
  335. #define HE_SIG_A_SU_INFO_0_RESERVED_0B_LSB 26
  336. #define HE_SIG_A_SU_INFO_0_RESERVED_0B_MASK 0xfc000000
  337. /* Description HE_SIG_A_SU_INFO_1_TXOP_DURATION
  338. Indicates the remaining time in the current TXOP
  339. Field Used by MAC HW
  340. <legal all>
  341. */
  342. #define HE_SIG_A_SU_INFO_1_TXOP_DURATION_OFFSET 0x00000004
  343. #define HE_SIG_A_SU_INFO_1_TXOP_DURATION_LSB 0
  344. #define HE_SIG_A_SU_INFO_1_TXOP_DURATION_MASK 0x0000007f
  345. /* Description HE_SIG_A_SU_INFO_1_CODING
  346. Distinguishes between BCC and LDPC coding.
  347. 0: BCC
  348. 1: LDPC
  349. <legal all>
  350. */
  351. #define HE_SIG_A_SU_INFO_1_CODING_OFFSET 0x00000004
  352. #define HE_SIG_A_SU_INFO_1_CODING_LSB 7
  353. #define HE_SIG_A_SU_INFO_1_CODING_MASK 0x00000080
  354. /* Description HE_SIG_A_SU_INFO_1_LDPC_EXTRA_SYMBOL
  355. If LDPC,
  356. 0: LDPC extra symbol not present
  357. 1: LDPC extra symbol present
  358. Else
  359. Set to 1
  360. <legal all>
  361. */
  362. #define HE_SIG_A_SU_INFO_1_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004
  363. #define HE_SIG_A_SU_INFO_1_LDPC_EXTRA_SYMBOL_LSB 8
  364. #define HE_SIG_A_SU_INFO_1_LDPC_EXTRA_SYMBOL_MASK 0x00000100
  365. /* Description HE_SIG_A_SU_INFO_1_STBC
  366. Indicates whether STBC is applied
  367. 0: No STBC
  368. 1: STBC
  369. <legal all>
  370. */
  371. #define HE_SIG_A_SU_INFO_1_STBC_OFFSET 0x00000004
  372. #define HE_SIG_A_SU_INFO_1_STBC_LSB 9
  373. #define HE_SIG_A_SU_INFO_1_STBC_MASK 0x00000200
  374. /* Description HE_SIG_A_SU_INFO_1_TXBF
  375. Indicates whether beamforming is applied
  376. 0: No beamforming
  377. 1: beamforming
  378. <legal all>
  379. */
  380. #define HE_SIG_A_SU_INFO_1_TXBF_OFFSET 0x00000004
  381. #define HE_SIG_A_SU_INFO_1_TXBF_LSB 10
  382. #define HE_SIG_A_SU_INFO_1_TXBF_MASK 0x00000400
  383. /* Description HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_A_FACTOR
  384. Common trigger info
  385. the packet extension duration of the trigger-based PPDU
  386. response with these two bits indicating the a-factor
  387. <enum 0 a_factor_4>
  388. <enum 1 a_factor_1>
  389. <enum 2 a_factor_2>
  390. <enum 3 a_factor_3>
  391. <legal all>
  392. */
  393. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_A_FACTOR_OFFSET 0x00000004
  394. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_A_FACTOR_LSB 11
  395. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_A_FACTOR_MASK 0x00001800
  396. /* Description HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY
  397. Common trigger info
  398. the packet extension duration of the trigger-based PPDU
  399. response with this bit indicating the PE-Disambiguity
  400. <legal all>
  401. */
  402. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x00000004
  403. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 13
  404. #define HE_SIG_A_SU_INFO_1_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x00002000
  405. /* Description HE_SIG_A_SU_INFO_1_RESERVED_1A
  406. Note: per standard, set to 1
  407. <legal 1>
  408. */
  409. #define HE_SIG_A_SU_INFO_1_RESERVED_1A_OFFSET 0x00000004
  410. #define HE_SIG_A_SU_INFO_1_RESERVED_1A_LSB 14
  411. #define HE_SIG_A_SU_INFO_1_RESERVED_1A_MASK 0x00004000
  412. /* Description HE_SIG_A_SU_INFO_1_DOPPLER_INDICATION
  413. 0: No Doppler support
  414. 1: Doppler support
  415. <legal all>
  416. */
  417. #define HE_SIG_A_SU_INFO_1_DOPPLER_INDICATION_OFFSET 0x00000004
  418. #define HE_SIG_A_SU_INFO_1_DOPPLER_INDICATION_LSB 15
  419. #define HE_SIG_A_SU_INFO_1_DOPPLER_INDICATION_MASK 0x00008000
  420. /* Description HE_SIG_A_SU_INFO_1_CRC
  421. CRC for HE-SIG-A contents.
  422. <legal all>
  423. */
  424. #define HE_SIG_A_SU_INFO_1_CRC_OFFSET 0x00000004
  425. #define HE_SIG_A_SU_INFO_1_CRC_LSB 16
  426. #define HE_SIG_A_SU_INFO_1_CRC_MASK 0x000f0000
  427. /* Description HE_SIG_A_SU_INFO_1_TAIL
  428. <legal 0>
  429. */
  430. #define HE_SIG_A_SU_INFO_1_TAIL_OFFSET 0x00000004
  431. #define HE_SIG_A_SU_INFO_1_TAIL_LSB 20
  432. #define HE_SIG_A_SU_INFO_1_TAIL_MASK 0x03f00000
  433. /* Description HE_SIG_A_SU_INFO_1_DOT11AX_SU_EXTENDED
  434. TX side:
  435. Set to 0
  436. RX side:
  437. On RX side, evaluated by MAC HW. This is the only way
  438. for MAC RX to know that this was an HE_SIG_A_SU received in
  439. 'extended' format
  440. <legal all>
  441. */
  442. #define HE_SIG_A_SU_INFO_1_DOT11AX_SU_EXTENDED_OFFSET 0x00000004
  443. #define HE_SIG_A_SU_INFO_1_DOT11AX_SU_EXTENDED_LSB 26
  444. #define HE_SIG_A_SU_INFO_1_DOT11AX_SU_EXTENDED_MASK 0x04000000
  445. /* Description HE_SIG_A_SU_INFO_1_DOT11AX_EXT_RU_SIZE
  446. TX side:
  447. Set to 0
  448. RX side:
  449. Field only contains valid info when dot11ax_su_extended
  450. is set.
  451. On RX side, evaluated by MAC HW. This is the only way
  452. for MAC RX to know what the number of based RUs was in this
  453. extended range reception. It is used by the MAC to determine
  454. the RU size for the response...
  455. <legal all>
  456. */
  457. #define HE_SIG_A_SU_INFO_1_DOT11AX_EXT_RU_SIZE_OFFSET 0x00000004
  458. #define HE_SIG_A_SU_INFO_1_DOT11AX_EXT_RU_SIZE_LSB 27
  459. #define HE_SIG_A_SU_INFO_1_DOT11AX_EXT_RU_SIZE_MASK 0x78000000
  460. /* Description HE_SIG_A_SU_INFO_1_RX_NDP
  461. TX side:
  462. Set to 0
  463. RX side:Valid on RX side only, and looked at by MAC HW
  464. When set, PHY has received (expected) NDP frame
  465. <legal all>
  466. */
  467. #define HE_SIG_A_SU_INFO_1_RX_NDP_OFFSET 0x00000004
  468. #define HE_SIG_A_SU_INFO_1_RX_NDP_LSB 31
  469. #define HE_SIG_A_SU_INFO_1_RX_NDP_MASK 0x80000000
  470. #endif // _HE_SIG_A_SU_INFO_H_