he_sig_a_su_info.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. /*
  2. * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
  3. * SPDX-License-Identifier: ISC
  4. */
  5. #ifndef _HE_SIG_A_SU_INFO_H_
  6. #define _HE_SIG_A_SU_INFO_H_
  7. #if !defined(__ASSEMBLER__)
  8. #endif
  9. #define NUM_OF_DWORDS_HE_SIG_A_SU_INFO 2
  10. struct he_sig_a_su_info {
  11. #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
  12. uint32_t format_indication : 1,
  13. beam_change : 1,
  14. dl_ul_flag : 1,
  15. transmit_mcs : 4,
  16. dcm : 1,
  17. bss_color_id : 6,
  18. reserved_0a : 1,
  19. spatial_reuse : 4,
  20. transmit_bw : 2,
  21. cp_ltf_size : 2,
  22. nsts : 3,
  23. reserved_0b : 6;
  24. uint32_t txop_duration : 7,
  25. coding : 1,
  26. ldpc_extra_symbol : 1,
  27. stbc : 1,
  28. txbf : 1,
  29. packet_extension_a_factor : 2,
  30. packet_extension_pe_disambiguity : 1,
  31. reserved_1a : 1,
  32. doppler_indication : 1,
  33. crc : 4,
  34. tail : 6,
  35. dot11ax_su_extended : 1,
  36. dot11ax_ext_ru_size : 3,
  37. rx_ndp : 1,
  38. rx_integrity_check_passed : 1;
  39. #else
  40. uint32_t reserved_0b : 6,
  41. nsts : 3,
  42. cp_ltf_size : 2,
  43. transmit_bw : 2,
  44. spatial_reuse : 4,
  45. reserved_0a : 1,
  46. bss_color_id : 6,
  47. dcm : 1,
  48. transmit_mcs : 4,
  49. dl_ul_flag : 1,
  50. beam_change : 1,
  51. format_indication : 1;
  52. uint32_t rx_integrity_check_passed : 1,
  53. rx_ndp : 1,
  54. dot11ax_ext_ru_size : 3,
  55. dot11ax_su_extended : 1,
  56. tail : 6,
  57. crc : 4,
  58. doppler_indication : 1,
  59. reserved_1a : 1,
  60. packet_extension_pe_disambiguity : 1,
  61. packet_extension_a_factor : 2,
  62. txbf : 1,
  63. stbc : 1,
  64. ldpc_extra_symbol : 1,
  65. coding : 1,
  66. txop_duration : 7;
  67. #endif
  68. };
  69. #define HE_SIG_A_SU_INFO_FORMAT_INDICATION_OFFSET 0x00000000
  70. #define HE_SIG_A_SU_INFO_FORMAT_INDICATION_LSB 0
  71. #define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MSB 0
  72. #define HE_SIG_A_SU_INFO_FORMAT_INDICATION_MASK 0x00000001
  73. #define HE_SIG_A_SU_INFO_BEAM_CHANGE_OFFSET 0x00000000
  74. #define HE_SIG_A_SU_INFO_BEAM_CHANGE_LSB 1
  75. #define HE_SIG_A_SU_INFO_BEAM_CHANGE_MSB 1
  76. #define HE_SIG_A_SU_INFO_BEAM_CHANGE_MASK 0x00000002
  77. #define HE_SIG_A_SU_INFO_DL_UL_FLAG_OFFSET 0x00000000
  78. #define HE_SIG_A_SU_INFO_DL_UL_FLAG_LSB 2
  79. #define HE_SIG_A_SU_INFO_DL_UL_FLAG_MSB 2
  80. #define HE_SIG_A_SU_INFO_DL_UL_FLAG_MASK 0x00000004
  81. #define HE_SIG_A_SU_INFO_TRANSMIT_MCS_OFFSET 0x00000000
  82. #define HE_SIG_A_SU_INFO_TRANSMIT_MCS_LSB 3
  83. #define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MSB 6
  84. #define HE_SIG_A_SU_INFO_TRANSMIT_MCS_MASK 0x00000078
  85. #define HE_SIG_A_SU_INFO_DCM_OFFSET 0x00000000
  86. #define HE_SIG_A_SU_INFO_DCM_LSB 7
  87. #define HE_SIG_A_SU_INFO_DCM_MSB 7
  88. #define HE_SIG_A_SU_INFO_DCM_MASK 0x00000080
  89. #define HE_SIG_A_SU_INFO_BSS_COLOR_ID_OFFSET 0x00000000
  90. #define HE_SIG_A_SU_INFO_BSS_COLOR_ID_LSB 8
  91. #define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MSB 13
  92. #define HE_SIG_A_SU_INFO_BSS_COLOR_ID_MASK 0x00003f00
  93. #define HE_SIG_A_SU_INFO_RESERVED_0A_OFFSET 0x00000000
  94. #define HE_SIG_A_SU_INFO_RESERVED_0A_LSB 14
  95. #define HE_SIG_A_SU_INFO_RESERVED_0A_MSB 14
  96. #define HE_SIG_A_SU_INFO_RESERVED_0A_MASK 0x00004000
  97. #define HE_SIG_A_SU_INFO_SPATIAL_REUSE_OFFSET 0x00000000
  98. #define HE_SIG_A_SU_INFO_SPATIAL_REUSE_LSB 15
  99. #define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MSB 18
  100. #define HE_SIG_A_SU_INFO_SPATIAL_REUSE_MASK 0x00078000
  101. #define HE_SIG_A_SU_INFO_TRANSMIT_BW_OFFSET 0x00000000
  102. #define HE_SIG_A_SU_INFO_TRANSMIT_BW_LSB 19
  103. #define HE_SIG_A_SU_INFO_TRANSMIT_BW_MSB 20
  104. #define HE_SIG_A_SU_INFO_TRANSMIT_BW_MASK 0x00180000
  105. #define HE_SIG_A_SU_INFO_CP_LTF_SIZE_OFFSET 0x00000000
  106. #define HE_SIG_A_SU_INFO_CP_LTF_SIZE_LSB 21
  107. #define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MSB 22
  108. #define HE_SIG_A_SU_INFO_CP_LTF_SIZE_MASK 0x00600000
  109. #define HE_SIG_A_SU_INFO_NSTS_OFFSET 0x00000000
  110. #define HE_SIG_A_SU_INFO_NSTS_LSB 23
  111. #define HE_SIG_A_SU_INFO_NSTS_MSB 25
  112. #define HE_SIG_A_SU_INFO_NSTS_MASK 0x03800000
  113. #define HE_SIG_A_SU_INFO_RESERVED_0B_OFFSET 0x00000000
  114. #define HE_SIG_A_SU_INFO_RESERVED_0B_LSB 26
  115. #define HE_SIG_A_SU_INFO_RESERVED_0B_MSB 31
  116. #define HE_SIG_A_SU_INFO_RESERVED_0B_MASK 0xfc000000
  117. #define HE_SIG_A_SU_INFO_TXOP_DURATION_OFFSET 0x00000004
  118. #define HE_SIG_A_SU_INFO_TXOP_DURATION_LSB 0
  119. #define HE_SIG_A_SU_INFO_TXOP_DURATION_MSB 6
  120. #define HE_SIG_A_SU_INFO_TXOP_DURATION_MASK 0x0000007f
  121. #define HE_SIG_A_SU_INFO_CODING_OFFSET 0x00000004
  122. #define HE_SIG_A_SU_INFO_CODING_LSB 7
  123. #define HE_SIG_A_SU_INFO_CODING_MSB 7
  124. #define HE_SIG_A_SU_INFO_CODING_MASK 0x00000080
  125. #define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_OFFSET 0x00000004
  126. #define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_LSB 8
  127. #define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MSB 8
  128. #define HE_SIG_A_SU_INFO_LDPC_EXTRA_SYMBOL_MASK 0x00000100
  129. #define HE_SIG_A_SU_INFO_STBC_OFFSET 0x00000004
  130. #define HE_SIG_A_SU_INFO_STBC_LSB 9
  131. #define HE_SIG_A_SU_INFO_STBC_MSB 9
  132. #define HE_SIG_A_SU_INFO_STBC_MASK 0x00000200
  133. #define HE_SIG_A_SU_INFO_TXBF_OFFSET 0x00000004
  134. #define HE_SIG_A_SU_INFO_TXBF_LSB 10
  135. #define HE_SIG_A_SU_INFO_TXBF_MSB 10
  136. #define HE_SIG_A_SU_INFO_TXBF_MASK 0x00000400
  137. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_OFFSET 0x00000004
  138. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_LSB 11
  139. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MSB 12
  140. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_A_FACTOR_MASK 0x00001800
  141. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_OFFSET 0x00000004
  142. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_LSB 13
  143. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MSB 13
  144. #define HE_SIG_A_SU_INFO_PACKET_EXTENSION_PE_DISAMBIGUITY_MASK 0x00002000
  145. #define HE_SIG_A_SU_INFO_RESERVED_1A_OFFSET 0x00000004
  146. #define HE_SIG_A_SU_INFO_RESERVED_1A_LSB 14
  147. #define HE_SIG_A_SU_INFO_RESERVED_1A_MSB 14
  148. #define HE_SIG_A_SU_INFO_RESERVED_1A_MASK 0x00004000
  149. #define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_OFFSET 0x00000004
  150. #define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_LSB 15
  151. #define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MSB 15
  152. #define HE_SIG_A_SU_INFO_DOPPLER_INDICATION_MASK 0x00008000
  153. #define HE_SIG_A_SU_INFO_CRC_OFFSET 0x00000004
  154. #define HE_SIG_A_SU_INFO_CRC_LSB 16
  155. #define HE_SIG_A_SU_INFO_CRC_MSB 19
  156. #define HE_SIG_A_SU_INFO_CRC_MASK 0x000f0000
  157. #define HE_SIG_A_SU_INFO_TAIL_OFFSET 0x00000004
  158. #define HE_SIG_A_SU_INFO_TAIL_LSB 20
  159. #define HE_SIG_A_SU_INFO_TAIL_MSB 25
  160. #define HE_SIG_A_SU_INFO_TAIL_MASK 0x03f00000
  161. #define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_OFFSET 0x00000004
  162. #define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_LSB 26
  163. #define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MSB 26
  164. #define HE_SIG_A_SU_INFO_DOT11AX_SU_EXTENDED_MASK 0x04000000
  165. #define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_OFFSET 0x00000004
  166. #define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_LSB 27
  167. #define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MSB 29
  168. #define HE_SIG_A_SU_INFO_DOT11AX_EXT_RU_SIZE_MASK 0x38000000
  169. #define HE_SIG_A_SU_INFO_RX_NDP_OFFSET 0x00000004
  170. #define HE_SIG_A_SU_INFO_RX_NDP_LSB 30
  171. #define HE_SIG_A_SU_INFO_RX_NDP_MSB 30
  172. #define HE_SIG_A_SU_INFO_RX_NDP_MASK 0x40000000
  173. #define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_OFFSET 0x00000004
  174. #define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_LSB 31
  175. #define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MSB 31
  176. #define HE_SIG_A_SU_INFO_RX_INTEGRITY_CHECK_PASSED_MASK 0x80000000
  177. #endif