OSDN Git Service

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