halmac_original_h2c_nic.h 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143
  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 _HAL_ORIGINALH2CFORMAT_H2C_C2H_NIC_H_
  16. #define _HAL_ORIGINALH2CFORMAT_H2C_C2H_NIC_H_
  17. #define CMD_ID_ORIGINAL_H2C 0X00
  18. #define CMD_ID_H2C2H_LB 0X0
  19. #define CMD_ID_D0_SCAN_OFFLOAD_CTRL 0X06
  20. #define CMD_ID_RSVD_PAGE 0X0
  21. #define CMD_ID_MEDIA_STATUS_RPT 0X01
  22. #define CMD_ID_KEEP_ALIVE 0X03
  23. #define CMD_ID_DISCONNECT_DECISION 0X04
  24. #define CMD_ID_AP_OFFLOAD 0X08
  25. #define CMD_ID_BCN_RSVDPAGE 0X09
  26. #define CMD_ID_PROBE_RSP_RSVDPAGE 0X0A
  27. #define CMD_ID_SINGLE_CHANNELSWITCH 0X1C
  28. #define CMD_ID_SINGLE_CHANNELSWITCH_V2 0X1D
  29. #define CMD_ID_SET_PWR_MODE 0X00
  30. #define CMD_ID_PS_TUNING_PARA 0X01
  31. #define CMD_ID_PS_TUNING_PARA_II 0X02
  32. #define CMD_ID_PS_LPS_PARA 0X03
  33. #define CMD_ID_P2P_PS_OFFLOAD 0X04
  34. #define CMD_ID_PS_SCAN_EN 0X05
  35. #define CMD_ID_SAP_PS 0X06
  36. #define CMD_ID_INACTIVE_PS 0X07
  37. #define CMD_ID_MACID_CFG 0X00
  38. #define CMD_ID_TXBF 0X01
  39. #define CMD_ID_RSSI_SETTING 0X02
  40. #define CMD_ID_AP_REQ_TXRPT 0X03
  41. #define CMD_ID_INIT_RATE_COLLECTION 0X04
  42. #define CMD_ID_IQK_OFFLOAD 0X05
  43. #define CMD_ID_MACID_CFG_3SS 0X06
  44. #define CMD_ID_RA_PARA_ADJUST 0X07
  45. #define CMD_ID_WWLAN 0X00
  46. #define CMD_ID_REMOTE_WAKE_CTRL 0X01
  47. #define CMD_ID_AOAC_GLOBAL_INFO 0X02
  48. #define CMD_ID_AOAC_RSVD_PAGE 0X03
  49. #define CMD_ID_AOAC_RSVD_PAGE2 0X04
  50. #define CMD_ID_D0_SCAN_OFFLOAD_INFO 0X05
  51. #define CMD_ID_CHANNEL_SWITCH_OFFLOAD 0X07
  52. #define CMD_ID_AOAC_RSVD_PAGE3 0X08
  53. #define CMD_ID_DBG_MSG_CTRL 0X1E
  54. #define CLASS_ORIGINAL_H2C 0X00
  55. #define CLASS_H2C2H_LB 0X07
  56. #define CLASS_D0_SCAN_OFFLOAD_CTRL 0X04
  57. #define CLASS_RSVD_PAGE 0X0
  58. #define CLASS_MEDIA_STATUS_RPT 0X0
  59. #define CLASS_KEEP_ALIVE 0X0
  60. #define CLASS_DISCONNECT_DECISION 0X0
  61. #define CLASS_AP_OFFLOAD 0X0
  62. #define CLASS_BCN_RSVDPAGE 0X0
  63. #define CLASS_PROBE_RSP_RSVDPAGE 0X0
  64. #define CLASS_SINGLE_CHANNELSWITCH 0X0
  65. #define CLASS_SINGLE_CHANNELSWITCH_V2 0X0
  66. #define CLASS_SET_PWR_MODE 0X01
  67. #define CLASS_PS_TUNING_PARA 0X01
  68. #define CLASS_PS_TUNING_PARA_II 0X01
  69. #define CLASS_PS_LPS_PARA 0X01
  70. #define CLASS_P2P_PS_OFFLOAD 0X01
  71. #define CLASS_PS_SCAN_EN 0X1
  72. #define CLASS_SAP_PS 0X1
  73. #define CLASS_INACTIVE_PS 0X1
  74. #define CLASS_MACID_CFG 0X2
  75. #define CLASS_TXBF 0X2
  76. #define CLASS_RSSI_SETTING 0X2
  77. #define CLASS_AP_REQ_TXRPT 0X2
  78. #define CLASS_INIT_RATE_COLLECTION 0X2
  79. #define CLASS_IQK_OFFLOAD 0X2
  80. #define CLASS_MACID_CFG_3SS 0X2
  81. #define CLASS_RA_PARA_ADJUST 0X02
  82. #define CLASS_WWLAN 0X4
  83. #define CLASS_REMOTE_WAKE_CTRL 0X4
  84. #define CLASS_AOAC_GLOBAL_INFO 0X04
  85. #define CLASS_AOAC_RSVD_PAGE 0X04
  86. #define CLASS_AOAC_RSVD_PAGE2 0X04
  87. #define CLASS_D0_SCAN_OFFLOAD_INFO 0X04
  88. #define CLASS_CHANNEL_SWITCH_OFFLOAD 0X04
  89. #define CLASS_AOAC_RSVD_PAGE3 0X04
  90. #define CLASS_DBG_MSG_CTRL 0X07
  91. #define ORIGINAL_H2C_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  92. #define ORIGINAL_H2C_SET_CMD_ID(h2c_pkt, value) \
  93. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  94. #define ORIGINAL_H2C_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  95. #define ORIGINAL_H2C_SET_CLASS(h2c_pkt, value) \
  96. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  97. #define H2C2H_LB_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  98. #define H2C2H_LB_SET_CMD_ID(h2c_pkt, value) \
  99. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  100. #define H2C2H_LB_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  101. #define H2C2H_LB_SET_CLASS(h2c_pkt, value) \
  102. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  103. #define H2C2H_LB_GET_SEQ(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  104. #define H2C2H_LB_SET_SEQ(h2c_pkt, value) \
  105. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  106. #define H2C2H_LB_GET_PAYLOAD1(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 16)
  107. #define H2C2H_LB_SET_PAYLOAD1(h2c_pkt, value) \
  108. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 16, value)
  109. #define H2C2H_LB_GET_PAYLOAD2(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 32)
  110. #define H2C2H_LB_SET_PAYLOAD2(h2c_pkt, value) \
  111. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 32, value)
  112. #define D0_SCAN_OFFLOAD_CTRL_GET_CMD_ID(h2c_pkt) \
  113. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  114. #define D0_SCAN_OFFLOAD_CTRL_SET_CMD_ID(h2c_pkt, value) \
  115. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  116. #define D0_SCAN_OFFLOAD_CTRL_GET_CLASS(h2c_pkt) \
  117. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  118. #define D0_SCAN_OFFLOAD_CTRL_SET_CLASS(h2c_pkt, value) \
  119. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  120. #define D0_SCAN_OFFLOAD_CTRL_GET_D0_SCAN_FUN_EN(h2c_pkt) \
  121. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  122. #define D0_SCAN_OFFLOAD_CTRL_SET_D0_SCAN_FUN_EN(h2c_pkt, value) \
  123. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  124. #define D0_SCAN_OFFLOAD_CTRL_GET_RTD3FUN_EN(h2c_pkt) \
  125. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  126. #define D0_SCAN_OFFLOAD_CTRL_SET_RTD3FUN_EN(h2c_pkt, value) \
  127. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  128. #define D0_SCAN_OFFLOAD_CTRL_GET_U3_SCAN_FUN_EN(h2c_pkt) \
  129. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  130. #define D0_SCAN_OFFLOAD_CTRL_SET_U3_SCAN_FUN_EN(h2c_pkt, value) \
  131. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  132. #define D0_SCAN_OFFLOAD_CTRL_GET_NLO_FUN_EN(h2c_pkt) \
  133. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  134. #define D0_SCAN_OFFLOAD_CTRL_SET_NLO_FUN_EN(h2c_pkt, value) \
  135. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  136. #define D0_SCAN_OFFLOAD_CTRL_GET_IPS_DEPENDENT(h2c_pkt) \
  137. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 1)
  138. #define D0_SCAN_OFFLOAD_CTRL_SET_IPS_DEPENDENT(h2c_pkt, value) \
  139. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 1, value)
  140. #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_PROBE_PACKET(h2c_pkt) \
  141. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 17)
  142. #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_PROBE_PACKET(h2c_pkt, value) \
  143. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 17, value)
  144. #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SCAN_INFO(h2c_pkt) \
  145. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  146. #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SCAN_INFO(h2c_pkt, value) \
  147. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  148. #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SSID_INFO(h2c_pkt) \
  149. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  150. #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SSID_INFO(h2c_pkt, value) \
  151. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  152. #define RSVD_PAGE_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  153. #define RSVD_PAGE_SET_CMD_ID(h2c_pkt, value) \
  154. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  155. #define RSVD_PAGE_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  156. #define RSVD_PAGE_SET_CLASS(h2c_pkt, value) \
  157. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  158. #define RSVD_PAGE_GET_LOC_PROBE_RSP(h2c_pkt) \
  159. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  160. #define RSVD_PAGE_SET_LOC_PROBE_RSP(h2c_pkt, value) \
  161. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  162. #define RSVD_PAGE_GET_LOC_PS_POLL(h2c_pkt) \
  163. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  164. #define RSVD_PAGE_SET_LOC_PS_POLL(h2c_pkt, value) \
  165. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  166. #define RSVD_PAGE_GET_LOC_NULL_DATA(h2c_pkt) \
  167. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  168. #define RSVD_PAGE_SET_LOC_NULL_DATA(h2c_pkt, value) \
  169. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  170. #define RSVD_PAGE_GET_LOC_QOS_NULL(h2c_pkt) \
  171. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  172. #define RSVD_PAGE_SET_LOC_QOS_NULL(h2c_pkt, value) \
  173. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  174. #define RSVD_PAGE_GET_LOC_BT_QOS_NULL(h2c_pkt) \
  175. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  176. #define RSVD_PAGE_SET_LOC_BT_QOS_NULL(h2c_pkt, value) \
  177. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  178. #define RSVD_PAGE_GET_LOC_CTS2SELF(h2c_pkt) \
  179. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  180. #define RSVD_PAGE_SET_LOC_CTS2SELF(h2c_pkt, value) \
  181. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  182. #define RSVD_PAGE_GET_LOC_LTECOEX_QOSNULL(h2c_pkt) \
  183. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  184. #define RSVD_PAGE_SET_LOC_LTECOEX_QOSNULL(h2c_pkt, value) \
  185. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  186. #define MEDIA_STATUS_RPT_GET_CMD_ID(h2c_pkt) \
  187. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  188. #define MEDIA_STATUS_RPT_SET_CMD_ID(h2c_pkt, value) \
  189. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  190. #define MEDIA_STATUS_RPT_GET_CLASS(h2c_pkt) \
  191. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  192. #define MEDIA_STATUS_RPT_SET_CLASS(h2c_pkt, value) \
  193. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  194. #define MEDIA_STATUS_RPT_GET_OP_MODE(h2c_pkt) \
  195. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  196. #define MEDIA_STATUS_RPT_SET_OP_MODE(h2c_pkt, value) \
  197. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  198. #define MEDIA_STATUS_RPT_GET_MACID_IN(h2c_pkt) \
  199. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  200. #define MEDIA_STATUS_RPT_SET_MACID_IN(h2c_pkt, value) \
  201. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  202. #define MEDIA_STATUS_RPT_GET_MACID(h2c_pkt) \
  203. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  204. #define MEDIA_STATUS_RPT_SET_MACID(h2c_pkt, value) \
  205. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  206. #define MEDIA_STATUS_RPT_GET_MACID_END(h2c_pkt) \
  207. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  208. #define MEDIA_STATUS_RPT_SET_MACID_END(h2c_pkt, value) \
  209. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  210. #define KEEP_ALIVE_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  211. #define KEEP_ALIVE_SET_CMD_ID(h2c_pkt, value) \
  212. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  213. #define KEEP_ALIVE_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  214. #define KEEP_ALIVE_SET_CLASS(h2c_pkt, value) \
  215. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  216. #define KEEP_ALIVE_GET_ENABLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  217. #define KEEP_ALIVE_SET_ENABLE(h2c_pkt, value) \
  218. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  219. #define KEEP_ALIVE_GET_ADOPT_USER_SETTING(h2c_pkt) \
  220. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  221. #define KEEP_ALIVE_SET_ADOPT_USER_SETTING(h2c_pkt, value) \
  222. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  223. #define KEEP_ALIVE_GET_PKT_TYPE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  224. #define KEEP_ALIVE_SET_PKT_TYPE(h2c_pkt, value) \
  225. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  226. #define KEEP_ALIVE_GET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt) \
  227. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  228. #define KEEP_ALIVE_SET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt, value) \
  229. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  230. #define DISCONNECT_DECISION_GET_CMD_ID(h2c_pkt) \
  231. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  232. #define DISCONNECT_DECISION_SET_CMD_ID(h2c_pkt, value) \
  233. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  234. #define DISCONNECT_DECISION_GET_CLASS(h2c_pkt) \
  235. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  236. #define DISCONNECT_DECISION_SET_CLASS(h2c_pkt, value) \
  237. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  238. #define DISCONNECT_DECISION_GET_ENABLE(h2c_pkt) \
  239. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  240. #define DISCONNECT_DECISION_SET_ENABLE(h2c_pkt, value) \
  241. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  242. #define DISCONNECT_DECISION_GET_ADOPT_USER_SETTING(h2c_pkt) \
  243. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  244. #define DISCONNECT_DECISION_SET_ADOPT_USER_SETTING(h2c_pkt, value) \
  245. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  246. #define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_EN(h2c_pkt) \
  247. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  248. #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_EN(h2c_pkt, value) \
  249. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  250. #define DISCONNECT_DECISION_GET_DISCONNECT_EN(h2c_pkt) \
  251. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  252. #define DISCONNECT_DECISION_SET_DISCONNECT_EN(h2c_pkt, value) \
  253. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  254. #define DISCONNECT_DECISION_GET_DISCON_DECISION_CHECK_PERIOD(h2c_pkt) \
  255. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  256. #define DISCONNECT_DECISION_SET_DISCON_DECISION_CHECK_PERIOD(h2c_pkt, value) \
  257. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  258. #define DISCONNECT_DECISION_GET_TRY_PKT_NUM(h2c_pkt) \
  259. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  260. #define DISCONNECT_DECISION_SET_TRY_PKT_NUM(h2c_pkt, value) \
  261. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  262. #define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_LIMIT(h2c_pkt) \
  263. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  264. #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_LIMIT(h2c_pkt, value) \
  265. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  266. #define AP_OFFLOAD_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  267. #define AP_OFFLOAD_SET_CMD_ID(h2c_pkt, value) \
  268. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  269. #define AP_OFFLOAD_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  270. #define AP_OFFLOAD_SET_CLASS(h2c_pkt, value) \
  271. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  272. #define AP_OFFLOAD_GET_ON(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  273. #define AP_OFFLOAD_SET_ON(h2c_pkt, value) \
  274. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  275. #define AP_OFFLOAD_GET_CFG_MIFI_PLATFORM(h2c_pkt) \
  276. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  277. #define AP_OFFLOAD_SET_CFG_MIFI_PLATFORM(h2c_pkt, value) \
  278. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  279. #define AP_OFFLOAD_GET_LINKED(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  280. #define AP_OFFLOAD_SET_LINKED(h2c_pkt, value) \
  281. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  282. #define AP_OFFLOAD_GET_EN_AUTO_WAKE(h2c_pkt) \
  283. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  284. #define AP_OFFLOAD_SET_EN_AUTO_WAKE(h2c_pkt, value) \
  285. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  286. #define AP_OFFLOAD_GET_WAKE_FLAG(h2c_pkt) \
  287. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 1)
  288. #define AP_OFFLOAD_SET_WAKE_FLAG(h2c_pkt, value) \
  289. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 1, value)
  290. #define AP_OFFLOAD_GET_HIDDEN_ROOT(h2c_pkt) \
  291. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 1)
  292. #define AP_OFFLOAD_SET_HIDDEN_ROOT(h2c_pkt, value) \
  293. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 1, value)
  294. #define AP_OFFLOAD_GET_HIDDEN_VAP1(h2c_pkt) \
  295. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 17, 1)
  296. #define AP_OFFLOAD_SET_HIDDEN_VAP1(h2c_pkt, value) \
  297. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 17, 1, value)
  298. #define AP_OFFLOAD_GET_HIDDEN_VAP2(h2c_pkt) \
  299. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 18, 1)
  300. #define AP_OFFLOAD_SET_HIDDEN_VAP2(h2c_pkt, value) \
  301. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 18, 1, value)
  302. #define AP_OFFLOAD_GET_HIDDEN_VAP3(h2c_pkt) \
  303. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 19, 1)
  304. #define AP_OFFLOAD_SET_HIDDEN_VAP3(h2c_pkt, value) \
  305. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 19, 1, value)
  306. #define AP_OFFLOAD_GET_HIDDEN_VAP4(h2c_pkt) \
  307. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 20, 1)
  308. #define AP_OFFLOAD_SET_HIDDEN_VAP4(h2c_pkt, value) \
  309. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 20, 1, value)
  310. #define AP_OFFLOAD_GET_DENYANY_ROOT(h2c_pkt) \
  311. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 1)
  312. #define AP_OFFLOAD_SET_DENYANY_ROOT(h2c_pkt, value) \
  313. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 1, value)
  314. #define AP_OFFLOAD_GET_DENYANY_VAP1(h2c_pkt) \
  315. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 25, 1)
  316. #define AP_OFFLOAD_SET_DENYANY_VAP1(h2c_pkt, value) \
  317. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 25, 1, value)
  318. #define AP_OFFLOAD_GET_DENYANY_VAP2(h2c_pkt) \
  319. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 26, 1)
  320. #define AP_OFFLOAD_SET_DENYANY_VAP2(h2c_pkt, value) \
  321. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 26, 1, value)
  322. #define AP_OFFLOAD_GET_DENYANY_VAP3(h2c_pkt) \
  323. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 27, 1)
  324. #define AP_OFFLOAD_SET_DENYANY_VAP3(h2c_pkt, value) \
  325. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 27, 1, value)
  326. #define AP_OFFLOAD_GET_DENYANY_VAP4(h2c_pkt) \
  327. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 28, 1)
  328. #define AP_OFFLOAD_SET_DENYANY_VAP4(h2c_pkt, value) \
  329. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 28, 1, value)
  330. #define AP_OFFLOAD_GET_WAIT_TBTT_CNT(h2c_pkt) \
  331. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  332. #define AP_OFFLOAD_SET_WAIT_TBTT_CNT(h2c_pkt, value) \
  333. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  334. #define AP_OFFLOAD_GET_WAKE_TIMEOUT(h2c_pkt) \
  335. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  336. #define AP_OFFLOAD_SET_WAKE_TIMEOUT(h2c_pkt, value) \
  337. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  338. #define AP_OFFLOAD_GET_LEN_IV_PAIR(h2c_pkt) \
  339. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  340. #define AP_OFFLOAD_SET_LEN_IV_PAIR(h2c_pkt, value) \
  341. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  342. #define AP_OFFLOAD_GET_LEN_IV_GRP(h2c_pkt) \
  343. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  344. #define AP_OFFLOAD_SET_LEN_IV_GRP(h2c_pkt, value) \
  345. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  346. #define BCN_RSVDPAGE_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  347. #define BCN_RSVDPAGE_SET_CMD_ID(h2c_pkt, value) \
  348. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  349. #define BCN_RSVDPAGE_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  350. #define BCN_RSVDPAGE_SET_CLASS(h2c_pkt, value) \
  351. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  352. #define BCN_RSVDPAGE_GET_LOC_ROOT(h2c_pkt) \
  353. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  354. #define BCN_RSVDPAGE_SET_LOC_ROOT(h2c_pkt, value) \
  355. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  356. #define BCN_RSVDPAGE_GET_LOC_VAP1(h2c_pkt) \
  357. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  358. #define BCN_RSVDPAGE_SET_LOC_VAP1(h2c_pkt, value) \
  359. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  360. #define BCN_RSVDPAGE_GET_LOC_VAP2(h2c_pkt) \
  361. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  362. #define BCN_RSVDPAGE_SET_LOC_VAP2(h2c_pkt, value) \
  363. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  364. #define BCN_RSVDPAGE_GET_LOC_VAP3(h2c_pkt) \
  365. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  366. #define BCN_RSVDPAGE_SET_LOC_VAP3(h2c_pkt, value) \
  367. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  368. #define BCN_RSVDPAGE_GET_LOC_VAP4(h2c_pkt) \
  369. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  370. #define BCN_RSVDPAGE_SET_LOC_VAP4(h2c_pkt, value) \
  371. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  372. #define PROBE_RSP_RSVDPAGE_GET_CMD_ID(h2c_pkt) \
  373. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  374. #define PROBE_RSP_RSVDPAGE_SET_CMD_ID(h2c_pkt, value) \
  375. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  376. #define PROBE_RSP_RSVDPAGE_GET_CLASS(h2c_pkt) \
  377. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  378. #define PROBE_RSP_RSVDPAGE_SET_CLASS(h2c_pkt, value) \
  379. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  380. #define PROBE_RSP_RSVDPAGE_GET_LOC_ROOT(h2c_pkt) \
  381. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  382. #define PROBE_RSP_RSVDPAGE_SET_LOC_ROOT(h2c_pkt, value) \
  383. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  384. #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP1(h2c_pkt) \
  385. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  386. #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP1(h2c_pkt, value) \
  387. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  388. #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP2(h2c_pkt) \
  389. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  390. #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP2(h2c_pkt, value) \
  391. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  392. #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP3(h2c_pkt) \
  393. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  394. #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP3(h2c_pkt, value) \
  395. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  396. #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP4(h2c_pkt) \
  397. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  398. #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP4(h2c_pkt, value) \
  399. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  400. #define SINGLE_CHANNELSWITCH_GET_CMD_ID(h2c_pkt) \
  401. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  402. #define SINGLE_CHANNELSWITCH_SET_CMD_ID(h2c_pkt, value) \
  403. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  404. #define SINGLE_CHANNELSWITCH_GET_CLASS(h2c_pkt) \
  405. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  406. #define SINGLE_CHANNELSWITCH_SET_CLASS(h2c_pkt, value) \
  407. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  408. #define SINGLE_CHANNELSWITCH_GET_CHANNEL_NUM(h2c_pkt) \
  409. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  410. #define SINGLE_CHANNELSWITCH_SET_CHANNEL_NUM(h2c_pkt, value) \
  411. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  412. #define SINGLE_CHANNELSWITCH_GET_BW(h2c_pkt) \
  413. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 2)
  414. #define SINGLE_CHANNELSWITCH_SET_BW(h2c_pkt, value) \
  415. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 2, value)
  416. #define SINGLE_CHANNELSWITCH_GET_BW40SC(h2c_pkt) \
  417. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 18, 3)
  418. #define SINGLE_CHANNELSWITCH_SET_BW40SC(h2c_pkt, value) \
  419. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 18, 3, value)
  420. #define SINGLE_CHANNELSWITCH_GET_BW80SC(h2c_pkt) \
  421. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 21, 3)
  422. #define SINGLE_CHANNELSWITCH_SET_BW80SC(h2c_pkt, value) \
  423. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 21, 3, value)
  424. #define SINGLE_CHANNELSWITCH_GET_RFE_TYPE(h2c_pkt) \
  425. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 4)
  426. #define SINGLE_CHANNELSWITCH_SET_RFE_TYPE(h2c_pkt, value) \
  427. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 4, value)
  428. #define SINGLE_CHANNELSWITCH_V2_GET_CMD_ID(h2c_pkt) \
  429. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  430. #define SINGLE_CHANNELSWITCH_V2_SET_CMD_ID(h2c_pkt, value) \
  431. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  432. #define SINGLE_CHANNELSWITCH_V2_GET_CLASS(h2c_pkt) \
  433. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  434. #define SINGLE_CHANNELSWITCH_V2_SET_CLASS(h2c_pkt, value) \
  435. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  436. #define SINGLE_CHANNELSWITCH_V2_GET_CENTRAL_CH(h2c_pkt) \
  437. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  438. #define SINGLE_CHANNELSWITCH_V2_SET_CENTRAL_CH(h2c_pkt, value) \
  439. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  440. #define SINGLE_CHANNELSWITCH_V2_GET_PRIMARY_CH_IDX(h2c_pkt) \
  441. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 4)
  442. #define SINGLE_CHANNELSWITCH_V2_SET_PRIMARY_CH_IDX(h2c_pkt, value) \
  443. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 4, value)
  444. #define SINGLE_CHANNELSWITCH_V2_GET_BW(h2c_pkt) \
  445. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 20, 4)
  446. #define SINGLE_CHANNELSWITCH_V2_SET_BW(h2c_pkt, value) \
  447. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 20, 4, value)
  448. #define SET_PWR_MODE_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  449. #define SET_PWR_MODE_SET_CMD_ID(h2c_pkt, value) \
  450. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  451. #define SET_PWR_MODE_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  452. #define SET_PWR_MODE_SET_CLASS(h2c_pkt, value) \
  453. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  454. #define SET_PWR_MODE_GET_MODE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 7)
  455. #define SET_PWR_MODE_SET_MODE(h2c_pkt, value) \
  456. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 7, value)
  457. #define SET_PWR_MODE_GET_CLK_REQUEST(h2c_pkt) \
  458. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 15, 1)
  459. #define SET_PWR_MODE_SET_CLK_REQUEST(h2c_pkt, value) \
  460. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 15, 1, value)
  461. #define SET_PWR_MODE_GET_RLBM(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 4)
  462. #define SET_PWR_MODE_SET_RLBM(h2c_pkt, value) \
  463. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 4, value)
  464. #define SET_PWR_MODE_GET_SMART_PS(h2c_pkt) \
  465. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 20, 4)
  466. #define SET_PWR_MODE_SET_SMART_PS(h2c_pkt, value) \
  467. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 20, 4, value)
  468. #define SET_PWR_MODE_GET_AWAKE_INTERVAL(h2c_pkt) \
  469. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  470. #define SET_PWR_MODE_SET_AWAKE_INTERVAL(h2c_pkt, value) \
  471. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  472. #define SET_PWR_MODE_GET_B_ALL_QUEUE_UAPSD(h2c_pkt) \
  473. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 1)
  474. #define SET_PWR_MODE_SET_B_ALL_QUEUE_UAPSD(h2c_pkt, value) \
  475. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 1, value)
  476. #define SET_PWR_MODE_GET_BCN_EARLY_RPT(h2c_pkt) \
  477. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 2, 1)
  478. #define SET_PWR_MODE_SET_BCN_EARLY_RPT(h2c_pkt, value) \
  479. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 2, 1, value)
  480. #define SET_PWR_MODE_GET_PORT_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 5, 3)
  481. #define SET_PWR_MODE_SET_PORT_ID(h2c_pkt, value) \
  482. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 5, 3, value)
  483. #define SET_PWR_MODE_GET_PWR_STATE(h2c_pkt) \
  484. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  485. #define SET_PWR_MODE_SET_PWR_STATE(h2c_pkt, value) \
  486. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  487. #define SET_PWR_MODE_GET_LOW_POWER_RX_BCN(h2c_pkt) \
  488. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 1)
  489. #define SET_PWR_MODE_SET_LOW_POWER_RX_BCN(h2c_pkt, value) \
  490. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 1, value)
  491. #define SET_PWR_MODE_GET_ANT_AUTO_SWITCH(h2c_pkt) \
  492. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 17, 1)
  493. #define SET_PWR_MODE_SET_ANT_AUTO_SWITCH(h2c_pkt, value) \
  494. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 17, 1, value)
  495. #define SET_PWR_MODE_GET_PS_ALLOW_BT_HIGH_PRIORITY(h2c_pkt) \
  496. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 18, 1)
  497. #define SET_PWR_MODE_SET_PS_ALLOW_BT_HIGH_PRIORITY(h2c_pkt, value) \
  498. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 18, 1, value)
  499. #define SET_PWR_MODE_GET_PROTECT_BCN(h2c_pkt) \
  500. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 19, 1)
  501. #define SET_PWR_MODE_SET_PROTECT_BCN(h2c_pkt, value) \
  502. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 19, 1, value)
  503. #define SET_PWR_MODE_GET_SILENCE_PERIOD(h2c_pkt) \
  504. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 20, 1)
  505. #define SET_PWR_MODE_SET_SILENCE_PERIOD(h2c_pkt, value) \
  506. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 20, 1, value)
  507. #define SET_PWR_MODE_GET_FAST_BT_CONNECT(h2c_pkt) \
  508. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 21, 1)
  509. #define SET_PWR_MODE_SET_FAST_BT_CONNECT(h2c_pkt, value) \
  510. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 21, 1, value)
  511. #define SET_PWR_MODE_GET_TWO_ANTENNA_EN(h2c_pkt) \
  512. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 22, 1)
  513. #define SET_PWR_MODE_SET_TWO_ANTENNA_EN(h2c_pkt, value) \
  514. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 22, 1, value)
  515. #define SET_PWR_MODE_GET_ADOPT_USER_SETTING(h2c_pkt) \
  516. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 1)
  517. #define SET_PWR_MODE_SET_ADOPT_USER_SETTING(h2c_pkt, value) \
  518. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 1, value)
  519. #define SET_PWR_MODE_GET_DRV_BCN_EARLY_SHIFT(h2c_pkt) \
  520. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 25, 3)
  521. #define SET_PWR_MODE_SET_DRV_BCN_EARLY_SHIFT(h2c_pkt, value) \
  522. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 25, 3, value)
  523. #define SET_PWR_MODE_GET_DRV_BCN_EARLY_SHIFT2(h2c_pkt) \
  524. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 28, 4)
  525. #define SET_PWR_MODE_SET_DRV_BCN_EARLY_SHIFT2(h2c_pkt, value) \
  526. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 28, 4, value)
  527. #define PS_TUNING_PARA_GET_CMD_ID(h2c_pkt) \
  528. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  529. #define PS_TUNING_PARA_SET_CMD_ID(h2c_pkt, value) \
  530. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  531. #define PS_TUNING_PARA_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  532. #define PS_TUNING_PARA_SET_CLASS(h2c_pkt, value) \
  533. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  534. #define PS_TUNING_PARA_GET_BCN_TO_LIMIT(h2c_pkt) \
  535. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 7)
  536. #define PS_TUNING_PARA_SET_BCN_TO_LIMIT(h2c_pkt, value) \
  537. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 7, value)
  538. #define PS_TUNING_PARA_GET_DTIM_TIME_OUT(h2c_pkt) \
  539. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 15, 1)
  540. #define PS_TUNING_PARA_SET_DTIM_TIME_OUT(h2c_pkt, value) \
  541. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 15, 1, value)
  542. #define PS_TUNING_PARA_GET_PS_TIME_OUT(h2c_pkt) \
  543. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 4)
  544. #define PS_TUNING_PARA_SET_PS_TIME_OUT(h2c_pkt, value) \
  545. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 4, value)
  546. #define PS_TUNING_PARA_GET_ADOPT(h2c_pkt) \
  547. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  548. #define PS_TUNING_PARA_SET_ADOPT(h2c_pkt, value) \
  549. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  550. #define PS_TUNING_PARA_II_GET_CMD_ID(h2c_pkt) \
  551. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  552. #define PS_TUNING_PARA_II_SET_CMD_ID(h2c_pkt, value) \
  553. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  554. #define PS_TUNING_PARA_II_GET_CLASS(h2c_pkt) \
  555. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  556. #define PS_TUNING_PARA_II_SET_CLASS(h2c_pkt, value) \
  557. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  558. #define PS_TUNING_PARA_II_GET_BCN_TO_PERIOD(h2c_pkt) \
  559. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 7)
  560. #define PS_TUNING_PARA_II_SET_BCN_TO_PERIOD(h2c_pkt, value) \
  561. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 7, value)
  562. #define PS_TUNING_PARA_II_GET_ADOPT(h2c_pkt) \
  563. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 15, 1)
  564. #define PS_TUNING_PARA_II_SET_ADOPT(h2c_pkt, value) \
  565. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 15, 1, value)
  566. #define PS_TUNING_PARA_II_GET_DRV_EARLY_IVL(h2c_pkt) \
  567. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  568. #define PS_TUNING_PARA_II_SET_DRV_EARLY_IVL(h2c_pkt, value) \
  569. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  570. #define PS_LPS_PARA_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  571. #define PS_LPS_PARA_SET_CMD_ID(h2c_pkt, value) \
  572. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  573. #define PS_LPS_PARA_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  574. #define PS_LPS_PARA_SET_CLASS(h2c_pkt, value) \
  575. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  576. #define PS_LPS_PARA_GET_LPS_CONTROL(h2c_pkt) \
  577. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  578. #define PS_LPS_PARA_SET_LPS_CONTROL(h2c_pkt, value) \
  579. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  580. #define P2P_PS_OFFLOAD_GET_CMD_ID(h2c_pkt) \
  581. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  582. #define P2P_PS_OFFLOAD_SET_CMD_ID(h2c_pkt, value) \
  583. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  584. #define P2P_PS_OFFLOAD_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  585. #define P2P_PS_OFFLOAD_SET_CLASS(h2c_pkt, value) \
  586. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  587. #define P2P_PS_OFFLOAD_GET_OFFLOAD_EN(h2c_pkt) \
  588. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  589. #define P2P_PS_OFFLOAD_SET_OFFLOAD_EN(h2c_pkt, value) \
  590. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  591. #define P2P_PS_OFFLOAD_GET_ROLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  592. #define P2P_PS_OFFLOAD_SET_ROLE(h2c_pkt, value) \
  593. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  594. #define P2P_PS_OFFLOAD_GET_CTWINDOW_EN(h2c_pkt) \
  595. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  596. #define P2P_PS_OFFLOAD_SET_CTWINDOW_EN(h2c_pkt, value) \
  597. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  598. #define P2P_PS_OFFLOAD_GET_NOA0_EN(h2c_pkt) \
  599. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  600. #define P2P_PS_OFFLOAD_SET_NOA0_EN(h2c_pkt, value) \
  601. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  602. #define P2P_PS_OFFLOAD_GET_NOA1_EN(h2c_pkt) \
  603. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 1)
  604. #define P2P_PS_OFFLOAD_SET_NOA1_EN(h2c_pkt, value) \
  605. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 1, value)
  606. #define P2P_PS_OFFLOAD_GET_ALL_STA_SLEEP(h2c_pkt) \
  607. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 13, 1)
  608. #define P2P_PS_OFFLOAD_SET_ALL_STA_SLEEP(h2c_pkt, value) \
  609. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 13, 1, value)
  610. #define P2P_PS_OFFLOAD_GET_DISCOVERY(h2c_pkt) \
  611. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 14, 1)
  612. #define P2P_PS_OFFLOAD_SET_DISCOVERY(h2c_pkt, value) \
  613. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 14, 1, value)
  614. #define PS_SCAN_EN_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  615. #define PS_SCAN_EN_SET_CMD_ID(h2c_pkt, value) \
  616. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  617. #define PS_SCAN_EN_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  618. #define PS_SCAN_EN_SET_CLASS(h2c_pkt, value) \
  619. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  620. #define PS_SCAN_EN_GET_ENABLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  621. #define PS_SCAN_EN_SET_ENABLE(h2c_pkt, value) \
  622. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  623. #define SAP_PS_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  624. #define SAP_PS_SET_CMD_ID(h2c_pkt, value) \
  625. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  626. #define SAP_PS_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  627. #define SAP_PS_SET_CLASS(h2c_pkt, value) \
  628. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  629. #define SAP_PS_GET_ENABLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  630. #define SAP_PS_SET_ENABLE(h2c_pkt, value) \
  631. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  632. #define SAP_PS_GET_EN_PS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  633. #define SAP_PS_SET_EN_PS(h2c_pkt, value) \
  634. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  635. #define SAP_PS_GET_EN_LP_RX(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  636. #define SAP_PS_SET_EN_LP_RX(h2c_pkt, value) \
  637. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  638. #define SAP_PS_GET_MANUAL_32K(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  639. #define SAP_PS_SET_MANUAL_32K(h2c_pkt, value) \
  640. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  641. #define SAP_PS_GET_DURATION(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  642. #define SAP_PS_SET_DURATION(h2c_pkt, value) \
  643. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  644. #define INACTIVE_PS_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  645. #define INACTIVE_PS_SET_CMD_ID(h2c_pkt, value) \
  646. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  647. #define INACTIVE_PS_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  648. #define INACTIVE_PS_SET_CLASS(h2c_pkt, value) \
  649. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  650. #define INACTIVE_PS_GET_ENABLE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  651. #define INACTIVE_PS_SET_ENABLE(h2c_pkt, value) \
  652. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  653. #define INACTIVE_PS_GET_IGNORE_PS_CONDITION(h2c_pkt) \
  654. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  655. #define INACTIVE_PS_SET_IGNORE_PS_CONDITION(h2c_pkt, value) \
  656. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  657. #define INACTIVE_PS_GET_FREQUENCY(h2c_pkt) \
  658. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  659. #define INACTIVE_PS_SET_FREQUENCY(h2c_pkt, value) \
  660. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  661. #define INACTIVE_PS_GET_DURATION(h2c_pkt) \
  662. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  663. #define INACTIVE_PS_SET_DURATION(h2c_pkt, value) \
  664. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  665. #define MACID_CFG_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  666. #define MACID_CFG_SET_CMD_ID(h2c_pkt, value) \
  667. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  668. #define MACID_CFG_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  669. #define MACID_CFG_SET_CLASS(h2c_pkt, value) \
  670. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  671. #define MACID_CFG_GET_MAC_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  672. #define MACID_CFG_SET_MAC_ID(h2c_pkt, value) \
  673. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  674. #define MACID_CFG_GET_RATE_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 5)
  675. #define MACID_CFG_SET_RATE_ID(h2c_pkt, value) \
  676. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 5, value)
  677. #define MACID_CFG_GET_INIT_RATE_LV(h2c_pkt) \
  678. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 21, 2)
  679. #define MACID_CFG_SET_INIT_RATE_LV(h2c_pkt, value) \
  680. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 21, 2, value)
  681. #define MACID_CFG_GET_SGI(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 23, 1)
  682. #define MACID_CFG_SET_SGI(h2c_pkt, value) \
  683. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 23, 1, value)
  684. #define MACID_CFG_GET_BW(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 2)
  685. #define MACID_CFG_SET_BW(h2c_pkt, value) \
  686. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 2, value)
  687. #define MACID_CFG_GET_LDPC_CAP(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 26, 1)
  688. #define MACID_CFG_SET_LDPC_CAP(h2c_pkt, value) \
  689. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 26, 1, value)
  690. #define MACID_CFG_GET_NO_UPDATE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 27, 1)
  691. #define MACID_CFG_SET_NO_UPDATE(h2c_pkt, value) \
  692. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 27, 1, value)
  693. #define MACID_CFG_GET_WHT_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 28, 2)
  694. #define MACID_CFG_SET_WHT_EN(h2c_pkt, value) \
  695. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 28, 2, value)
  696. #define MACID_CFG_GET_DISPT(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 30, 1)
  697. #define MACID_CFG_SET_DISPT(h2c_pkt, value) \
  698. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 30, 1, value)
  699. #define MACID_CFG_GET_DISRA(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 31, 1)
  700. #define MACID_CFG_SET_DISRA(h2c_pkt, value) \
  701. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 31, 1, value)
  702. #define MACID_CFG_GET_RATE_MASK7_0(h2c_pkt) \
  703. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  704. #define MACID_CFG_SET_RATE_MASK7_0(h2c_pkt, value) \
  705. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  706. #define MACID_CFG_GET_RATE_MASK15_8(h2c_pkt) \
  707. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  708. #define MACID_CFG_SET_RATE_MASK15_8(h2c_pkt, value) \
  709. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  710. #define MACID_CFG_GET_RATE_MASK23_16(h2c_pkt) \
  711. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  712. #define MACID_CFG_SET_RATE_MASK23_16(h2c_pkt, value) \
  713. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  714. #define MACID_CFG_GET_RATE_MASK31_24(h2c_pkt) \
  715. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  716. #define MACID_CFG_SET_RATE_MASK31_24(h2c_pkt, value) \
  717. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  718. #define TXBF_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  719. #define TXBF_SET_CMD_ID(h2c_pkt, value) \
  720. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  721. #define TXBF_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  722. #define TXBF_SET_CLASS(h2c_pkt, value) \
  723. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  724. #define TXBF_GET_NDPA0_HEAD_PAGE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  725. #define TXBF_SET_NDPA0_HEAD_PAGE(h2c_pkt, value) \
  726. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  727. #define TXBF_GET_NDPA1_HEAD_PAGE(h2c_pkt) \
  728. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  729. #define TXBF_SET_NDPA1_HEAD_PAGE(h2c_pkt, value) \
  730. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  731. #define TXBF_GET_PERIOD_0(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  732. #define TXBF_SET_PERIOD_0(h2c_pkt, value) \
  733. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  734. #define RSSI_SETTING_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  735. #define RSSI_SETTING_SET_CMD_ID(h2c_pkt, value) \
  736. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  737. #define RSSI_SETTING_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  738. #define RSSI_SETTING_SET_CLASS(h2c_pkt, value) \
  739. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  740. #define RSSI_SETTING_GET_MAC_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  741. #define RSSI_SETTING_SET_MAC_ID(h2c_pkt, value) \
  742. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  743. #define RSSI_SETTING_GET_RSSI(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 7)
  744. #define RSSI_SETTING_SET_RSSI(h2c_pkt, value) \
  745. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 7, value)
  746. #define RSSI_SETTING_GET_RA_INFO(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  747. #define RSSI_SETTING_SET_RA_INFO(h2c_pkt, value) \
  748. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  749. #define AP_REQ_TXRPT_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  750. #define AP_REQ_TXRPT_SET_CMD_ID(h2c_pkt, value) \
  751. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  752. #define AP_REQ_TXRPT_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  753. #define AP_REQ_TXRPT_SET_CLASS(h2c_pkt, value) \
  754. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  755. #define AP_REQ_TXRPT_GET_STA1_MACID(h2c_pkt) \
  756. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  757. #define AP_REQ_TXRPT_SET_STA1_MACID(h2c_pkt, value) \
  758. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  759. #define AP_REQ_TXRPT_GET_STA2_MACID(h2c_pkt) \
  760. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  761. #define AP_REQ_TXRPT_SET_STA2_MACID(h2c_pkt, value) \
  762. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  763. #define AP_REQ_TXRPT_GET_RTY_OK_TOTAL(h2c_pkt) \
  764. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 1)
  765. #define AP_REQ_TXRPT_SET_RTY_OK_TOTAL(h2c_pkt, value) \
  766. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 1, value)
  767. #define AP_REQ_TXRPT_GET_RTY_CNT_MACID(h2c_pkt) \
  768. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 25, 1)
  769. #define AP_REQ_TXRPT_SET_RTY_CNT_MACID(h2c_pkt, value) \
  770. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 25, 1, value)
  771. #define INIT_RATE_COLLECTION_GET_CMD_ID(h2c_pkt) \
  772. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  773. #define INIT_RATE_COLLECTION_SET_CMD_ID(h2c_pkt, value) \
  774. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  775. #define INIT_RATE_COLLECTION_GET_CLASS(h2c_pkt) \
  776. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  777. #define INIT_RATE_COLLECTION_SET_CLASS(h2c_pkt, value) \
  778. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  779. #define INIT_RATE_COLLECTION_GET_STA1_MACID(h2c_pkt) \
  780. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  781. #define INIT_RATE_COLLECTION_SET_STA1_MACID(h2c_pkt, value) \
  782. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  783. #define INIT_RATE_COLLECTION_GET_STA2_MACID(h2c_pkt) \
  784. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  785. #define INIT_RATE_COLLECTION_SET_STA2_MACID(h2c_pkt, value) \
  786. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  787. #define INIT_RATE_COLLECTION_GET_STA3_MACID(h2c_pkt) \
  788. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  789. #define INIT_RATE_COLLECTION_SET_STA3_MACID(h2c_pkt, value) \
  790. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  791. #define INIT_RATE_COLLECTION_GET_STA4_MACID(h2c_pkt) \
  792. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  793. #define INIT_RATE_COLLECTION_SET_STA4_MACID(h2c_pkt, value) \
  794. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  795. #define INIT_RATE_COLLECTION_GET_STA5_MACID(h2c_pkt) \
  796. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  797. #define INIT_RATE_COLLECTION_SET_STA5_MACID(h2c_pkt, value) \
  798. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  799. #define INIT_RATE_COLLECTION_GET_STA6_MACID(h2c_pkt) \
  800. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  801. #define INIT_RATE_COLLECTION_SET_STA6_MACID(h2c_pkt, value) \
  802. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  803. #define INIT_RATE_COLLECTION_GET_STA7_MACID(h2c_pkt) \
  804. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  805. #define INIT_RATE_COLLECTION_SET_STA7_MACID(h2c_pkt, value) \
  806. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  807. #define IQK_OFFLOAD_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  808. #define IQK_OFFLOAD_SET_CMD_ID(h2c_pkt, value) \
  809. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  810. #define IQK_OFFLOAD_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  811. #define IQK_OFFLOAD_SET_CLASS(h2c_pkt, value) \
  812. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  813. #define IQK_OFFLOAD_GET_CHANNEL(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  814. #define IQK_OFFLOAD_SET_CHANNEL(h2c_pkt, value) \
  815. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  816. #define IQK_OFFLOAD_GET_BWBAND(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  817. #define IQK_OFFLOAD_SET_BWBAND(h2c_pkt, value) \
  818. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  819. #define IQK_OFFLOAD_GET_EXTPALNA(h2c_pkt) \
  820. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  821. #define IQK_OFFLOAD_SET_EXTPALNA(h2c_pkt, value) \
  822. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  823. #define MACID_CFG_3SS_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  824. #define MACID_CFG_3SS_SET_CMD_ID(h2c_pkt, value) \
  825. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  826. #define MACID_CFG_3SS_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  827. #define MACID_CFG_3SS_SET_CLASS(h2c_pkt, value) \
  828. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  829. #define MACID_CFG_3SS_GET_MACID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  830. #define MACID_CFG_3SS_SET_MACID(h2c_pkt, value) \
  831. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  832. #define MACID_CFG_3SS_GET_RATE_MASK_39_32(h2c_pkt) \
  833. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  834. #define MACID_CFG_3SS_SET_RATE_MASK_39_32(h2c_pkt, value) \
  835. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  836. #define MACID_CFG_3SS_GET_RATE_MASK_47_40(h2c_pkt) \
  837. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  838. #define MACID_CFG_3SS_SET_RATE_MASK_47_40(h2c_pkt, value) \
  839. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  840. #define RA_PARA_ADJUST_GET_CMD_ID(h2c_pkt) \
  841. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  842. #define RA_PARA_ADJUST_SET_CMD_ID(h2c_pkt, value) \
  843. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  844. #define RA_PARA_ADJUST_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  845. #define RA_PARA_ADJUST_SET_CLASS(h2c_pkt, value) \
  846. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  847. #define RA_PARA_ADJUST_GET_MAC_ID(h2c_pkt) \
  848. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  849. #define RA_PARA_ADJUST_SET_MAC_ID(h2c_pkt, value) \
  850. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  851. #define RA_PARA_ADJUST_GET_PARAMETER_INDEX(h2c_pkt) \
  852. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  853. #define RA_PARA_ADJUST_SET_PARAMETER_INDEX(h2c_pkt, value) \
  854. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  855. #define RA_PARA_ADJUST_GET_RATE_ID(h2c_pkt) \
  856. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  857. #define RA_PARA_ADJUST_SET_RATE_ID(h2c_pkt, value) \
  858. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  859. #define RA_PARA_ADJUST_GET_VALUE_BYTE0(h2c_pkt) \
  860. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  861. #define RA_PARA_ADJUST_SET_VALUE_BYTE0(h2c_pkt, value) \
  862. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  863. #define RA_PARA_ADJUST_GET_VALUE_BYTE1(h2c_pkt) \
  864. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  865. #define RA_PARA_ADJUST_SET_VALUE_BYTE1(h2c_pkt, value) \
  866. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  867. #define RA_PARA_ADJUST_GET_ASK_FW_FOR_FW_PARA(h2c_pkt) \
  868. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  869. #define RA_PARA_ADJUST_SET_ASK_FW_FOR_FW_PARA(h2c_pkt, value) \
  870. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  871. #define WWLAN_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  872. #define WWLAN_SET_CMD_ID(h2c_pkt, value) \
  873. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  874. #define WWLAN_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  875. #define WWLAN_SET_CLASS(h2c_pkt, value) \
  876. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  877. #define WWLAN_GET_FUNC_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  878. #define WWLAN_SET_FUNC_EN(h2c_pkt, value) \
  879. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  880. #define WWLAN_GET_PATTERM_MAT_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  881. #define WWLAN_SET_PATTERM_MAT_EN(h2c_pkt, value) \
  882. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  883. #define WWLAN_GET_MAGIC_PKT_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  884. #define WWLAN_SET_MAGIC_PKT_EN(h2c_pkt, value) \
  885. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  886. #define WWLAN_GET_UNICAST_WAKEUP_EN(h2c_pkt) \
  887. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  888. #define WWLAN_SET_UNICAST_WAKEUP_EN(h2c_pkt, value) \
  889. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  890. #define WWLAN_GET_ALL_PKT_DROP(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 1)
  891. #define WWLAN_SET_ALL_PKT_DROP(h2c_pkt, value) \
  892. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 1, value)
  893. #define WWLAN_GET_GPIO_ACTIVE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 13, 1)
  894. #define WWLAN_SET_GPIO_ACTIVE(h2c_pkt, value) \
  895. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 13, 1, value)
  896. #define WWLAN_GET_REKEY_WAKEUP_EN(h2c_pkt) \
  897. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 14, 1)
  898. #define WWLAN_SET_REKEY_WAKEUP_EN(h2c_pkt, value) \
  899. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 14, 1, value)
  900. #define WWLAN_GET_DEAUTH_WAKEUP_EN(h2c_pkt) \
  901. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 15, 1)
  902. #define WWLAN_SET_DEAUTH_WAKEUP_EN(h2c_pkt, value) \
  903. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 15, 1, value)
  904. #define WWLAN_GET_GPIO_NUM(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 7)
  905. #define WWLAN_SET_GPIO_NUM(h2c_pkt, value) \
  906. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 7, value)
  907. #define WWLAN_GET_DATAPIN_WAKEUP_EN(h2c_pkt) \
  908. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 23, 1)
  909. #define WWLAN_SET_DATAPIN_WAKEUP_EN(h2c_pkt, value) \
  910. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 23, 1, value)
  911. #define WWLAN_GET_GPIO_DURATION(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  912. #define WWLAN_SET_GPIO_DURATION(h2c_pkt, value) \
  913. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  914. #define WWLAN_GET_GPIO_PLUS_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 1)
  915. #define WWLAN_SET_GPIO_PLUS_EN(h2c_pkt, value) \
  916. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 1, value)
  917. #define WWLAN_GET_GPIO_PULSE_COUNT(h2c_pkt) \
  918. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 1, 7)
  919. #define WWLAN_SET_GPIO_PULSE_COUNT(h2c_pkt, value) \
  920. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 1, 7, value)
  921. #define WWLAN_GET_DISABLE_UPHY(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 1)
  922. #define WWLAN_SET_DISABLE_UPHY(h2c_pkt, value) \
  923. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 1, value)
  924. #define WWLAN_GET_HST2DEV_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 9, 1)
  925. #define WWLAN_SET_HST2DEV_EN(h2c_pkt, value) \
  926. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 9, 1, value)
  927. #define WWLAN_GET_GPIO_DURATION_MS(h2c_pkt) \
  928. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 10, 1)
  929. #define WWLAN_SET_GPIO_DURATION_MS(h2c_pkt, value) \
  930. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 10, 1, value)
  931. #define REMOTE_WAKE_CTRL_GET_CMD_ID(h2c_pkt) \
  932. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  933. #define REMOTE_WAKE_CTRL_SET_CMD_ID(h2c_pkt, value) \
  934. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  935. #define REMOTE_WAKE_CTRL_GET_CLASS(h2c_pkt) \
  936. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  937. #define REMOTE_WAKE_CTRL_SET_CLASS(h2c_pkt, value) \
  938. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  939. #define REMOTE_WAKE_CTRL_GET_REMOTE_WAKE_CTRL_EN(h2c_pkt) \
  940. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  941. #define REMOTE_WAKE_CTRL_SET_REMOTE_WAKE_CTRL_EN(h2c_pkt, value) \
  942. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  943. #define REMOTE_WAKE_CTRL_GET_ARP_EN(h2c_pkt) \
  944. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 9, 1)
  945. #define REMOTE_WAKE_CTRL_SET_ARP_EN(h2c_pkt, value) \
  946. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 9, 1, value)
  947. #define REMOTE_WAKE_CTRL_GET_NDP_EN(h2c_pkt) \
  948. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 10, 1)
  949. #define REMOTE_WAKE_CTRL_SET_NDP_EN(h2c_pkt, value) \
  950. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 10, 1, value)
  951. #define REMOTE_WAKE_CTRL_GET_GTK_EN(h2c_pkt) \
  952. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 11, 1)
  953. #define REMOTE_WAKE_CTRL_SET_GTK_EN(h2c_pkt, value) \
  954. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 11, 1, value)
  955. #define REMOTE_WAKE_CTRL_GET_NLO_OFFLOAD_EN(h2c_pkt) \
  956. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 1)
  957. #define REMOTE_WAKE_CTRL_SET_NLO_OFFLOAD_EN(h2c_pkt, value) \
  958. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 1, value)
  959. #define REMOTE_WAKE_CTRL_GET_REAL_WOW_V1_EN(h2c_pkt) \
  960. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 13, 1)
  961. #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V1_EN(h2c_pkt, value) \
  962. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 13, 1, value)
  963. #define REMOTE_WAKE_CTRL_GET_REAL_WOW_V2_EN(h2c_pkt) \
  964. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 14, 1)
  965. #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V2_EN(h2c_pkt, value) \
  966. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 14, 1, value)
  967. #define REMOTE_WAKE_CTRL_GET_FW_UNICAST(h2c_pkt) \
  968. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 15, 1)
  969. #define REMOTE_WAKE_CTRL_SET_FW_UNICAST(h2c_pkt, value) \
  970. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 15, 1, value)
  971. #define REMOTE_WAKE_CTRL_GET_P2P_OFFLOAD_EN(h2c_pkt) \
  972. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 1)
  973. #define REMOTE_WAKE_CTRL_SET_P2P_OFFLOAD_EN(h2c_pkt, value) \
  974. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 1, value)
  975. #define REMOTE_WAKE_CTRL_GET_RUNTIME_PM_EN(h2c_pkt) \
  976. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 17, 1)
  977. #define REMOTE_WAKE_CTRL_SET_RUNTIME_PM_EN(h2c_pkt, value) \
  978. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 17, 1, value)
  979. #define REMOTE_WAKE_CTRL_GET_NET_BIOS_DROP_EN(h2c_pkt) \
  980. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 18, 1)
  981. #define REMOTE_WAKE_CTRL_SET_NET_BIOS_DROP_EN(h2c_pkt, value) \
  982. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 18, 1, value)
  983. #define REMOTE_WAKE_CTRL_GET_ARP_ACTION(h2c_pkt) \
  984. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 1)
  985. #define REMOTE_WAKE_CTRL_SET_ARP_ACTION(h2c_pkt, value) \
  986. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 1, value)
  987. #define REMOTE_WAKE_CTRL_GET_FW_PARSING_UNTIL_WAKEUP(h2c_pkt) \
  988. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 28, 1)
  989. #define REMOTE_WAKE_CTRL_SET_FW_PARSING_UNTIL_WAKEUP(h2c_pkt, value) \
  990. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 28, 1, value)
  991. #define REMOTE_WAKE_CTRL_GET_FW_PARSING_AFTER_WAKEUP(h2c_pkt) \
  992. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 29, 1)
  993. #define REMOTE_WAKE_CTRL_SET_FW_PARSING_AFTER_WAKEUP(h2c_pkt, value) \
  994. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 29, 1, value)
  995. #define AOAC_GLOBAL_INFO_GET_CMD_ID(h2c_pkt) \
  996. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  997. #define AOAC_GLOBAL_INFO_SET_CMD_ID(h2c_pkt, value) \
  998. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  999. #define AOAC_GLOBAL_INFO_GET_CLASS(h2c_pkt) \
  1000. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1001. #define AOAC_GLOBAL_INFO_SET_CLASS(h2c_pkt, value) \
  1002. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1003. #define AOAC_GLOBAL_INFO_GET_PAIR_WISE_ENC_ALG(h2c_pkt) \
  1004. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1005. #define AOAC_GLOBAL_INFO_SET_PAIR_WISE_ENC_ALG(h2c_pkt, value) \
  1006. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1007. #define AOAC_GLOBAL_INFO_GET_GROUP_ENC_ALG(h2c_pkt) \
  1008. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  1009. #define AOAC_GLOBAL_INFO_SET_GROUP_ENC_ALG(h2c_pkt, value) \
  1010. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  1011. #define AOAC_RSVD_PAGE_GET_CMD_ID(h2c_pkt) \
  1012. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1013. #define AOAC_RSVD_PAGE_SET_CMD_ID(h2c_pkt, value) \
  1014. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1015. #define AOAC_RSVD_PAGE_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1016. #define AOAC_RSVD_PAGE_SET_CLASS(h2c_pkt, value) \
  1017. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1018. #define AOAC_RSVD_PAGE_GET_LOC_REMOTE_CTRL_INFO(h2c_pkt) \
  1019. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1020. #define AOAC_RSVD_PAGE_SET_LOC_REMOTE_CTRL_INFO(h2c_pkt, value) \
  1021. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1022. #define AOAC_RSVD_PAGE_GET_LOC_ARP_RESPONSE(h2c_pkt) \
  1023. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  1024. #define AOAC_RSVD_PAGE_SET_LOC_ARP_RESPONSE(h2c_pkt, value) \
  1025. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  1026. #define AOAC_RSVD_PAGE_GET_LOC_NEIGHBOR_ADVERTISEMENT(h2c_pkt) \
  1027. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  1028. #define AOAC_RSVD_PAGE_SET_LOC_NEIGHBOR_ADVERTISEMENT(h2c_pkt, value) \
  1029. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  1030. #define AOAC_RSVD_PAGE_GET_LOC_GTK_RSP(h2c_pkt) \
  1031. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  1032. #define AOAC_RSVD_PAGE_SET_LOC_GTK_RSP(h2c_pkt, value) \
  1033. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  1034. #define AOAC_RSVD_PAGE_GET_LOC_GTK_INFO(h2c_pkt) \
  1035. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  1036. #define AOAC_RSVD_PAGE_SET_LOC_GTK_INFO(h2c_pkt, value) \
  1037. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  1038. #define AOAC_RSVD_PAGE_GET_LOC_GTK_EXT_MEM(h2c_pkt) \
  1039. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  1040. #define AOAC_RSVD_PAGE_SET_LOC_GTK_EXT_MEM(h2c_pkt, value) \
  1041. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  1042. #define AOAC_RSVD_PAGE_GET_LOC_NDP_INFO(h2c_pkt) \
  1043. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  1044. #define AOAC_RSVD_PAGE_SET_LOC_NDP_INFO(h2c_pkt, value) \
  1045. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  1046. #define AOAC_RSVD_PAGE2_GET_CMD_ID(h2c_pkt) \
  1047. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1048. #define AOAC_RSVD_PAGE2_SET_CMD_ID(h2c_pkt, value) \
  1049. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1050. #define AOAC_RSVD_PAGE2_GET_CLASS(h2c_pkt) \
  1051. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1052. #define AOAC_RSVD_PAGE2_SET_CLASS(h2c_pkt, value) \
  1053. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1054. #define AOAC_RSVD_PAGE2_GET_LOC_ROUTER_SOLICATION(h2c_pkt) \
  1055. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1056. #define AOAC_RSVD_PAGE2_SET_LOC_ROUTER_SOLICATION(h2c_pkt, value) \
  1057. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1058. #define AOAC_RSVD_PAGE2_GET_LOC_BUBBLE_PACKET(h2c_pkt) \
  1059. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  1060. #define AOAC_RSVD_PAGE2_SET_LOC_BUBBLE_PACKET(h2c_pkt, value) \
  1061. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  1062. #define AOAC_RSVD_PAGE2_GET_LOC_TEREDO_INFO(h2c_pkt) \
  1063. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  1064. #define AOAC_RSVD_PAGE2_SET_LOC_TEREDO_INFO(h2c_pkt, value) \
  1065. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  1066. #define AOAC_RSVD_PAGE2_GET_LOC_REALWOW_INFO(h2c_pkt) \
  1067. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 0, 8)
  1068. #define AOAC_RSVD_PAGE2_SET_LOC_REALWOW_INFO(h2c_pkt, value) \
  1069. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 0, 8, value)
  1070. #define AOAC_RSVD_PAGE2_GET_LOC_KEEP_ALIVE_PKT(h2c_pkt) \
  1071. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 8, 8)
  1072. #define AOAC_RSVD_PAGE2_SET_LOC_KEEP_ALIVE_PKT(h2c_pkt, value) \
  1073. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 8, 8, value)
  1074. #define AOAC_RSVD_PAGE2_GET_LOC_ACK_PATTERN(h2c_pkt) \
  1075. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 16, 8)
  1076. #define AOAC_RSVD_PAGE2_SET_LOC_ACK_PATTERN(h2c_pkt, value) \
  1077. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 16, 8, value)
  1078. #define AOAC_RSVD_PAGE2_GET_LOC_WAKEUP_PATTERN(h2c_pkt) \
  1079. LE_BITS_TO_4BYTE(h2c_pkt + 0X04, 24, 8)
  1080. #define AOAC_RSVD_PAGE2_SET_LOC_WAKEUP_PATTERN(h2c_pkt, value) \
  1081. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X04, 24, 8, value)
  1082. #define D0_SCAN_OFFLOAD_INFO_GET_CMD_ID(h2c_pkt) \
  1083. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1084. #define D0_SCAN_OFFLOAD_INFO_SET_CMD_ID(h2c_pkt, value) \
  1085. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1086. #define D0_SCAN_OFFLOAD_INFO_GET_CLASS(h2c_pkt) \
  1087. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1088. #define D0_SCAN_OFFLOAD_INFO_SET_CLASS(h2c_pkt, value) \
  1089. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1090. #define D0_SCAN_OFFLOAD_INFO_GET_LOC_CHANNEL_INFO(h2c_pkt) \
  1091. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1092. #define D0_SCAN_OFFLOAD_INFO_SET_LOC_CHANNEL_INFO(h2c_pkt, value) \
  1093. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1094. #define CHANNEL_SWITCH_OFFLOAD_GET_CMD_ID(h2c_pkt) \
  1095. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1096. #define CHANNEL_SWITCH_OFFLOAD_SET_CMD_ID(h2c_pkt, value) \
  1097. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1098. #define CHANNEL_SWITCH_OFFLOAD_GET_CLASS(h2c_pkt) \
  1099. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1100. #define CHANNEL_SWITCH_OFFLOAD_SET_CLASS(h2c_pkt, value) \
  1101. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1102. #define CHANNEL_SWITCH_OFFLOAD_GET_CHANNEL_NUM(h2c_pkt) \
  1103. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1104. #define CHANNEL_SWITCH_OFFLOAD_SET_CHANNEL_NUM(h2c_pkt, value) \
  1105. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1106. #define CHANNEL_SWITCH_OFFLOAD_GET_EN_RFE(h2c_pkt) \
  1107. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  1108. #define CHANNEL_SWITCH_OFFLOAD_SET_EN_RFE(h2c_pkt, value) \
  1109. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  1110. #define CHANNEL_SWITCH_OFFLOAD_GET_RFE_TYPE(h2c_pkt) \
  1111. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 24, 8)
  1112. #define CHANNEL_SWITCH_OFFLOAD_SET_RFE_TYPE(h2c_pkt, value) \
  1113. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 24, 8, value)
  1114. #define AOAC_RSVD_PAGE3_GET_CMD_ID(h2c_pkt) \
  1115. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1116. #define AOAC_RSVD_PAGE3_SET_CMD_ID(h2c_pkt, value) \
  1117. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1118. #define AOAC_RSVD_PAGE3_GET_CLASS(h2c_pkt) \
  1119. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1120. #define AOAC_RSVD_PAGE3_SET_CLASS(h2c_pkt, value) \
  1121. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1122. #define AOAC_RSVD_PAGE3_GET_LOC_NLO_INFO(h2c_pkt) \
  1123. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 8)
  1124. #define AOAC_RSVD_PAGE3_SET_LOC_NLO_INFO(h2c_pkt, value) \
  1125. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 8, value)
  1126. #define AOAC_RSVD_PAGE3_GET_LOC_AOAC_REPORT(h2c_pkt) \
  1127. LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 16, 8)
  1128. #define AOAC_RSVD_PAGE3_SET_LOC_AOAC_REPORT(h2c_pkt, value) \
  1129. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 16, 8, value)
  1130. #define DBG_MSG_CTRL_GET_CMD_ID(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 0, 5)
  1131. #define DBG_MSG_CTRL_SET_CMD_ID(h2c_pkt, value) \
  1132. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 0, 5, value)
  1133. #define DBG_MSG_CTRL_GET_CLASS(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 5, 3)
  1134. #define DBG_MSG_CTRL_SET_CLASS(h2c_pkt, value) \
  1135. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 5, 3, value)
  1136. #define DBG_MSG_CTRL_GET_FUN_EN(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 8, 1)
  1137. #define DBG_MSG_CTRL_SET_FUN_EN(h2c_pkt, value) \
  1138. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 8, 1, value)
  1139. #define DBG_MSG_CTRL_GET_MODE(h2c_pkt) LE_BITS_TO_4BYTE(h2c_pkt + 0X00, 12, 4)
  1140. #define DBG_MSG_CTRL_SET_MODE(h2c_pkt, value) \
  1141. SET_BITS_TO_LE_4BYTE(h2c_pkt + 0X00, 12, 4, value)
  1142. #endif