rx_ppdu_start_user_info.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. /*
  2. * Copyright (c) 2021 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. // $ATH_LICENSE_HW_HDR_C$
  17. //
  18. // DO NOT EDIT! This file is automatically generated
  19. // These definitions are tied to a particular hardware layout
  20. #ifndef _RX_PPDU_START_USER_INFO_H_
  21. #define _RX_PPDU_START_USER_INFO_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. #include "receive_user_info.h"
  25. // ################ START SUMMARY #################
  26. //
  27. // Dword Fields
  28. // 0-2 struct receive_user_info receive_user_info_details;
  29. //
  30. // ################ END SUMMARY #################
  31. #define NUM_OF_DWORDS_RX_PPDU_START_USER_INFO 3
  32. struct rx_ppdu_start_user_info {
  33. struct receive_user_info receive_user_info_details;
  34. };
  35. /*
  36. struct receive_user_info receive_user_info_details
  37. Overview of receive parameters that the MAC needs to
  38. prepend to every received MSDU/MPDU.
  39. */
  40. /* EXTERNAL REFERENCE : struct receive_user_info receive_user_info_details */
  41. /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID
  42. A ppdu counter value that PHY increments for every PPDU
  43. received. The counter value wraps around
  44. <legal all>
  45. */
  46. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_OFFSET 0x00000000
  47. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_LSB 0
  48. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PHY_PPDU_ID_MASK 0x0000ffff
  49. /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI
  50. RSSI for this user
  51. Frequency domain RSSI measurement for this user. Based
  52. on the channel estimate.
  53. <legal all>
  54. */
  55. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_OFFSET 0x00000000
  56. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_LSB 16
  57. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_USER_RSSI_MASK 0x00ff0000
  58. /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE
  59. Packet type:
  60. <enum 0 dot11a>802.11a PPDU type
  61. <enum 1 dot11b>802.11b PPDU type
  62. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  63. <enum 3 dot11ac>802.11ac PPDU type
  64. <enum 4 dot11ax>802.11ax PPDU type
  65. */
  66. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_OFFSET 0x00000000
  67. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_LSB 24
  68. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_PKT_TYPE_MASK 0x0f000000
  69. /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC
  70. When set, use STBC transmission rates
  71. */
  72. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_OFFSET 0x00000000
  73. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_LSB 28
  74. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_STBC_MASK 0x10000000
  75. /* Description RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE
  76. Indicates what type of reception this is.
  77. <enum 0 reception_type_SU > Basic SU reception (not
  78. part of OFDMA or MIMO)
  79. <enum 1 reception_type_MU_MIMO > This is related to
  80. DL type of reception
  81. <enum 2 reception_type_MU_OFDMA > This is related
  82. to DL type of reception
  83. <enum 3 reception_type_MU_OFDMA_MIMO > This is
  84. related to DL type of reception
  85. <enum 4 reception_type_UL_MU_MIMO > This is related
  86. to UL type of reception
  87. <enum 5 reception_type_UL_MU_OFDMA > This is
  88. related to UL type of reception
  89. <enum 6 reception_type_UL_MU_OFDMA_MIMO > This is
  90. related to UL type of reception
  91. <legal 0-6>
  92. */
  93. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_OFFSET 0x00000000
  94. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_LSB 29
  95. #define RX_PPDU_START_USER_INFO_0_RECEIVE_USER_INFO_DETAILS_RECEPTION_TYPE_MASK 0xe0000000
  96. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS
  97. For details, refer to MCS_TYPE description
  98. <legal all>
  99. */
  100. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_OFFSET 0x00000004
  101. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_LSB 0
  102. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RATE_MCS_MASK 0x0000000f
  103. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI
  104. Field only valid when pkt type is HT, VHT or HE.
  105. <enum 0 gi_0_8_us > Legacy normal GI. Can also be
  106. used for HE
  107. <enum 1 gi_0_4_us > Legacy short GI. Can also be
  108. used for HE
  109. <enum 2 gi_1_6_us > HE related GI
  110. <enum 3 gi_3_2_us > HE related GI
  111. <legal 0 - 3>
  112. */
  113. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_OFFSET 0x00000004
  114. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_LSB 4
  115. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_SGI_MASK 0x00000030
  116. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH
  117. Full receive Bandwidth
  118. <enum 0 full_rx_bw_20_mhz>
  119. <enum 1 full_rx_bw_40_mhz>
  120. <enum 2 full_rx_bw_80_mhz>
  121. <enum 3 full_rx_bw_160_mhz>
  122. <legal 0-3>
  123. */
  124. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_OFFSET 0x00000004
  125. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_LSB 6
  126. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_RECEIVE_BANDWIDTH_MASK 0x000000c0
  127. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP
  128. Field only valid in case of MIMO type reception
  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_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_OFFSET 0x00000004
  137. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_LSB 8
  138. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_MIMO_SS_BITMAP_MASK 0x0000ff00
  139. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION
  140. Field only valid in case of OFDMA type receptions (DL
  141. and UL)
  142. Indicates the RU number associated with this user.
  143. In case of reception where the transmission was DL MU
  144. OFDMA, this field provides the RU pattern. Note that fields
  145. ofdma_user_index and Content_channel are needed to determine
  146. which RU was actually assigned to this user.
  147. In case of reception where the transmission was UL MU
  148. OFDMA, this field contains everything needed to determine
  149. the actual RU
  150. <legal all>
  151. */
  152. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_OFFSET 0x00000004
  153. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_LSB 16
  154. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_RU_ALLOCATION_MASK 0x00ff0000
  155. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_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_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_OFFSET 0x00000004
  163. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_LSB 24
  164. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_USER_INDEX_MASK 0x7f000000
  165. /* Description RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL
  166. Field only valid in the of DL MU OFDMA/MIMO reception
  167. In case of DL MU reception, this field indicates the
  168. content channel number where PHY found the RU information
  169. for this user
  170. This is needed for SW to determine the exact RU position
  171. within the reception.
  172. <enum 0 content_channel_1>
  173. <enum 1 content_channel_2>
  174. <legal all>
  175. */
  176. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_OFFSET 0x00000004
  177. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_LSB 31
  178. #define RX_PPDU_START_USER_INFO_1_RECEIVE_USER_INFO_DETAILS_OFDMA_CONTENT_CHANNEL_MASK 0x80000000
  179. /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC
  180. When set, use LDPC transmission rates were used.
  181. <legal all>
  182. */
  183. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_OFFSET 0x00000008
  184. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_LSB 0
  185. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_LDPC_MASK 0x00000001
  186. /* Description RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A
  187. <legal 0>
  188. */
  189. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_OFFSET 0x00000008
  190. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_LSB 1
  191. #define RX_PPDU_START_USER_INFO_2_RECEIVE_USER_INFO_DETAILS_RESERVED_2A_MASK 0xfffffffe
  192. #endif // _RX_PPDU_START_USER_INFO_H_