tx_rate_stats_info.h 10 KB

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