halmac_tx_desc_ie_ap.h 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2016 - 2018 Realtek Corporation. All rights reserved.
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of version 2 of the GNU General Public License as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12. * more details.
  13. *
  14. ******************************************************************************/
  15. #ifndef _HALMAC_TX_DESC_IE_AP_H_
  16. #define _HALMAC_TX_DESC_IE_AP_H_
  17. #if (HALMAC_8814B_SUPPORT)
  18. #define IE0_GET_TX_DESC_IE_END(txdesc_ie) \
  19. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  20. 0x1, 31)
  21. #define IE0_SET_TX_DESC_IE_END(txdesc_ie, value) \
  22. HALMAC_SET_DESC_FIELD_CLR( \
  23. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  24. #define IE0_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  25. HALMAC_SET_DESC_FIELD_NO_CLR( \
  26. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  27. #define IE0_GET_TX_DESC_IE_UP(txdesc_ie) \
  28. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  29. 0x1, 30)
  30. #define IE0_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  31. HALMAC_SET_DESC_FIELD_CLR( \
  32. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  33. #define IE0_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  34. HALMAC_SET_DESC_FIELD_NO_CLR( \
  35. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  36. #define IE0_GET_TX_DESC_IE_NUM(txdesc_ie) \
  37. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  38. 0xf, 24)
  39. #define IE0_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  40. HALMAC_SET_DESC_FIELD_CLR( \
  41. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  42. #define IE0_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  43. HALMAC_SET_DESC_FIELD_NO_CLR( \
  44. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  45. #define IE0_GET_TX_DESC_ARFR_TABLE_SEL(txdesc_ie) \
  46. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  47. 0x1, 19)
  48. #define IE0_SET_TX_DESC_ARFR_TABLE_SEL(txdesc_ie, value) \
  49. HALMAC_SET_DESC_FIELD_CLR( \
  50. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 19)
  51. #define IE0_SET_TX_DESC_ARFR_TABLE_SEL_NO_CLR(txdesc_ie, value) \
  52. HALMAC_SET_DESC_FIELD_NO_CLR( \
  53. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 19)
  54. #define IE0_GET_TX_DESC_ARFR_HT_EN(txdesc_ie) \
  55. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  56. 0x1, 18)
  57. #define IE0_SET_TX_DESC_ARFR_HT_EN(txdesc_ie, value) \
  58. HALMAC_SET_DESC_FIELD_CLR( \
  59. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 18)
  60. #define IE0_SET_TX_DESC_ARFR_HT_EN_NO_CLR(txdesc_ie, value) \
  61. HALMAC_SET_DESC_FIELD_NO_CLR( \
  62. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 18)
  63. #define IE0_GET_TX_DESC_ARFR_OFDM_EN(txdesc_ie) \
  64. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  65. 0x1, 17)
  66. #define IE0_SET_TX_DESC_ARFR_OFDM_EN(txdesc_ie, value) \
  67. HALMAC_SET_DESC_FIELD_CLR( \
  68. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 17)
  69. #define IE0_SET_TX_DESC_ARFR_OFDM_EN_NO_CLR(txdesc_ie, value) \
  70. HALMAC_SET_DESC_FIELD_NO_CLR( \
  71. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 17)
  72. #define IE0_GET_TX_DESC_ARFR_CCK_EN(txdesc_ie) \
  73. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  74. 0x1, 16)
  75. #define IE0_SET_TX_DESC_ARFR_CCK_EN(txdesc_ie, value) \
  76. HALMAC_SET_DESC_FIELD_CLR( \
  77. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 16)
  78. #define IE0_SET_TX_DESC_ARFR_CCK_EN_NO_CLR(txdesc_ie, value) \
  79. HALMAC_SET_DESC_FIELD_NO_CLR( \
  80. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 16)
  81. #define IE0_GET_TX_DESC_HW_RTS_EN(txdesc_ie) \
  82. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  83. 0x1, 9)
  84. #define IE0_SET_TX_DESC_HW_RTS_EN(txdesc_ie, value) \
  85. HALMAC_SET_DESC_FIELD_CLR( \
  86. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 9)
  87. #define IE0_SET_TX_DESC_HW_RTS_EN_NO_CLR(txdesc_ie, value) \
  88. HALMAC_SET_DESC_FIELD_NO_CLR( \
  89. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 9)
  90. #define IE0_GET_TX_DESC_RTS_EN(txdesc_ie) \
  91. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  92. 0x1, 8)
  93. #define IE0_SET_TX_DESC_RTS_EN(txdesc_ie, value) \
  94. HALMAC_SET_DESC_FIELD_CLR( \
  95. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 8)
  96. #define IE0_SET_TX_DESC_RTS_EN_NO_CLR(txdesc_ie, value) \
  97. HALMAC_SET_DESC_FIELD_NO_CLR( \
  98. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 8)
  99. #define IE0_GET_TX_DESC_CTS2SELF(txdesc_ie) \
  100. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  101. 0x1, 7)
  102. #define IE0_SET_TX_DESC_CTS2SELF(txdesc_ie, value) \
  103. HALMAC_SET_DESC_FIELD_CLR( \
  104. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  105. #define IE0_SET_TX_DESC_CTS2SELF_NO_CLR(txdesc_ie, value) \
  106. HALMAC_SET_DESC_FIELD_NO_CLR( \
  107. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  108. #define IE0_GET_TX_DESC_RTY_LMT_EN(txdesc_ie) \
  109. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  110. 0x1, 6)
  111. #define IE0_SET_TX_DESC_RTY_LMT_EN(txdesc_ie, value) \
  112. HALMAC_SET_DESC_FIELD_CLR( \
  113. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  114. #define IE0_SET_TX_DESC_RTY_LMT_EN_NO_CLR(txdesc_ie, value) \
  115. HALMAC_SET_DESC_FIELD_NO_CLR( \
  116. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  117. #define IE0_GET_TX_DESC_RTS_SHORT(txdesc_ie) \
  118. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  119. 0x1, 5)
  120. #define IE0_SET_TX_DESC_RTS_SHORT(txdesc_ie, value) \
  121. HALMAC_SET_DESC_FIELD_CLR( \
  122. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 5)
  123. #define IE0_SET_TX_DESC_RTS_SHORT_NO_CLR(txdesc_ie, value) \
  124. HALMAC_SET_DESC_FIELD_NO_CLR( \
  125. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 5)
  126. #define IE0_GET_TX_DESC_DISDATAFB(txdesc_ie) \
  127. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  128. 0x1, 4)
  129. #define IE0_SET_TX_DESC_DISDATAFB(txdesc_ie, value) \
  130. HALMAC_SET_DESC_FIELD_CLR( \
  131. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 4)
  132. #define IE0_SET_TX_DESC_DISDATAFB_NO_CLR(txdesc_ie, value) \
  133. HALMAC_SET_DESC_FIELD_NO_CLR( \
  134. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 4)
  135. #define IE0_GET_TX_DESC_DISRTSFB(txdesc_ie) \
  136. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  137. 0x1, 3)
  138. #define IE0_SET_TX_DESC_DISRTSFB(txdesc_ie, value) \
  139. HALMAC_SET_DESC_FIELD_CLR( \
  140. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  141. #define IE0_SET_TX_DESC_DISRTSFB_NO_CLR(txdesc_ie, value) \
  142. HALMAC_SET_DESC_FIELD_NO_CLR( \
  143. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  144. #define IE0_GET_TX_DESC_DATA_SHORT(txdesc_ie) \
  145. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  146. 0x1, 2)
  147. #define IE0_SET_TX_DESC_DATA_SHORT(txdesc_ie, value) \
  148. HALMAC_SET_DESC_FIELD_CLR( \
  149. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  150. #define IE0_SET_TX_DESC_DATA_SHORT_NO_CLR(txdesc_ie, value) \
  151. HALMAC_SET_DESC_FIELD_NO_CLR( \
  152. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  153. #define IE0_GET_TX_DESC_TRY_RATE(txdesc_ie) \
  154. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  155. 0x1, 1)
  156. #define IE0_SET_TX_DESC_TRY_RATE(txdesc_ie, value) \
  157. HALMAC_SET_DESC_FIELD_CLR( \
  158. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  159. #define IE0_SET_TX_DESC_TRY_RATE_NO_CLR(txdesc_ie, value) \
  160. HALMAC_SET_DESC_FIELD_NO_CLR( \
  161. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  162. #define IE0_GET_TX_DESC_USERATE(txdesc_ie) \
  163. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  164. 0x1, 0)
  165. #define IE0_SET_TX_DESC_USERATE(txdesc_ie, value) \
  166. HALMAC_SET_DESC_FIELD_CLR( \
  167. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  168. #define IE0_SET_TX_DESC_USERATE_NO_CLR(txdesc_ie, value) \
  169. HALMAC_SET_DESC_FIELD_NO_CLR( \
  170. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  171. #define IE0_GET_TX_DESC_RTS_RTY_LOWEST_RATE(txdesc_ie) \
  172. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  173. 0xf, 27)
  174. #define IE0_SET_TX_DESC_RTS_RTY_LOWEST_RATE(txdesc_ie, value) \
  175. HALMAC_SET_DESC_FIELD_CLR( \
  176. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 27)
  177. #define IE0_SET_TX_DESC_RTS_RTY_LOWEST_RATE_NO_CLR(txdesc_ie, value) \
  178. HALMAC_SET_DESC_FIELD_NO_CLR( \
  179. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 27)
  180. #define IE0_GET_TX_DESC_DATA_RTY_LOWEST_RATE(txdesc_ie) \
  181. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  182. 0x1f, 22)
  183. #define IE0_SET_TX_DESC_DATA_RTY_LOWEST_RATE(txdesc_ie, value) \
  184. HALMAC_SET_DESC_FIELD_CLR( \
  185. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1f, 22)
  186. #define IE0_SET_TX_DESC_DATA_RTY_LOWEST_RATE_NO_CLR(txdesc_ie, value) \
  187. HALMAC_SET_DESC_FIELD_NO_CLR( \
  188. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1f, 22)
  189. #define IE0_GET_TX_DESC_RTS_DATA_RTY_LMT(txdesc_ie) \
  190. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  191. 0x3f, 16)
  192. #define IE0_SET_TX_DESC_RTS_DATA_RTY_LMT(txdesc_ie, value) \
  193. HALMAC_SET_DESC_FIELD_CLR( \
  194. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 16)
  195. #define IE0_SET_TX_DESC_RTS_DATA_RTY_LMT_NO_CLR(txdesc_ie, value) \
  196. HALMAC_SET_DESC_FIELD_NO_CLR( \
  197. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 16)
  198. #define IE0_GET_TX_DESC_DATA_BW(txdesc_ie) \
  199. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  200. 0x3, 12)
  201. #define IE0_SET_TX_DESC_DATA_BW(txdesc_ie, value) \
  202. HALMAC_SET_DESC_FIELD_CLR( \
  203. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 12)
  204. #define IE0_SET_TX_DESC_DATA_BW_NO_CLR(txdesc_ie, value) \
  205. HALMAC_SET_DESC_FIELD_NO_CLR( \
  206. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 12)
  207. #define IE0_GET_TX_DESC_RTSRATE(txdesc_ie) \
  208. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  209. 0xf, 7)
  210. #define IE0_SET_TX_DESC_RTSRATE(txdesc_ie, value) \
  211. HALMAC_SET_DESC_FIELD_CLR( \
  212. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 7)
  213. #define IE0_SET_TX_DESC_RTSRATE_NO_CLR(txdesc_ie, value) \
  214. HALMAC_SET_DESC_FIELD_NO_CLR( \
  215. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 7)
  216. #define IE0_GET_TX_DESC_DATARATE(txdesc_ie) \
  217. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  218. 0x7f, 0)
  219. #define IE0_SET_TX_DESC_DATARATE(txdesc_ie, value) \
  220. HALMAC_SET_DESC_FIELD_CLR( \
  221. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7f, 0)
  222. #define IE0_SET_TX_DESC_DATARATE_NO_CLR(txdesc_ie, value) \
  223. HALMAC_SET_DESC_FIELD_NO_CLR( \
  224. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7f, 0)
  225. #define IE1_GET_TX_DESC_IE_END(txdesc_ie) \
  226. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  227. 0x1, 31)
  228. #define IE1_SET_TX_DESC_IE_END(txdesc_ie, value) \
  229. HALMAC_SET_DESC_FIELD_CLR( \
  230. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  231. #define IE1_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  232. HALMAC_SET_DESC_FIELD_NO_CLR( \
  233. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  234. #define IE1_GET_TX_DESC_IE_UP(txdesc_ie) \
  235. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  236. 0x1, 30)
  237. #define IE1_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  238. HALMAC_SET_DESC_FIELD_CLR( \
  239. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  240. #define IE1_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  241. HALMAC_SET_DESC_FIELD_NO_CLR( \
  242. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  243. #define IE1_GET_TX_DESC_IE_NUM(txdesc_ie) \
  244. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  245. 0xf, 24)
  246. #define IE1_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  247. HALMAC_SET_DESC_FIELD_CLR( \
  248. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  249. #define IE1_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  250. HALMAC_SET_DESC_FIELD_NO_CLR( \
  251. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  252. #define IE1_GET_TX_DESC_AMPDU_DENSITY(txdesc_ie) \
  253. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  254. 0x7, 21)
  255. #define IE1_SET_TX_DESC_AMPDU_DENSITY(txdesc_ie, value) \
  256. HALMAC_SET_DESC_FIELD_CLR( \
  257. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7, 21)
  258. #define IE1_SET_TX_DESC_AMPDU_DENSITY_NO_CLR(txdesc_ie, value) \
  259. HALMAC_SET_DESC_FIELD_NO_CLR( \
  260. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7, 21)
  261. #define IE1_GET_TX_DESC_MAX_AGG_NUM(txdesc_ie) \
  262. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  263. 0x1f, 16)
  264. #define IE1_SET_TX_DESC_MAX_AGG_NUM(txdesc_ie, value) \
  265. HALMAC_SET_DESC_FIELD_CLR( \
  266. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1f, 16)
  267. #define IE1_SET_TX_DESC_MAX_AGG_NUM_NO_CLR(txdesc_ie, value) \
  268. HALMAC_SET_DESC_FIELD_NO_CLR( \
  269. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1f, 16)
  270. #define IE1_GET_TX_DESC_SECTYPE(txdesc_ie) \
  271. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  272. 0x3, 14)
  273. #define IE1_SET_TX_DESC_SECTYPE(txdesc_ie, value) \
  274. HALMAC_SET_DESC_FIELD_CLR( \
  275. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 14)
  276. #define IE1_SET_TX_DESC_SECTYPE_NO_CLR(txdesc_ie, value) \
  277. HALMAC_SET_DESC_FIELD_NO_CLR( \
  278. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 14)
  279. #define IE1_GET_TX_DESC_MOREFRAG(txdesc_ie) \
  280. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  281. 0x1, 13)
  282. #define IE1_SET_TX_DESC_MOREFRAG(txdesc_ie, value) \
  283. HALMAC_SET_DESC_FIELD_CLR( \
  284. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 13)
  285. #define IE1_SET_TX_DESC_MOREFRAG_NO_CLR(txdesc_ie, value) \
  286. HALMAC_SET_DESC_FIELD_NO_CLR( \
  287. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 13)
  288. #define IE1_GET_TX_DESC_NOACM(txdesc_ie) \
  289. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  290. 0x1, 12)
  291. #define IE1_SET_TX_DESC_NOACM(txdesc_ie, value) \
  292. HALMAC_SET_DESC_FIELD_CLR( \
  293. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 12)
  294. #define IE1_SET_TX_DESC_NOACM_NO_CLR(txdesc_ie, value) \
  295. HALMAC_SET_DESC_FIELD_NO_CLR( \
  296. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 12)
  297. #define IE1_GET_TX_DESC_BCNPKT_TSF_CTRL(txdesc_ie) \
  298. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  299. 0x1, 11)
  300. #define IE1_SET_TX_DESC_BCNPKT_TSF_CTRL(txdesc_ie, value) \
  301. HALMAC_SET_DESC_FIELD_CLR( \
  302. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 11)
  303. #define IE1_SET_TX_DESC_BCNPKT_TSF_CTRL_NO_CLR(txdesc_ie, value) \
  304. HALMAC_SET_DESC_FIELD_NO_CLR( \
  305. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 11)
  306. #define IE1_GET_TX_DESC_NAVUSEHDR(txdesc_ie) \
  307. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  308. 0x1, 10)
  309. #define IE1_SET_TX_DESC_NAVUSEHDR(txdesc_ie, value) \
  310. HALMAC_SET_DESC_FIELD_CLR( \
  311. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 10)
  312. #define IE1_SET_TX_DESC_NAVUSEHDR_NO_CLR(txdesc_ie, value) \
  313. HALMAC_SET_DESC_FIELD_NO_CLR( \
  314. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 10)
  315. #define IE1_GET_TX_DESC_HTC(txdesc_ie) \
  316. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  317. 0x1, 9)
  318. #define IE1_SET_TX_DESC_HTC(txdesc_ie, value) \
  319. HALMAC_SET_DESC_FIELD_CLR( \
  320. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 9)
  321. #define IE1_SET_TX_DESC_HTC_NO_CLR(txdesc_ie, value) \
  322. HALMAC_SET_DESC_FIELD_NO_CLR( \
  323. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 9)
  324. #define IE1_GET_TX_DESC_BMC(txdesc_ie) \
  325. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  326. 0x1, 8)
  327. #define IE1_SET_TX_DESC_BMC(txdesc_ie, value) \
  328. HALMAC_SET_DESC_FIELD_CLR( \
  329. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 8)
  330. #define IE1_SET_TX_DESC_BMC_NO_CLR(txdesc_ie, value) \
  331. HALMAC_SET_DESC_FIELD_NO_CLR( \
  332. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 8)
  333. #define IE1_GET_TX_DESC_TX_PKT_AFTER_PIFS(txdesc_ie) \
  334. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  335. 0x1, 7)
  336. #define IE1_SET_TX_DESC_TX_PKT_AFTER_PIFS(txdesc_ie, value) \
  337. HALMAC_SET_DESC_FIELD_CLR( \
  338. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  339. #define IE1_SET_TX_DESC_TX_PKT_AFTER_PIFS_NO_CLR(txdesc_ie, value) \
  340. HALMAC_SET_DESC_FIELD_NO_CLR( \
  341. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  342. #define IE1_GET_TX_DESC_USE_MAX_TIME_EN(txdesc_ie) \
  343. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  344. 0x1, 6)
  345. #define IE1_SET_TX_DESC_USE_MAX_TIME_EN(txdesc_ie, value) \
  346. HALMAC_SET_DESC_FIELD_CLR( \
  347. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  348. #define IE1_SET_TX_DESC_USE_MAX_TIME_EN_NO_CLR(txdesc_ie, value) \
  349. HALMAC_SET_DESC_FIELD_NO_CLR( \
  350. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  351. #define IE1_GET_TX_DESC_HW_SSN_SEL(txdesc_ie) \
  352. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  353. 0x3, 4)
  354. #define IE1_SET_TX_DESC_HW_SSN_SEL(txdesc_ie, value) \
  355. HALMAC_SET_DESC_FIELD_CLR( \
  356. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 4)
  357. #define IE1_SET_TX_DESC_HW_SSN_SEL_NO_CLR(txdesc_ie, value) \
  358. HALMAC_SET_DESC_FIELD_NO_CLR( \
  359. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 4)
  360. #define IE1_GET_TX_DESC_DISQSELSEQ(txdesc_ie) \
  361. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  362. 0x1, 3)
  363. #define IE1_SET_TX_DESC_DISQSELSEQ(txdesc_ie, value) \
  364. HALMAC_SET_DESC_FIELD_CLR( \
  365. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  366. #define IE1_SET_TX_DESC_DISQSELSEQ_NO_CLR(txdesc_ie, value) \
  367. HALMAC_SET_DESC_FIELD_NO_CLR( \
  368. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  369. #define IE1_GET_TX_DESC_EN_HWSEQ(txdesc_ie) \
  370. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  371. 0x1, 2)
  372. #define IE1_SET_TX_DESC_EN_HWSEQ(txdesc_ie, value) \
  373. HALMAC_SET_DESC_FIELD_CLR( \
  374. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  375. #define IE1_SET_TX_DESC_EN_HWSEQ_NO_CLR(txdesc_ie, value) \
  376. HALMAC_SET_DESC_FIELD_NO_CLR( \
  377. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  378. #define IE1_GET_TX_DESC_EN_HWEXSEQ(txdesc_ie) \
  379. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  380. 0x1, 1)
  381. #define IE1_SET_TX_DESC_EN_HWEXSEQ(txdesc_ie, value) \
  382. HALMAC_SET_DESC_FIELD_CLR( \
  383. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  384. #define IE1_SET_TX_DESC_EN_HWEXSEQ_NO_CLR(txdesc_ie, value) \
  385. HALMAC_SET_DESC_FIELD_NO_CLR( \
  386. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  387. #define IE1_GET_TX_DESC_EN_DESC_ID(txdesc_ie) \
  388. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  389. 0x1, 0)
  390. #define IE1_SET_TX_DESC_EN_DESC_ID(txdesc_ie, value) \
  391. HALMAC_SET_DESC_FIELD_CLR( \
  392. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  393. #define IE1_SET_TX_DESC_EN_DESC_ID_NO_CLR(txdesc_ie, value) \
  394. HALMAC_SET_DESC_FIELD_NO_CLR( \
  395. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  396. #define IE1_GET_TX_DESC_AMPDU_MAX_TIME(txdesc_ie) \
  397. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  398. 0xff, 24)
  399. #define IE1_SET_TX_DESC_AMPDU_MAX_TIME(txdesc_ie, value) \
  400. HALMAC_SET_DESC_FIELD_CLR( \
  401. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xff, 24)
  402. #define IE1_SET_TX_DESC_AMPDU_MAX_TIME_NO_CLR(txdesc_ie, value) \
  403. HALMAC_SET_DESC_FIELD_NO_CLR( \
  404. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xff, 24)
  405. #define IE1_GET_TX_DESC_P_AID(txdesc_ie) \
  406. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  407. 0x1ff, 15)
  408. #define IE1_SET_TX_DESC_P_AID(txdesc_ie, value) \
  409. HALMAC_SET_DESC_FIELD_CLR( \
  410. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1ff, \
  411. 15)
  412. #define IE1_SET_TX_DESC_P_AID_NO_CLR(txdesc_ie, value) \
  413. HALMAC_SET_DESC_FIELD_NO_CLR( \
  414. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1ff, \
  415. 15)
  416. #define IE1_GET_TX_DESC_MOREDATA(txdesc_ie) \
  417. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  418. 0x1, 14)
  419. #define IE1_SET_TX_DESC_MOREDATA(txdesc_ie, value) \
  420. HALMAC_SET_DESC_FIELD_CLR( \
  421. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 14)
  422. #define IE1_SET_TX_DESC_MOREDATA_NO_CLR(txdesc_ie, value) \
  423. HALMAC_SET_DESC_FIELD_NO_CLR( \
  424. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 14)
  425. #define IE1_GET_TX_DESC_SW_SEQ(txdesc_ie) \
  426. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  427. 0xfff, 0)
  428. #define IE1_SET_TX_DESC_SW_SEQ(txdesc_ie, value) \
  429. HALMAC_SET_DESC_FIELD_CLR( \
  430. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xfff, 0)
  431. #define IE1_SET_TX_DESC_SW_SEQ_NO_CLR(txdesc_ie, value) \
  432. HALMAC_SET_DESC_FIELD_NO_CLR( \
  433. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xfff, 0)
  434. #define IE2_GET_TX_DESC_IE_END(txdesc_ie) \
  435. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  436. 0x1, 31)
  437. #define IE2_SET_TX_DESC_IE_END(txdesc_ie, value) \
  438. HALMAC_SET_DESC_FIELD_CLR( \
  439. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  440. #define IE2_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  441. HALMAC_SET_DESC_FIELD_NO_CLR( \
  442. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  443. #define IE2_GET_TX_DESC_IE_UP(txdesc_ie) \
  444. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  445. 0x1, 30)
  446. #define IE2_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  447. HALMAC_SET_DESC_FIELD_CLR( \
  448. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  449. #define IE2_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  450. HALMAC_SET_DESC_FIELD_NO_CLR( \
  451. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  452. #define IE2_GET_TX_DESC_IE_NUM(txdesc_ie) \
  453. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  454. 0xf, 24)
  455. #define IE2_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  456. HALMAC_SET_DESC_FIELD_CLR( \
  457. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  458. #define IE2_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  459. HALMAC_SET_DESC_FIELD_NO_CLR( \
  460. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  461. #define IE2_GET_TX_DESC_ADDR_CAM(txdesc_ie) \
  462. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  463. 0xff, 16)
  464. #define IE2_SET_TX_DESC_ADDR_CAM(txdesc_ie, value) \
  465. HALMAC_SET_DESC_FIELD_CLR( \
  466. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xff, 16)
  467. #define IE2_SET_TX_DESC_ADDR_CAM_NO_CLR(txdesc_ie, value) \
  468. HALMAC_SET_DESC_FIELD_NO_CLR( \
  469. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xff, 16)
  470. #define IE2_GET_TX_DESC_MULTIPLE_PORT(txdesc_ie) \
  471. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  472. 0x7, 12)
  473. #define IE2_SET_TX_DESC_MULTIPLE_PORT(txdesc_ie, value) \
  474. HALMAC_SET_DESC_FIELD_CLR( \
  475. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7, 12)
  476. #define IE2_SET_TX_DESC_MULTIPLE_PORT_NO_CLR(txdesc_ie, value) \
  477. HALMAC_SET_DESC_FIELD_NO_CLR( \
  478. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7, 12)
  479. #define IE2_GET_TX_DESC_RAW(txdesc_ie) \
  480. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  481. 0x1, 11)
  482. #define IE2_SET_TX_DESC_RAW(txdesc_ie, value) \
  483. HALMAC_SET_DESC_FIELD_CLR( \
  484. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 11)
  485. #define IE2_SET_TX_DESC_RAW_NO_CLR(txdesc_ie, value) \
  486. HALMAC_SET_DESC_FIELD_NO_CLR( \
  487. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 11)
  488. #define IE2_GET_TX_DESC_RDG_EN(txdesc_ie) \
  489. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  490. 0x1, 10)
  491. #define IE2_SET_TX_DESC_RDG_EN(txdesc_ie, value) \
  492. HALMAC_SET_DESC_FIELD_CLR( \
  493. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 10)
  494. #define IE2_SET_TX_DESC_RDG_EN_NO_CLR(txdesc_ie, value) \
  495. HALMAC_SET_DESC_FIELD_NO_CLR( \
  496. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 10)
  497. #define IE2_GET_TX_DESC_SPECIAL_CW(txdesc_ie) \
  498. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  499. 0x1, 7)
  500. #define IE2_SET_TX_DESC_SPECIAL_CW(txdesc_ie, value) \
  501. HALMAC_SET_DESC_FIELD_CLR( \
  502. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  503. #define IE2_SET_TX_DESC_SPECIAL_CW_NO_CLR(txdesc_ie, value) \
  504. HALMAC_SET_DESC_FIELD_NO_CLR( \
  505. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 7)
  506. #define IE2_GET_TX_DESC_POLLUTED(txdesc_ie) \
  507. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  508. 0x1, 6)
  509. #define IE2_SET_TX_DESC_POLLUTED(txdesc_ie, value) \
  510. HALMAC_SET_DESC_FIELD_CLR( \
  511. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  512. #define IE2_SET_TX_DESC_POLLUTED_NO_CLR(txdesc_ie, value) \
  513. HALMAC_SET_DESC_FIELD_NO_CLR( \
  514. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 6)
  515. #define IE2_GET_TX_DESC_BT_NULL(txdesc_ie) \
  516. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  517. 0x1, 5)
  518. #define IE2_SET_TX_DESC_BT_NULL(txdesc_ie, value) \
  519. HALMAC_SET_DESC_FIELD_CLR( \
  520. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 5)
  521. #define IE2_SET_TX_DESC_BT_NULL_NO_CLR(txdesc_ie, value) \
  522. HALMAC_SET_DESC_FIELD_NO_CLR( \
  523. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 5)
  524. #define IE2_GET_TX_DESC_NULL_1(txdesc_ie) \
  525. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  526. 0x1, 4)
  527. #define IE2_SET_TX_DESC_NULL_1(txdesc_ie, value) \
  528. HALMAC_SET_DESC_FIELD_CLR( \
  529. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 4)
  530. #define IE2_SET_TX_DESC_NULL_1_NO_CLR(txdesc_ie, value) \
  531. HALMAC_SET_DESC_FIELD_NO_CLR( \
  532. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 4)
  533. #define IE2_GET_TX_DESC_NULL_0(txdesc_ie) \
  534. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  535. 0x1, 3)
  536. #define IE2_SET_TX_DESC_NULL_0(txdesc_ie, value) \
  537. HALMAC_SET_DESC_FIELD_CLR( \
  538. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  539. #define IE2_SET_TX_DESC_NULL_0_NO_CLR(txdesc_ie, value) \
  540. HALMAC_SET_DESC_FIELD_NO_CLR( \
  541. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 3)
  542. #define IE2_GET_TX_DESC_TRI_FRAME(txdesc_ie) \
  543. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  544. 0x1, 2)
  545. #define IE2_SET_TX_DESC_TRI_FRAME(txdesc_ie, value) \
  546. HALMAC_SET_DESC_FIELD_CLR( \
  547. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  548. #define IE2_SET_TX_DESC_TRI_FRAME_NO_CLR(txdesc_ie, value) \
  549. HALMAC_SET_DESC_FIELD_NO_CLR( \
  550. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  551. #define IE2_GET_TX_DESC_SPE_RPT(txdesc_ie) \
  552. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  553. 0x1, 1)
  554. #define IE2_SET_TX_DESC_SPE_RPT(txdesc_ie, value) \
  555. HALMAC_SET_DESC_FIELD_CLR( \
  556. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  557. #define IE2_SET_TX_DESC_SPE_RPT_NO_CLR(txdesc_ie, value) \
  558. HALMAC_SET_DESC_FIELD_NO_CLR( \
  559. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  560. #define IE2_GET_TX_DESC_FTM_EN(txdesc_ie) \
  561. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  562. 0x1, 0)
  563. #define IE2_SET_TX_DESC_FTM_EN(txdesc_ie, value) \
  564. HALMAC_SET_DESC_FIELD_CLR( \
  565. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  566. #define IE2_SET_TX_DESC_FTM_EN_NO_CLR(txdesc_ie, value) \
  567. HALMAC_SET_DESC_FIELD_NO_CLR( \
  568. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  569. #define IE2_GET_TX_DESC_MBSSID(txdesc_ie) \
  570. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  571. 0xf, 27)
  572. #define IE2_SET_TX_DESC_MBSSID(txdesc_ie, value) \
  573. HALMAC_SET_DESC_FIELD_CLR( \
  574. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 27)
  575. #define IE2_SET_TX_DESC_MBSSID_NO_CLR(txdesc_ie, value) \
  576. HALMAC_SET_DESC_FIELD_NO_CLR( \
  577. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 27)
  578. #define IE2_GET_TX_DESC_GROUP_BIT_IE_OFFSET(txdesc_ie) \
  579. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  580. 0x7ff, 16)
  581. #define IE2_SET_TX_DESC_GROUP_BIT_IE_OFFSET(txdesc_ie, value) \
  582. HALMAC_SET_DESC_FIELD_CLR( \
  583. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7ff, \
  584. 16)
  585. #define IE2_SET_TX_DESC_GROUP_BIT_IE_OFFSET_NO_CLR(txdesc_ie, value) \
  586. HALMAC_SET_DESC_FIELD_NO_CLR( \
  587. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7ff, \
  588. 16)
  589. #define IE2_GET_TX_DESC_RDG_NAV_EXT(txdesc_ie) \
  590. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  591. 0x1, 15)
  592. #define IE2_SET_TX_DESC_RDG_NAV_EXT(txdesc_ie, value) \
  593. HALMAC_SET_DESC_FIELD_CLR( \
  594. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 15)
  595. #define IE2_SET_TX_DESC_RDG_NAV_EXT_NO_CLR(txdesc_ie, value) \
  596. HALMAC_SET_DESC_FIELD_NO_CLR( \
  597. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 15)
  598. #define IE2_GET_TX_DESC_DROP_ID(txdesc_ie) \
  599. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  600. 0x3, 12)
  601. #define IE2_SET_TX_DESC_DROP_ID(txdesc_ie, value) \
  602. HALMAC_SET_DESC_FIELD_CLR( \
  603. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 12)
  604. #define IE2_SET_TX_DESC_DROP_ID_NO_CLR(txdesc_ie, value) \
  605. HALMAC_SET_DESC_FIELD_NO_CLR( \
  606. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 12)
  607. #define IE2_GET_TX_DESC_SW_DEFINE(txdesc_ie) \
  608. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  609. 0xfff, 0)
  610. #define IE2_SET_TX_DESC_SW_DEFINE(txdesc_ie, value) \
  611. HALMAC_SET_DESC_FIELD_CLR( \
  612. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xfff, 0)
  613. #define IE2_SET_TX_DESC_SW_DEFINE_NO_CLR(txdesc_ie, value) \
  614. HALMAC_SET_DESC_FIELD_NO_CLR( \
  615. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xfff, 0)
  616. #define IE3_GET_TX_DESC_IE_END(txdesc_ie) \
  617. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  618. 0x1, 31)
  619. #define IE3_SET_TX_DESC_IE_END(txdesc_ie, value) \
  620. HALMAC_SET_DESC_FIELD_CLR( \
  621. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  622. #define IE3_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  623. HALMAC_SET_DESC_FIELD_NO_CLR( \
  624. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  625. #define IE3_GET_TX_DESC_IE_UP(txdesc_ie) \
  626. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  627. 0x1, 30)
  628. #define IE3_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  629. HALMAC_SET_DESC_FIELD_CLR( \
  630. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  631. #define IE3_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  632. HALMAC_SET_DESC_FIELD_NO_CLR( \
  633. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  634. #define IE3_GET_TX_DESC_IE_NUM(txdesc_ie) \
  635. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  636. 0xf, 24)
  637. #define IE3_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  638. HALMAC_SET_DESC_FIELD_CLR( \
  639. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  640. #define IE3_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  641. HALMAC_SET_DESC_FIELD_NO_CLR( \
  642. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  643. #define IE3_GET_TX_DESC_DATA_SC(txdesc_ie) \
  644. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  645. 0xf, 20)
  646. #define IE3_SET_TX_DESC_DATA_SC(txdesc_ie, value) \
  647. HALMAC_SET_DESC_FIELD_CLR( \
  648. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 20)
  649. #define IE3_SET_TX_DESC_DATA_SC_NO_CLR(txdesc_ie, value) \
  650. HALMAC_SET_DESC_FIELD_NO_CLR( \
  651. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 20)
  652. #define IE3_GET_TX_DESC_SIGNALING_TA_PKT_SC(txdesc_ie) \
  653. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  654. 0xf, 16)
  655. #define IE3_SET_TX_DESC_SIGNALING_TA_PKT_SC(txdesc_ie, value) \
  656. HALMAC_SET_DESC_FIELD_CLR( \
  657. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 16)
  658. #define IE3_SET_TX_DESC_SIGNALING_TA_PKT_SC_NO_CLR(txdesc_ie, value) \
  659. HALMAC_SET_DESC_FIELD_NO_CLR( \
  660. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 16)
  661. #define IE3_GET_TX_DESC_CTRL_CNT(txdesc_ie) \
  662. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  663. 0xf, 8)
  664. #define IE3_SET_TX_DESC_CTRL_CNT(txdesc_ie, value) \
  665. HALMAC_SET_DESC_FIELD_CLR( \
  666. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 8)
  667. #define IE3_SET_TX_DESC_CTRL_CNT_NO_CLR(txdesc_ie, value) \
  668. HALMAC_SET_DESC_FIELD_NO_CLR( \
  669. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 8)
  670. #define IE3_GET_TX_DESC_CTRL_CNT_VALID(txdesc_ie) \
  671. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  672. 0x1, 1)
  673. #define IE3_SET_TX_DESC_CTRL_CNT_VALID(txdesc_ie, value) \
  674. HALMAC_SET_DESC_FIELD_CLR( \
  675. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  676. #define IE3_SET_TX_DESC_CTRL_CNT_VALID_NO_CLR(txdesc_ie, value) \
  677. HALMAC_SET_DESC_FIELD_NO_CLR( \
  678. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  679. #define IE3_GET_TX_DESC_SIGNALING_TA_PKT_EN(txdesc_ie) \
  680. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  681. 0x1, 0)
  682. #define IE3_SET_TX_DESC_SIGNALING_TA_PKT_EN(txdesc_ie, value) \
  683. HALMAC_SET_DESC_FIELD_CLR( \
  684. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  685. #define IE3_SET_TX_DESC_SIGNALING_TA_PKT_EN_NO_CLR(txdesc_ie, value) \
  686. HALMAC_SET_DESC_FIELD_NO_CLR( \
  687. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  688. #define IE3_GET_TX_DESC_G_ID(txdesc_ie) \
  689. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  690. 0x3f, 24)
  691. #define IE3_SET_TX_DESC_G_ID(txdesc_ie, value) \
  692. HALMAC_SET_DESC_FIELD_CLR( \
  693. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 24)
  694. #define IE3_SET_TX_DESC_G_ID_NO_CLR(txdesc_ie, value) \
  695. HALMAC_SET_DESC_FIELD_NO_CLR( \
  696. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 24)
  697. #define IE3_GET_TX_DESC_SND_TARGET(txdesc_ie) \
  698. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  699. 0xff, 16)
  700. #define IE3_SET_TX_DESC_SND_TARGET(txdesc_ie, value) \
  701. HALMAC_SET_DESC_FIELD_CLR( \
  702. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xff, 16)
  703. #define IE3_SET_TX_DESC_SND_TARGET_NO_CLR(txdesc_ie, value) \
  704. HALMAC_SET_DESC_FIELD_NO_CLR( \
  705. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xff, 16)
  706. #define IE3_GET_TX_DESC_CCA_RTS(txdesc_ie) \
  707. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  708. 0x3, 11)
  709. #define IE3_SET_TX_DESC_CCA_RTS(txdesc_ie, value) \
  710. HALMAC_SET_DESC_FIELD_CLR( \
  711. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 11)
  712. #define IE3_SET_TX_DESC_CCA_RTS_NO_CLR(txdesc_ie, value) \
  713. HALMAC_SET_DESC_FIELD_NO_CLR( \
  714. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 11)
  715. #define IE3_GET_TX_DESC_SND_PKT_SEL(txdesc_ie) \
  716. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  717. 0x3, 9)
  718. #define IE3_SET_TX_DESC_SND_PKT_SEL(txdesc_ie, value) \
  719. HALMAC_SET_DESC_FIELD_CLR( \
  720. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 9)
  721. #define IE3_SET_TX_DESC_SND_PKT_SEL_NO_CLR(txdesc_ie, value) \
  722. HALMAC_SET_DESC_FIELD_NO_CLR( \
  723. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 9)
  724. #define IE3_GET_TX_DESC_NDPA(txdesc_ie) \
  725. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  726. 0x3, 7)
  727. #define IE3_SET_TX_DESC_NDPA(txdesc_ie, value) \
  728. HALMAC_SET_DESC_FIELD_CLR( \
  729. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 7)
  730. #define IE3_SET_TX_DESC_NDPA_NO_CLR(txdesc_ie, value) \
  731. HALMAC_SET_DESC_FIELD_NO_CLR( \
  732. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 7)
  733. #define IE3_GET_TX_DESC_MU_DATARATE(txdesc_ie) \
  734. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  735. 0x7f, 0)
  736. #define IE3_SET_TX_DESC_MU_DATARATE(txdesc_ie, value) \
  737. HALMAC_SET_DESC_FIELD_CLR( \
  738. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7f, 0)
  739. #define IE3_SET_TX_DESC_MU_DATARATE_NO_CLR(txdesc_ie, value) \
  740. HALMAC_SET_DESC_FIELD_NO_CLR( \
  741. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x7f, 0)
  742. #define IE4_GET_TX_DESC_IE_END(txdesc_ie) \
  743. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  744. 0x1, 31)
  745. #define IE4_SET_TX_DESC_IE_END(txdesc_ie, value) \
  746. HALMAC_SET_DESC_FIELD_CLR( \
  747. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  748. #define IE4_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  749. HALMAC_SET_DESC_FIELD_NO_CLR( \
  750. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  751. #define IE4_GET_TX_DESC_IE_UP(txdesc_ie) \
  752. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  753. 0x1, 30)
  754. #define IE4_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  755. HALMAC_SET_DESC_FIELD_CLR( \
  756. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  757. #define IE4_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  758. HALMAC_SET_DESC_FIELD_NO_CLR( \
  759. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  760. #define IE4_GET_TX_DESC_IE_NUM(txdesc_ie) \
  761. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  762. 0xf, 24)
  763. #define IE4_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  764. HALMAC_SET_DESC_FIELD_CLR( \
  765. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  766. #define IE4_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  767. HALMAC_SET_DESC_FIELD_NO_CLR( \
  768. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  769. #define IE4_GET_TX_DESC_VCS_STBC(txdesc_ie) \
  770. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  771. 0x3, 10)
  772. #define IE4_SET_TX_DESC_VCS_STBC(txdesc_ie, value) \
  773. HALMAC_SET_DESC_FIELD_CLR( \
  774. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 10)
  775. #define IE4_SET_TX_DESC_VCS_STBC_NO_CLR(txdesc_ie, value) \
  776. HALMAC_SET_DESC_FIELD_NO_CLR( \
  777. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 10)
  778. #define IE4_GET_TX_DESC_DATA_STBC(txdesc_ie) \
  779. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  780. 0x3, 8)
  781. #define IE4_SET_TX_DESC_DATA_STBC(txdesc_ie, value) \
  782. HALMAC_SET_DESC_FIELD_CLR( \
  783. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 8)
  784. #define IE4_SET_TX_DESC_DATA_STBC_NO_CLR(txdesc_ie, value) \
  785. HALMAC_SET_DESC_FIELD_NO_CLR( \
  786. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x3, 8)
  787. #define IE4_GET_TX_DESC_DATA_LDPC(txdesc_ie) \
  788. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  789. 0x1, 2)
  790. #define IE4_SET_TX_DESC_DATA_LDPC(txdesc_ie, value) \
  791. HALMAC_SET_DESC_FIELD_CLR( \
  792. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  793. #define IE4_SET_TX_DESC_DATA_LDPC_NO_CLR(txdesc_ie, value) \
  794. HALMAC_SET_DESC_FIELD_NO_CLR( \
  795. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 2)
  796. #define IE4_GET_TX_DESC_GF(txdesc_ie) \
  797. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  798. 0x1, 1)
  799. #define IE4_SET_TX_DESC_GF(txdesc_ie, value) \
  800. HALMAC_SET_DESC_FIELD_CLR( \
  801. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  802. #define IE4_SET_TX_DESC_GF_NO_CLR(txdesc_ie, value) \
  803. HALMAC_SET_DESC_FIELD_NO_CLR( \
  804. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 1)
  805. #define IE4_GET_TX_DESC_LSIG_TXOP_EN(txdesc_ie) \
  806. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  807. 0x1, 0)
  808. #define IE4_SET_TX_DESC_LSIG_TXOP_EN(txdesc_ie, value) \
  809. HALMAC_SET_DESC_FIELD_CLR( \
  810. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  811. #define IE4_SET_TX_DESC_LSIG_TXOP_EN_NO_CLR(txdesc_ie, value) \
  812. HALMAC_SET_DESC_FIELD_NO_CLR( \
  813. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 0)
  814. #define IE4_GET_TX_DESC_PATH_MAPA(txdesc_ie) \
  815. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  816. 0x3, 30)
  817. #define IE4_SET_TX_DESC_PATH_MAPA(txdesc_ie, value) \
  818. HALMAC_SET_DESC_FIELD_CLR( \
  819. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 30)
  820. #define IE4_SET_TX_DESC_PATH_MAPA_NO_CLR(txdesc_ie, value) \
  821. HALMAC_SET_DESC_FIELD_NO_CLR( \
  822. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 30)
  823. #define IE4_GET_TX_DESC_PATH_MAPB(txdesc_ie) \
  824. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  825. 0x3, 28)
  826. #define IE4_SET_TX_DESC_PATH_MAPB(txdesc_ie, value) \
  827. HALMAC_SET_DESC_FIELD_CLR( \
  828. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 28)
  829. #define IE4_SET_TX_DESC_PATH_MAPB_NO_CLR(txdesc_ie, value) \
  830. HALMAC_SET_DESC_FIELD_NO_CLR( \
  831. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 28)
  832. #define IE4_GET_TX_DESC_PATH_MAPC(txdesc_ie) \
  833. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  834. 0x3, 26)
  835. #define IE4_SET_TX_DESC_PATH_MAPC(txdesc_ie, value) \
  836. HALMAC_SET_DESC_FIELD_CLR( \
  837. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 26)
  838. #define IE4_SET_TX_DESC_PATH_MAPC_NO_CLR(txdesc_ie, value) \
  839. HALMAC_SET_DESC_FIELD_NO_CLR( \
  840. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 26)
  841. #define IE4_GET_TX_DESC_PATH_MAPD(txdesc_ie) \
  842. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  843. 0x3, 24)
  844. #define IE4_SET_TX_DESC_PATH_MAPD(txdesc_ie, value) \
  845. HALMAC_SET_DESC_FIELD_CLR( \
  846. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 24)
  847. #define IE4_SET_TX_DESC_PATH_MAPD_NO_CLR(txdesc_ie, value) \
  848. HALMAC_SET_DESC_FIELD_NO_CLR( \
  849. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 24)
  850. #define IE4_GET_TX_DESC_ANTSEL_A(txdesc_ie) \
  851. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  852. 0xf, 20)
  853. #define IE4_SET_TX_DESC_ANTSEL_A(txdesc_ie, value) \
  854. HALMAC_SET_DESC_FIELD_CLR( \
  855. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 20)
  856. #define IE4_SET_TX_DESC_ANTSEL_A_NO_CLR(txdesc_ie, value) \
  857. HALMAC_SET_DESC_FIELD_NO_CLR( \
  858. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 20)
  859. #define IE4_GET_TX_DESC_ANTSEL_B(txdesc_ie) \
  860. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  861. 0xf, 16)
  862. #define IE4_SET_TX_DESC_ANTSEL_B(txdesc_ie, value) \
  863. HALMAC_SET_DESC_FIELD_CLR( \
  864. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 16)
  865. #define IE4_SET_TX_DESC_ANTSEL_B_NO_CLR(txdesc_ie, value) \
  866. HALMAC_SET_DESC_FIELD_NO_CLR( \
  867. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 16)
  868. #define IE4_GET_TX_DESC_ANTSEL_C(txdesc_ie) \
  869. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  870. 0xf, 12)
  871. #define IE4_SET_TX_DESC_ANTSEL_C(txdesc_ie, value) \
  872. HALMAC_SET_DESC_FIELD_CLR( \
  873. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 12)
  874. #define IE4_SET_TX_DESC_ANTSEL_C_NO_CLR(txdesc_ie, value) \
  875. HALMAC_SET_DESC_FIELD_NO_CLR( \
  876. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 12)
  877. #define IE4_GET_TX_DESC_ANTSEL_D(txdesc_ie) \
  878. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  879. 0xf, 8)
  880. #define IE4_SET_TX_DESC_ANTSEL_D(txdesc_ie, value) \
  881. HALMAC_SET_DESC_FIELD_CLR( \
  882. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 8)
  883. #define IE4_SET_TX_DESC_ANTSEL_D_NO_CLR(txdesc_ie, value) \
  884. HALMAC_SET_DESC_FIELD_NO_CLR( \
  885. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 8)
  886. #define IE4_GET_TX_DESC_NTX_PATH_EN(txdesc_ie) \
  887. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  888. 0xf, 4)
  889. #define IE4_SET_TX_DESC_NTX_PATH_EN(txdesc_ie, value) \
  890. HALMAC_SET_DESC_FIELD_CLR( \
  891. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 4)
  892. #define IE4_SET_TX_DESC_NTX_PATH_EN_NO_CLR(txdesc_ie, value) \
  893. HALMAC_SET_DESC_FIELD_NO_CLR( \
  894. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0xf, 4)
  895. #define IE4_GET_TX_DESC_ANTLSEL_EN(txdesc_ie) \
  896. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  897. 0x1, 3)
  898. #define IE4_SET_TX_DESC_ANTLSEL_EN(txdesc_ie, value) \
  899. HALMAC_SET_DESC_FIELD_CLR( \
  900. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 3)
  901. #define IE4_SET_TX_DESC_ANTLSEL_EN_NO_CLR(txdesc_ie, value) \
  902. HALMAC_SET_DESC_FIELD_NO_CLR( \
  903. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1, 3)
  904. #define IE4_GET_TX_DESC_TXPWR_OFSET_TYPE(txdesc_ie) \
  905. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  906. 0x3, 0)
  907. #define IE4_SET_TX_DESC_TXPWR_OFSET_TYPE(txdesc_ie, value) \
  908. HALMAC_SET_DESC_FIELD_CLR( \
  909. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 0)
  910. #define IE4_SET_TX_DESC_TXPWR_OFSET_TYPE_NO_CLR(txdesc_ie, value) \
  911. HALMAC_SET_DESC_FIELD_NO_CLR( \
  912. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3, 0)
  913. #define IE5_GET_TX_DESC_IE_END(txdesc_ie) \
  914. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  915. 0x1, 31)
  916. #define IE5_SET_TX_DESC_IE_END(txdesc_ie, value) \
  917. HALMAC_SET_DESC_FIELD_CLR( \
  918. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  919. #define IE5_SET_TX_DESC_IE_END_NO_CLR(txdesc_ie, value) \
  920. HALMAC_SET_DESC_FIELD_NO_CLR( \
  921. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 31)
  922. #define IE5_GET_TX_DESC_IE_UP(txdesc_ie) \
  923. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  924. 0x1, 30)
  925. #define IE5_SET_TX_DESC_IE_UP(txdesc_ie, value) \
  926. HALMAC_SET_DESC_FIELD_CLR( \
  927. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  928. #define IE5_SET_TX_DESC_IE_UP_NO_CLR(txdesc_ie, value) \
  929. HALMAC_SET_DESC_FIELD_NO_CLR( \
  930. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1, 30)
  931. #define IE5_GET_TX_DESC_IE_NUM(txdesc_ie) \
  932. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  933. 0xf, 24)
  934. #define IE5_SET_TX_DESC_IE_NUM(txdesc_ie, value) \
  935. HALMAC_SET_DESC_FIELD_CLR( \
  936. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  937. #define IE5_SET_TX_DESC_IE_NUM_NO_CLR(txdesc_ie, value) \
  938. HALMAC_SET_DESC_FIELD_NO_CLR( \
  939. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 24)
  940. #define IE5_GET_TX_DESC_LEN1_L(txdesc_ie) \
  941. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  942. 0x7f, 17)
  943. #define IE5_SET_TX_DESC_LEN1_L(txdesc_ie, value) \
  944. HALMAC_SET_DESC_FIELD_CLR( \
  945. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7f, 17)
  946. #define IE5_SET_TX_DESC_LEN1_L_NO_CLR(txdesc_ie, value) \
  947. HALMAC_SET_DESC_FIELD_NO_CLR( \
  948. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x7f, 17)
  949. #define IE5_GET_TX_DESC_LEN0(txdesc_ie) \
  950. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  951. 0x1fff, 4)
  952. #define IE5_SET_TX_DESC_LEN0(txdesc_ie, value) \
  953. HALMAC_SET_DESC_FIELD_CLR( \
  954. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1fff, \
  955. 4)
  956. #define IE5_SET_TX_DESC_LEN0_NO_CLR(txdesc_ie, value) \
  957. HALMAC_SET_DESC_FIELD_NO_CLR( \
  958. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0x1fff, \
  959. 4)
  960. #define IE5_GET_TX_DESC_PKT_NUM(txdesc_ie) \
  961. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword0, \
  962. 0xf, 0)
  963. #define IE5_SET_TX_DESC_PKT_NUM(txdesc_ie, value) \
  964. HALMAC_SET_DESC_FIELD_CLR( \
  965. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 0)
  966. #define IE5_SET_TX_DESC_PKT_NUM_NO_CLR(txdesc_ie, value) \
  967. HALMAC_SET_DESC_FIELD_NO_CLR( \
  968. ((struct halmac_tx_desc *)txdesc_ie)->dword0, value, 0xf, 0)
  969. #define IE5_GET_TX_DESC_LEN3(txdesc_ie) \
  970. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  971. 0x1fff, 19)
  972. #define IE5_SET_TX_DESC_LEN3(txdesc_ie, value) \
  973. HALMAC_SET_DESC_FIELD_CLR( \
  974. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1fff, \
  975. 19)
  976. #define IE5_SET_TX_DESC_LEN3_NO_CLR(txdesc_ie, value) \
  977. HALMAC_SET_DESC_FIELD_NO_CLR( \
  978. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1fff, \
  979. 19)
  980. #define IE5_GET_TX_DESC_LEN2(txdesc_ie) \
  981. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  982. 0x1fff, 6)
  983. #define IE5_SET_TX_DESC_LEN2(txdesc_ie, value) \
  984. HALMAC_SET_DESC_FIELD_CLR( \
  985. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1fff, \
  986. 6)
  987. #define IE5_SET_TX_DESC_LEN2_NO_CLR(txdesc_ie, value) \
  988. HALMAC_SET_DESC_FIELD_NO_CLR( \
  989. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x1fff, \
  990. 6)
  991. #define IE5_GET_TX_DESC_LEN1_H(txdesc_ie) \
  992. HALMAC_GET_DESC_FIELD(((struct halmac_tx_desc *)txdesc_ie)->dword1, \
  993. 0x3f, 0)
  994. #define IE5_SET_TX_DESC_LEN1_H(txdesc_ie, value) \
  995. HALMAC_SET_DESC_FIELD_CLR( \
  996. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 0)
  997. #define IE5_SET_TX_DESC_LEN1_H_NO_CLR(txdesc_ie, value) \
  998. HALMAC_SET_DESC_FIELD_NO_CLR( \
  999. ((struct halmac_tx_desc *)txdesc_ie)->dword1, value, 0x3f, 0)
  1000. #endif
  1001. #endif