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