rx_rxpcu_classification_overview.h 8.2 KB

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