rx_reo_queue_ext.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  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_REO_QUEUE_EXT_H_
  19. #define _RX_REO_QUEUE_EXT_H_
  20. #if !defined(__ASSEMBLER__)
  21. #endif
  22. #include "uniform_descriptor_header.h"
  23. #include "rx_mpdu_link_ptr.h"
  24. // ################ START SUMMARY #################
  25. //
  26. // Dword Fields
  27. // 0 struct uniform_descriptor_header descriptor_header;
  28. // 1 reserved_1a[31:0]
  29. // 2-3 struct rx_mpdu_link_ptr mpdu_link_pointer_0;
  30. // 4-5 struct rx_mpdu_link_ptr mpdu_link_pointer_1;
  31. // 6-7 struct rx_mpdu_link_ptr mpdu_link_pointer_2;
  32. // 8-9 struct rx_mpdu_link_ptr mpdu_link_pointer_3;
  33. // 10-11 struct rx_mpdu_link_ptr mpdu_link_pointer_4;
  34. // 12-13 struct rx_mpdu_link_ptr mpdu_link_pointer_5;
  35. // 14-15 struct rx_mpdu_link_ptr mpdu_link_pointer_6;
  36. // 16-17 struct rx_mpdu_link_ptr mpdu_link_pointer_7;
  37. // 18-19 struct rx_mpdu_link_ptr mpdu_link_pointer_8;
  38. // 20-21 struct rx_mpdu_link_ptr mpdu_link_pointer_9;
  39. // 22-23 struct rx_mpdu_link_ptr mpdu_link_pointer_10;
  40. // 24-25 struct rx_mpdu_link_ptr mpdu_link_pointer_11;
  41. // 26-27 struct rx_mpdu_link_ptr mpdu_link_pointer_12;
  42. // 28-29 struct rx_mpdu_link_ptr mpdu_link_pointer_13;
  43. // 30-31 struct rx_mpdu_link_ptr mpdu_link_pointer_14;
  44. //
  45. // ################ END SUMMARY #################
  46. #define NUM_OF_DWORDS_RX_REO_QUEUE_EXT 32
  47. struct rx_reo_queue_ext {
  48. struct uniform_descriptor_header descriptor_header;
  49. uint32_t reserved_1a : 32; //[31:0]
  50. struct rx_mpdu_link_ptr mpdu_link_pointer_0;
  51. struct rx_mpdu_link_ptr mpdu_link_pointer_1;
  52. struct rx_mpdu_link_ptr mpdu_link_pointer_2;
  53. struct rx_mpdu_link_ptr mpdu_link_pointer_3;
  54. struct rx_mpdu_link_ptr mpdu_link_pointer_4;
  55. struct rx_mpdu_link_ptr mpdu_link_pointer_5;
  56. struct rx_mpdu_link_ptr mpdu_link_pointer_6;
  57. struct rx_mpdu_link_ptr mpdu_link_pointer_7;
  58. struct rx_mpdu_link_ptr mpdu_link_pointer_8;
  59. struct rx_mpdu_link_ptr mpdu_link_pointer_9;
  60. struct rx_mpdu_link_ptr mpdu_link_pointer_10;
  61. struct rx_mpdu_link_ptr mpdu_link_pointer_11;
  62. struct rx_mpdu_link_ptr mpdu_link_pointer_12;
  63. struct rx_mpdu_link_ptr mpdu_link_pointer_13;
  64. struct rx_mpdu_link_ptr mpdu_link_pointer_14;
  65. };
  66. /*
  67. struct uniform_descriptor_header descriptor_header
  68. Details about which module owns this struct.
  69. Note that sub field Buffer_type shall be set to
  70. Receive_REO_queue_ext_descriptor
  71. reserved_1a
  72. <legal 0>
  73. struct rx_mpdu_link_ptr mpdu_link_pointer_0
  74. Consumer: REO
  75. Producer: REO
  76. Pointer to the next MPDU_link descriptor in the MPDU
  77. queue
  78. struct rx_mpdu_link_ptr mpdu_link_pointer_1
  79. Consumer: REO
  80. Producer: REO
  81. Pointer to the next MPDU_link descriptor in the MPDU
  82. queue
  83. struct rx_mpdu_link_ptr mpdu_link_pointer_2
  84. Consumer: REO
  85. Producer: REO
  86. Pointer to the next MPDU_link descriptor in the MPDU
  87. queue
  88. struct rx_mpdu_link_ptr mpdu_link_pointer_3
  89. Consumer: REO
  90. Producer: REO
  91. Pointer to the next MPDU_link descriptor in the MPDU
  92. queue
  93. struct rx_mpdu_link_ptr mpdu_link_pointer_4
  94. Consumer: REO
  95. Producer: REO
  96. Pointer to the next MPDU_link descriptor in the MPDU
  97. queue
  98. struct rx_mpdu_link_ptr mpdu_link_pointer_5
  99. Consumer: REO
  100. Producer: REO
  101. Pointer to the next MPDU_link descriptor in the MPDU
  102. queue
  103. struct rx_mpdu_link_ptr mpdu_link_pointer_6
  104. Consumer: REO
  105. Producer: REO
  106. Pointer to the next MPDU_link descriptor in the MPDU
  107. queue
  108. struct rx_mpdu_link_ptr mpdu_link_pointer_7
  109. Consumer: REO
  110. Producer: REO
  111. Pointer to the next MPDU_link descriptor in the MPDU
  112. queue
  113. struct rx_mpdu_link_ptr mpdu_link_pointer_8
  114. Consumer: REO
  115. Producer: REO
  116. Pointer to the next MPDU_link descriptor in the MPDU
  117. queue
  118. struct rx_mpdu_link_ptr mpdu_link_pointer_9
  119. Consumer: REO
  120. Producer: REO
  121. Pointer to the next MPDU_link descriptor in the MPDU
  122. queue
  123. struct rx_mpdu_link_ptr mpdu_link_pointer_10
  124. Consumer: REO
  125. Producer: REO
  126. Pointer to the next MPDU_link descriptor in the MPDU
  127. queue
  128. struct rx_mpdu_link_ptr mpdu_link_pointer_11
  129. Consumer: REO
  130. Producer: REO
  131. Pointer to the next MPDU_link descriptor in the MPDU
  132. queue
  133. struct rx_mpdu_link_ptr mpdu_link_pointer_12
  134. Consumer: REO
  135. Producer: REO
  136. Pointer to the next MPDU_link descriptor in the MPDU
  137. queue
  138. struct rx_mpdu_link_ptr mpdu_link_pointer_13
  139. Consumer: REO
  140. Producer: REO
  141. Pointer to the next MPDU_link descriptor in the MPDU
  142. queue
  143. struct rx_mpdu_link_ptr mpdu_link_pointer_14
  144. Consumer: REO
  145. Producer: REO
  146. Pointer to the next MPDU_link descriptor in the MPDU
  147. queue
  148. */
  149. #define RX_REO_QUEUE_EXT_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_OFFSET 0x00000000
  150. #define RX_REO_QUEUE_EXT_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_LSB 0
  151. #define RX_REO_QUEUE_EXT_0_UNIFORM_DESCRIPTOR_HEADER_DESCRIPTOR_HEADER_MASK 0xffffffff
  152. /* Description RX_REO_QUEUE_EXT_1_RESERVED_1A
  153. <legal 0>
  154. */
  155. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_OFFSET 0x00000004
  156. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_LSB 0
  157. #define RX_REO_QUEUE_EXT_1_RESERVED_1A_MASK 0xffffffff
  158. #define RX_REO_QUEUE_EXT_2_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_OFFSET 0x00000008
  159. #define RX_REO_QUEUE_EXT_2_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_LSB 0
  160. #define RX_REO_QUEUE_EXT_2_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_MASK 0xffffffff
  161. #define RX_REO_QUEUE_EXT_3_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_OFFSET 0x0000000c
  162. #define RX_REO_QUEUE_EXT_3_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_LSB 0
  163. #define RX_REO_QUEUE_EXT_3_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_0_MASK 0xffffffff
  164. #define RX_REO_QUEUE_EXT_4_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_OFFSET 0x00000010
  165. #define RX_REO_QUEUE_EXT_4_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_LSB 0
  166. #define RX_REO_QUEUE_EXT_4_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_MASK 0xffffffff
  167. #define RX_REO_QUEUE_EXT_5_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_OFFSET 0x00000014
  168. #define RX_REO_QUEUE_EXT_5_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_LSB 0
  169. #define RX_REO_QUEUE_EXT_5_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_1_MASK 0xffffffff
  170. #define RX_REO_QUEUE_EXT_6_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_OFFSET 0x00000018
  171. #define RX_REO_QUEUE_EXT_6_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_LSB 0
  172. #define RX_REO_QUEUE_EXT_6_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_MASK 0xffffffff
  173. #define RX_REO_QUEUE_EXT_7_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_OFFSET 0x0000001c
  174. #define RX_REO_QUEUE_EXT_7_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_LSB 0
  175. #define RX_REO_QUEUE_EXT_7_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_2_MASK 0xffffffff
  176. #define RX_REO_QUEUE_EXT_8_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_OFFSET 0x00000020
  177. #define RX_REO_QUEUE_EXT_8_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_LSB 0
  178. #define RX_REO_QUEUE_EXT_8_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_MASK 0xffffffff
  179. #define RX_REO_QUEUE_EXT_9_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_OFFSET 0x00000024
  180. #define RX_REO_QUEUE_EXT_9_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_LSB 0
  181. #define RX_REO_QUEUE_EXT_9_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_3_MASK 0xffffffff
  182. #define RX_REO_QUEUE_EXT_10_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_OFFSET 0x00000028
  183. #define RX_REO_QUEUE_EXT_10_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_LSB 0
  184. #define RX_REO_QUEUE_EXT_10_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_MASK 0xffffffff
  185. #define RX_REO_QUEUE_EXT_11_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_OFFSET 0x0000002c
  186. #define RX_REO_QUEUE_EXT_11_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_LSB 0
  187. #define RX_REO_QUEUE_EXT_11_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_4_MASK 0xffffffff
  188. #define RX_REO_QUEUE_EXT_12_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_OFFSET 0x00000030
  189. #define RX_REO_QUEUE_EXT_12_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_LSB 0
  190. #define RX_REO_QUEUE_EXT_12_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_MASK 0xffffffff
  191. #define RX_REO_QUEUE_EXT_13_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_OFFSET 0x00000034
  192. #define RX_REO_QUEUE_EXT_13_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_LSB 0
  193. #define RX_REO_QUEUE_EXT_13_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_5_MASK 0xffffffff
  194. #define RX_REO_QUEUE_EXT_14_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_OFFSET 0x00000038
  195. #define RX_REO_QUEUE_EXT_14_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_LSB 0
  196. #define RX_REO_QUEUE_EXT_14_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_MASK 0xffffffff
  197. #define RX_REO_QUEUE_EXT_15_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_OFFSET 0x0000003c
  198. #define RX_REO_QUEUE_EXT_15_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_LSB 0
  199. #define RX_REO_QUEUE_EXT_15_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_6_MASK 0xffffffff
  200. #define RX_REO_QUEUE_EXT_16_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_OFFSET 0x00000040
  201. #define RX_REO_QUEUE_EXT_16_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_LSB 0
  202. #define RX_REO_QUEUE_EXT_16_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_MASK 0xffffffff
  203. #define RX_REO_QUEUE_EXT_17_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_OFFSET 0x00000044
  204. #define RX_REO_QUEUE_EXT_17_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_LSB 0
  205. #define RX_REO_QUEUE_EXT_17_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_7_MASK 0xffffffff
  206. #define RX_REO_QUEUE_EXT_18_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_OFFSET 0x00000048
  207. #define RX_REO_QUEUE_EXT_18_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_LSB 0
  208. #define RX_REO_QUEUE_EXT_18_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_MASK 0xffffffff
  209. #define RX_REO_QUEUE_EXT_19_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_OFFSET 0x0000004c
  210. #define RX_REO_QUEUE_EXT_19_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_LSB 0
  211. #define RX_REO_QUEUE_EXT_19_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_8_MASK 0xffffffff
  212. #define RX_REO_QUEUE_EXT_20_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_OFFSET 0x00000050
  213. #define RX_REO_QUEUE_EXT_20_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_LSB 0
  214. #define RX_REO_QUEUE_EXT_20_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_MASK 0xffffffff
  215. #define RX_REO_QUEUE_EXT_21_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_OFFSET 0x00000054
  216. #define RX_REO_QUEUE_EXT_21_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_LSB 0
  217. #define RX_REO_QUEUE_EXT_21_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_9_MASK 0xffffffff
  218. #define RX_REO_QUEUE_EXT_22_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_OFFSET 0x00000058
  219. #define RX_REO_QUEUE_EXT_22_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_LSB 0
  220. #define RX_REO_QUEUE_EXT_22_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_MASK 0xffffffff
  221. #define RX_REO_QUEUE_EXT_23_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_OFFSET 0x0000005c
  222. #define RX_REO_QUEUE_EXT_23_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_LSB 0
  223. #define RX_REO_QUEUE_EXT_23_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_10_MASK 0xffffffff
  224. #define RX_REO_QUEUE_EXT_24_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_OFFSET 0x00000060
  225. #define RX_REO_QUEUE_EXT_24_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_LSB 0
  226. #define RX_REO_QUEUE_EXT_24_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_MASK 0xffffffff
  227. #define RX_REO_QUEUE_EXT_25_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_OFFSET 0x00000064
  228. #define RX_REO_QUEUE_EXT_25_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_LSB 0
  229. #define RX_REO_QUEUE_EXT_25_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_11_MASK 0xffffffff
  230. #define RX_REO_QUEUE_EXT_26_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_OFFSET 0x00000068
  231. #define RX_REO_QUEUE_EXT_26_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_LSB 0
  232. #define RX_REO_QUEUE_EXT_26_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_MASK 0xffffffff
  233. #define RX_REO_QUEUE_EXT_27_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_OFFSET 0x0000006c
  234. #define RX_REO_QUEUE_EXT_27_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_LSB 0
  235. #define RX_REO_QUEUE_EXT_27_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_12_MASK 0xffffffff
  236. #define RX_REO_QUEUE_EXT_28_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_OFFSET 0x00000070
  237. #define RX_REO_QUEUE_EXT_28_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_LSB 0
  238. #define RX_REO_QUEUE_EXT_28_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_MASK 0xffffffff
  239. #define RX_REO_QUEUE_EXT_29_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_OFFSET 0x00000074
  240. #define RX_REO_QUEUE_EXT_29_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_LSB 0
  241. #define RX_REO_QUEUE_EXT_29_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_13_MASK 0xffffffff
  242. #define RX_REO_QUEUE_EXT_30_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_OFFSET 0x00000078
  243. #define RX_REO_QUEUE_EXT_30_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_LSB 0
  244. #define RX_REO_QUEUE_EXT_30_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_MASK 0xffffffff
  245. #define RX_REO_QUEUE_EXT_31_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_OFFSET 0x0000007c
  246. #define RX_REO_QUEUE_EXT_31_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_LSB 0
  247. #define RX_REO_QUEUE_EXT_31_RX_MPDU_LINK_PTR_MPDU_LINK_POINTER_14_MASK 0xffffffff
  248. #endif // _RX_REO_QUEUE_EXT_H_