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