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