rx_rxpcu_classification_overview.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. /*
  2. * Copyright (c) 2018 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. #ifndef _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
  19. #define _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. // ################ START SUMMARY #################
  23. //
  24. // Dword Fields
  25. // 0 filter_pass_mpdus[0], filter_pass_mpdus_fcs_ok[1], monitor_direct_mpdus[2], monitor_direct_mpdus_fcs_ok[3], monitor_other_mpdus[4], monitor_other_mpdus_fcs_ok[5], phyrx_abort_received[6], reserved_0[15:7], phy_ppdu_id[31:16]
  26. //
  27. // ################ END SUMMARY #################
  28. #define NUM_OF_DWORDS_RX_RXPCU_CLASSIFICATION_OVERVIEW 1
  29. struct rx_rxpcu_classification_overview {
  30. uint32_t filter_pass_mpdus : 1, //[0]
  31. filter_pass_mpdus_fcs_ok : 1, //[1]
  32. monitor_direct_mpdus : 1, //[2]
  33. monitor_direct_mpdus_fcs_ok : 1, //[3]
  34. monitor_other_mpdus : 1, //[4]
  35. monitor_other_mpdus_fcs_ok : 1, //[5]
  36. phyrx_abort_received : 1, //[6]
  37. reserved_0 : 9, //[15:7]
  38. phy_ppdu_id : 16; //[31:16]
  39. };
  40. /*
  41. filter_pass_mpdus
  42. When set, at least one Filter Pass MPDU has been
  43. received. FCS might or might not have been passing.
  44. For MU UL, in TLVs RX_PPDU_END and
  45. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  46. users.
  47. <legal all>
  48. filter_pass_mpdus_fcs_ok
  49. When set, at least one Filter Pass MPDU has been
  50. received that has a correct FCS.
  51. For MU UL, in TLVs RX_PPDU_END and
  52. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  53. users.
  54. <legal all>
  55. monitor_direct_mpdus
  56. When set, at least one Monitor Direct MPDU has been
  57. received. FCS might or might not have been passing
  58. For MU UL, in TLVs RX_PPDU_END and
  59. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  60. users.
  61. <legal all>
  62. monitor_direct_mpdus_fcs_ok
  63. When set, at least one Monitor Direct MPDU has been
  64. received that has a correct FCS.
  65. For MU UL, in TLVs RX_PPDU_END and
  66. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  67. users.
  68. <legal all>
  69. monitor_other_mpdus
  70. When set, at least one Monitor Direct MPDU has been
  71. received. FCS might or might not have been passing.
  72. For MU UL, in TLVs RX_PPDU_END and
  73. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  74. users.
  75. <legal all>
  76. monitor_other_mpdus_fcs_ok
  77. When set, at least one Monitor Direct MPDU has been
  78. received that has a correct FCS.
  79. For MU UL, in TLVs RX_PPDU_END and
  80. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  81. users.
  82. <legal all>
  83. phyrx_abort_received
  84. When set, PPDU reception was aborted by the PHY
  85. <legal all>
  86. reserved_0
  87. <legal 0>
  88. phy_ppdu_id
  89. A ppdu counter value that PHY increments for every PPDU
  90. received. The counter value wraps around
  91. <legal all>
  92. */
  93. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS
  94. When set, at least one Filter Pass MPDU has been
  95. received. FCS might or might not have been passing.
  96. For MU UL, in TLVs RX_PPDU_END and
  97. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  98. users.
  99. <legal all>
  100. */
  101. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_OFFSET 0x00000000
  102. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_LSB 0
  103. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_MASK 0x00000001
  104. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_FCS_OK
  105. When set, at least one Filter Pass MPDU has been
  106. received that has a correct FCS.
  107. For MU UL, in TLVs RX_PPDU_END and
  108. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  109. users.
  110. <legal all>
  111. */
  112. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_FCS_OK_OFFSET 0x00000000
  113. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_FCS_OK_LSB 1
  114. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_FILTER_PASS_MPDUS_FCS_OK_MASK 0x00000002
  115. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS
  116. When set, at least one Monitor Direct MPDU has been
  117. received. FCS might or might not have been passing
  118. For MU UL, in TLVs RX_PPDU_END and
  119. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  120. users.
  121. <legal all>
  122. */
  123. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_OFFSET 0x00000000
  124. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_LSB 2
  125. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_MASK 0x00000004
  126. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_FCS_OK
  127. When set, at least one Monitor Direct MPDU has been
  128. received that has a correct FCS.
  129. For MU UL, in TLVs RX_PPDU_END and
  130. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  131. users.
  132. <legal all>
  133. */
  134. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_FCS_OK_OFFSET 0x00000000
  135. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_FCS_OK_LSB 3
  136. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_DIRECT_MPDUS_FCS_OK_MASK 0x00000008
  137. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS
  138. When set, at least one Monitor Direct MPDU has been
  139. received. FCS might or might not have been passing.
  140. For MU UL, in TLVs RX_PPDU_END and
  141. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  142. users.
  143. <legal all>
  144. */
  145. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_OFFSET 0x00000000
  146. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_LSB 4
  147. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_MASK 0x00000010
  148. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_FCS_OK
  149. When set, at least one Monitor Direct MPDU has been
  150. received that has a correct FCS.
  151. For MU UL, in TLVs RX_PPDU_END and
  152. RX_PPDU_END_STATUS_DONE, this field is the OR of all the
  153. users.
  154. <legal all>
  155. */
  156. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_FCS_OK_OFFSET 0x00000000
  157. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_FCS_OK_LSB 5
  158. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_MONITOR_OTHER_MPDUS_FCS_OK_MASK 0x00000020
  159. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHYRX_ABORT_RECEIVED
  160. When set, PPDU reception was aborted by the PHY
  161. <legal all>
  162. */
  163. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHYRX_ABORT_RECEIVED_OFFSET 0x00000000
  164. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHYRX_ABORT_RECEIVED_LSB 6
  165. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHYRX_ABORT_RECEIVED_MASK 0x00000040
  166. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_RESERVED_0
  167. <legal 0>
  168. */
  169. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_RESERVED_0_OFFSET 0x00000000
  170. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_RESERVED_0_LSB 7
  171. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_RESERVED_0_MASK 0x0000ff80
  172. /* Description RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHY_PPDU_ID
  173. A ppdu counter value that PHY increments for every PPDU
  174. received. The counter value wraps around
  175. <legal all>
  176. */
  177. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHY_PPDU_ID_OFFSET 0x00000000
  178. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHY_PPDU_ID_LSB 16
  179. #define RX_RXPCU_CLASSIFICATION_OVERVIEW_0_PHY_PPDU_ID_MASK 0xffff0000
  180. #endif // _RX_RXPCU_CLASSIFICATION_OVERVIEW_H_