tx_rate_stats_info.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  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 _TX_RATE_STATS_INFO_H_
  21. #define _TX_RATE_STATS_INFO_H_
  22. #if !defined(__ASSEMBLER__)
  23. #endif
  24. // ################ START SUMMARY #################
  25. //
  26. // Dword Fields
  27. // 0 tx_rate_stats_info_valid[0], transmit_bw[2:1], transmit_pkt_type[6:3], transmit_stbc[7], transmit_ldpc[8], transmit_sgi[10:9], transmit_mcs[14:11], ofdma_transmission[15], tones_in_ru[27:16], reserved_0a[31:28]
  28. // 1 ppdu_transmission_tsf[31:0]
  29. //
  30. // ################ END SUMMARY #################
  31. #define NUM_OF_DWORDS_TX_RATE_STATS_INFO 2
  32. struct tx_rate_stats_info {
  33. uint32_t tx_rate_stats_info_valid : 1, //[0]
  34. transmit_bw : 2, //[2:1]
  35. transmit_pkt_type : 4, //[6:3]
  36. transmit_stbc : 1, //[7]
  37. transmit_ldpc : 1, //[8]
  38. transmit_sgi : 2, //[10:9]
  39. transmit_mcs : 4, //[14:11]
  40. ofdma_transmission : 1, //[15]
  41. tones_in_ru : 12, //[27:16]
  42. reserved_0a : 4; //[31:28]
  43. uint32_t ppdu_transmission_tsf : 32; //[31:0]
  44. };
  45. /*
  46. tx_rate_stats_info_valid
  47. When set all other fields in this STRUCT contain valid
  48. info.
  49. <legal all>
  50. transmit_bw
  51. Field only valid when Tx_rate_stats_info_valid is set
  52. Indicates the BW of the upcoming transmission that shall
  53. likely start in about 3 -4 us on the medium
  54. <enum 0 transmit_bw_20_MHz>
  55. <enum 1 transmit_bw_40_MHz>
  56. <enum 2 transmit_bw_80_MHz>
  57. <enum 3 transmit_bw_160_MHz>
  58. <legal all>
  59. transmit_pkt_type
  60. Field only valid when Tx_rate_stats_info_valid is set
  61. Field filled in by PDG.
  62. Not valid when in SW transmit mode
  63. The packet type
  64. <enum 0 dot11a>802.11a PPDU type
  65. <enum 1 dot11b>802.11b PPDU type
  66. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  67. <enum 3 dot11ac>802.11ac PPDU type
  68. <enum 4 dot11ax>802.11ax PPDU type
  69. transmit_stbc
  70. Field only valid when Tx_rate_stats_info_valid is set
  71. Field filled in by PDG.
  72. Not valid when in SW transmit mode
  73. When set, STBC transmission rate was used.
  74. transmit_ldpc
  75. Field only valid when Tx_rate_stats_info_valid is set
  76. Field filled in by PDG.
  77. Not valid when in SW transmit mode
  78. When set, use LDPC transmission rates
  79. transmit_sgi
  80. Field only valid when Tx_rate_stats_info_valid is set
  81. Field filled in by PDG.
  82. Not valid when in SW transmit mode
  83. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be
  84. used for HE
  85. <enum 1 0_4_us_sgi > Legacy short GI. Can also be
  86. used for HE
  87. <enum 2 1_6_us_sgi > HE related GI
  88. <enum 3 3_2_us_sgi > HE related GI
  89. <legal 0 - 3>
  90. transmit_mcs
  91. Field only valid when Tx_rate_stats_info_valid is set
  92. Field filled in by PDG.
  93. Not valid when in SW transmit mode
  94. For details, refer to MCS_TYPE description
  95. <legal all>
  96. ofdma_transmission
  97. Field only valid when Tx_rate_stats_info_valid is set
  98. Field filled in by PDG.
  99. Set when the transmission was an OFDMA transmission (DL
  100. or UL).
  101. <legal all>
  102. tones_in_ru
  103. Field only valid when Tx_rate_stats_info_valid is set
  104. Field filled in by PDG.
  105. Not valid when in SW transmit mode
  106. The number of tones in the RU used.
  107. <legal all>
  108. reserved_0a
  109. <legal 0>
  110. ppdu_transmission_tsf
  111. Field only valid when Tx_rate_stats_info_valid is set
  112. Based on a HWSCH configuration register setting, this
  113. field either contains:
  114. Lower 32 bits of the TSF, snapshot of this value when
  115. transmission of the PPDU containing the frame finished.
  116. OR
  117. Lower 32 bits of the TSF, snapshot of this value when
  118. transmission of the PPDU containing the frame started
  119. <legal all>
  120. */
  121. /* Description TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID
  122. When set all other fields in this STRUCT contain valid
  123. info.
  124. <legal all>
  125. */
  126. #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_OFFSET 0x00000000
  127. #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_LSB 0
  128. #define TX_RATE_STATS_INFO_0_TX_RATE_STATS_INFO_VALID_MASK 0x00000001
  129. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_BW
  130. Field only valid when Tx_rate_stats_info_valid is set
  131. Indicates the BW of the upcoming transmission that shall
  132. likely start in about 3 -4 us on the medium
  133. <enum 0 transmit_bw_20_MHz>
  134. <enum 1 transmit_bw_40_MHz>
  135. <enum 2 transmit_bw_80_MHz>
  136. <enum 3 transmit_bw_160_MHz>
  137. <legal all>
  138. */
  139. #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_OFFSET 0x00000000
  140. #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_LSB 1
  141. #define TX_RATE_STATS_INFO_0_TRANSMIT_BW_MASK 0x00000006
  142. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE
  143. Field only valid when Tx_rate_stats_info_valid is set
  144. Field filled in by PDG.
  145. Not valid when in SW transmit mode
  146. The packet type
  147. <enum 0 dot11a>802.11a PPDU type
  148. <enum 1 dot11b>802.11b PPDU type
  149. <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type
  150. <enum 3 dot11ac>802.11ac PPDU type
  151. <enum 4 dot11ax>802.11ax PPDU type
  152. */
  153. #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_OFFSET 0x00000000
  154. #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_LSB 3
  155. #define TX_RATE_STATS_INFO_0_TRANSMIT_PKT_TYPE_MASK 0x00000078
  156. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_STBC
  157. Field only valid when Tx_rate_stats_info_valid is set
  158. Field filled in by PDG.
  159. Not valid when in SW transmit mode
  160. When set, STBC transmission rate was used.
  161. */
  162. #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_OFFSET 0x00000000
  163. #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_LSB 7
  164. #define TX_RATE_STATS_INFO_0_TRANSMIT_STBC_MASK 0x00000080
  165. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_LDPC
  166. Field only valid when Tx_rate_stats_info_valid is set
  167. Field filled in by PDG.
  168. Not valid when in SW transmit mode
  169. When set, use LDPC transmission rates
  170. */
  171. #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_OFFSET 0x00000000
  172. #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_LSB 8
  173. #define TX_RATE_STATS_INFO_0_TRANSMIT_LDPC_MASK 0x00000100
  174. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_SGI
  175. Field only valid when Tx_rate_stats_info_valid is set
  176. Field filled in by PDG.
  177. Not valid when in SW transmit mode
  178. <enum 0 0_8_us_sgi > Legacy normal GI. Can also be
  179. used for HE
  180. <enum 1 0_4_us_sgi > Legacy short GI. Can also be
  181. used for HE
  182. <enum 2 1_6_us_sgi > HE related GI
  183. <enum 3 3_2_us_sgi > HE related GI
  184. <legal 0 - 3>
  185. */
  186. #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_OFFSET 0x00000000
  187. #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_LSB 9
  188. #define TX_RATE_STATS_INFO_0_TRANSMIT_SGI_MASK 0x00000600
  189. /* Description TX_RATE_STATS_INFO_0_TRANSMIT_MCS
  190. Field only valid when Tx_rate_stats_info_valid is set
  191. Field filled in by PDG.
  192. Not valid when in SW transmit mode
  193. For details, refer to MCS_TYPE description
  194. <legal all>
  195. */
  196. #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_OFFSET 0x00000000
  197. #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_LSB 11
  198. #define TX_RATE_STATS_INFO_0_TRANSMIT_MCS_MASK 0x00007800
  199. /* Description TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION
  200. Field only valid when Tx_rate_stats_info_valid is set
  201. Field filled in by PDG.
  202. Set when the transmission was an OFDMA transmission (DL
  203. or UL).
  204. <legal all>
  205. */
  206. #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_OFFSET 0x00000000
  207. #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_LSB 15
  208. #define TX_RATE_STATS_INFO_0_OFDMA_TRANSMISSION_MASK 0x00008000
  209. /* Description TX_RATE_STATS_INFO_0_TONES_IN_RU
  210. Field only valid when Tx_rate_stats_info_valid is set
  211. Field filled in by PDG.
  212. Not valid when in SW transmit mode
  213. The number of tones in the RU used.
  214. <legal all>
  215. */
  216. #define TX_RATE_STATS_INFO_0_TONES_IN_RU_OFFSET 0x00000000
  217. #define TX_RATE_STATS_INFO_0_TONES_IN_RU_LSB 16
  218. #define TX_RATE_STATS_INFO_0_TONES_IN_RU_MASK 0x0fff0000
  219. /* Description TX_RATE_STATS_INFO_0_RESERVED_0A
  220. <legal 0>
  221. */
  222. #define TX_RATE_STATS_INFO_0_RESERVED_0A_OFFSET 0x00000000
  223. #define TX_RATE_STATS_INFO_0_RESERVED_0A_LSB 28
  224. #define TX_RATE_STATS_INFO_0_RESERVED_0A_MASK 0xf0000000
  225. /* Description TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF
  226. Field only valid when Tx_rate_stats_info_valid is set
  227. Based on a HWSCH configuration register setting, this
  228. field either contains:
  229. Lower 32 bits of the TSF, snapshot of this value when
  230. transmission of the PPDU containing the frame finished.
  231. OR
  232. Lower 32 bits of the TSF, snapshot of this value when
  233. transmission of the PPDU containing the frame started
  234. <legal all>
  235. */
  236. #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_OFFSET 0x00000004
  237. #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_LSB 0
  238. #define TX_RATE_STATS_INFO_1_PPDU_TRANSMISSION_TSF_MASK 0xffffffff
  239. #endif // _TX_RATE_STATS_INFO_H_