• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /******************************************************************************
2  *
3  * Copyright(c) 2016 - 2019 Realtek Corporation. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12  * more details.
13  *
14  ******************************************************************************/
15 
16 #ifndef _HAL_ORIGINALH2CFORMAT_H2C_C2H_AP_H_
17 #define _HAL_ORIGINALH2CFORMAT_H2C_C2H_AP_H_
18 #define CMD_ID_ORIGINAL_H2C 0X00
19 #define CMD_ID_H2C2H_LB 0X0
20 #define CMD_ID_D0_SCAN_OFFLOAD_CTRL 0X06
21 #define CMD_ID_RSVD_PAGE 0X0
22 #define CMD_ID_MEDIA_STATUS_RPT 0X01
23 #define CMD_ID_KEEP_ALIVE 0X03
24 #define CMD_ID_DISCONNECT_DECISION 0X04
25 #define CMD_ID_AP_OFFLOAD 0X08
26 #define CMD_ID_BCN_RSVDPAGE 0X09
27 #define CMD_ID_PROBE_RSP_RSVDPAGE 0X0A
28 #define CMD_ID_SINGLE_CHANNELSWITCH 0X1C
29 #define CMD_ID_SINGLE_CHANNELSWITCH_V2 0X1D
30 #define CMD_ID_SET_PWR_MODE 0X00
31 #define CMD_ID_PS_TUNING_PARA 0X01
32 #define CMD_ID_PS_TUNING_PARA_II 0X02
33 #define CMD_ID_PS_LPS_PARA 0X03
34 #define CMD_ID_P2P_PS_OFFLOAD 0X04
35 #define CMD_ID_PS_SCAN_EN 0X05
36 #define CMD_ID_SAP_PS 0X06
37 #define CMD_ID_INACTIVE_PS 0X07
38 #define CMD_ID_MACID_CFG 0X00
39 #define CMD_ID_TXBF 0X01
40 #define CMD_ID_RSSI_SETTING 0X02
41 #define CMD_ID_AP_REQ_TXRPT 0X03
42 #define CMD_ID_INIT_RATE_COLLECTION 0X04
43 #define CMD_ID_IQK_OFFLOAD 0X05
44 #define CMD_ID_MACID_CFG_3SS 0X06
45 #define CMD_ID_RA_PARA_ADJUST 0X07
46 #define CMD_ID_REQ_TXRPT_ACQ 0X12
47 #define CMD_ID_WWLAN 0X00
48 #define CMD_ID_REMOTE_WAKE_CTRL 0X01
49 #define CMD_ID_AOAC_GLOBAL_INFO 0X02
50 #define CMD_ID_AOAC_RSVD_PAGE 0X03
51 #define CMD_ID_AOAC_RSVD_PAGE2 0X04
52 #define CMD_ID_D0_SCAN_OFFLOAD_INFO 0X05
53 #define CMD_ID_CHANNEL_SWITCH_OFFLOAD 0X07
54 #define CMD_ID_AOAC_RSVD_PAGE3 0X08
55 #define CMD_ID_DBG_MSG_CTRL 0X1E
56 #define CLASS_ORIGINAL_H2C 0X00
57 #define CLASS_H2C2H_LB 0X07
58 #define CLASS_D0_SCAN_OFFLOAD_CTRL 0X04
59 #define CLASS_RSVD_PAGE 0X0
60 #define CLASS_MEDIA_STATUS_RPT 0X0
61 #define CLASS_KEEP_ALIVE 0X0
62 #define CLASS_DISCONNECT_DECISION 0X0
63 #define CLASS_AP_OFFLOAD 0X0
64 #define CLASS_BCN_RSVDPAGE 0X0
65 #define CLASS_PROBE_RSP_RSVDPAGE 0X0
66 #define CLASS_SINGLE_CHANNELSWITCH 0X0
67 #define CLASS_SINGLE_CHANNELSWITCH_V2 0X0
68 #define CLASS_SET_PWR_MODE 0X01
69 #define CLASS_PS_TUNING_PARA 0X01
70 #define CLASS_PS_TUNING_PARA_II 0X01
71 #define CLASS_PS_LPS_PARA 0X01
72 #define CLASS_P2P_PS_OFFLOAD 0X01
73 #define CLASS_PS_SCAN_EN 0X1
74 #define CLASS_SAP_PS 0X1
75 #define CLASS_INACTIVE_PS 0X1
76 #define CLASS_MACID_CFG 0X2
77 #define CLASS_TXBF 0X2
78 #define CLASS_RSSI_SETTING 0X2
79 #define CLASS_AP_REQ_TXRPT 0X2
80 #define CLASS_INIT_RATE_COLLECTION 0X2
81 #define CLASS_IQK_OFFLOAD 0X2
82 #define CLASS_MACID_CFG_3SS 0X2
83 #define CLASS_RA_PARA_ADJUST 0X02
84 #define CLASS_REQ_TXRPT_ACQ 0X02
85 #define CLASS_WWLAN 0X4
86 #define CLASS_REMOTE_WAKE_CTRL 0X4
87 #define CLASS_AOAC_GLOBAL_INFO 0X04
88 #define CLASS_AOAC_RSVD_PAGE 0X04
89 #define CLASS_AOAC_RSVD_PAGE2 0X04
90 #define CLASS_D0_SCAN_OFFLOAD_INFO 0X04
91 #define CLASS_CHANNEL_SWITCH_OFFLOAD 0X04
92 #define CLASS_AOAC_RSVD_PAGE3 0X04
93 #define CLASS_DBG_MSG_CTRL 0X07
94 #define ORIGINAL_H2C_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
95 #define ORIGINAL_H2C_SET_CMD_ID(h2c_pkt, value)                                \
96 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
97 #define ORIGINAL_H2C_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
98 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
99 #define ORIGINAL_H2C_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
100 #define ORIGINAL_H2C_SET_CLASS(h2c_pkt, value)                                 \
101 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
102 #define ORIGINAL_H2C_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
103 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
104 #define H2C2H_LB_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
105 #define H2C2H_LB_SET_CMD_ID(h2c_pkt, value)                                    \
106 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
107 #define H2C2H_LB_SET_CMD_ID_NO_CLR(h2c_pkt, value)                             \
108 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
109 #define H2C2H_LB_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
110 #define H2C2H_LB_SET_CLASS(h2c_pkt, value)                                     \
111 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
112 #define H2C2H_LB_SET_CLASS_NO_CLR(h2c_pkt, value)                              \
113 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
114 #define H2C2H_LB_GET_SEQ(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
115 #define H2C2H_LB_SET_SEQ(h2c_pkt, value)                                       \
116 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
117 #define H2C2H_LB_SET_SEQ_NO_CLR(h2c_pkt, value)                                \
118 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
119 #define H2C2H_LB_GET_PAYLOAD1(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 16)
120 #define H2C2H_LB_SET_PAYLOAD1(h2c_pkt, value)                                  \
121 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 16, value)
122 #define H2C2H_LB_SET_PAYLOAD1_NO_CLR(h2c_pkt, value)                           \
123 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 16, value)
124 #define H2C2H_LB_GET_PAYLOAD2(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 32)
125 #define H2C2H_LB_SET_PAYLOAD2(h2c_pkt, value)                                  \
126 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 32, value)
127 #define H2C2H_LB_SET_PAYLOAD2_NO_CLR(h2c_pkt, value)                           \
128 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 32, value)
129 #define D0_SCAN_OFFLOAD_CTRL_GET_CMD_ID(h2c_pkt)                               \
130 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
131 #define D0_SCAN_OFFLOAD_CTRL_SET_CMD_ID(h2c_pkt, value)                        \
132 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
133 #define D0_SCAN_OFFLOAD_CTRL_SET_CMD_ID_NO_CLR(h2c_pkt, value)                 \
134 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
135 #define D0_SCAN_OFFLOAD_CTRL_GET_CLASS(h2c_pkt)                                \
136 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
137 #define D0_SCAN_OFFLOAD_CTRL_SET_CLASS(h2c_pkt, value)                         \
138 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
139 #define D0_SCAN_OFFLOAD_CTRL_SET_CLASS_NO_CLR(h2c_pkt, value)                  \
140 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
141 #define D0_SCAN_OFFLOAD_CTRL_GET_D0_SCAN_FUN_EN(h2c_pkt)                       \
142 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
143 #define D0_SCAN_OFFLOAD_CTRL_SET_D0_SCAN_FUN_EN(h2c_pkt, value)                \
144 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
145 #define D0_SCAN_OFFLOAD_CTRL_SET_D0_SCAN_FUN_EN_NO_CLR(h2c_pkt, value)         \
146 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
147 #define D0_SCAN_OFFLOAD_CTRL_GET_RTD3FUN_EN(h2c_pkt)                           \
148 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
149 #define D0_SCAN_OFFLOAD_CTRL_SET_RTD3FUN_EN(h2c_pkt, value)                    \
150 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
151 #define D0_SCAN_OFFLOAD_CTRL_SET_RTD3FUN_EN_NO_CLR(h2c_pkt, value)             \
152 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
153 #define D0_SCAN_OFFLOAD_CTRL_GET_U3_SCAN_FUN_EN(h2c_pkt)                       \
154 	GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
155 #define D0_SCAN_OFFLOAD_CTRL_SET_U3_SCAN_FUN_EN(h2c_pkt, value)                \
156 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
157 #define D0_SCAN_OFFLOAD_CTRL_SET_U3_SCAN_FUN_EN_NO_CLR(h2c_pkt, value)         \
158 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
159 #define D0_SCAN_OFFLOAD_CTRL_GET_NLO_FUN_EN(h2c_pkt)                           \
160 	GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
161 #define D0_SCAN_OFFLOAD_CTRL_SET_NLO_FUN_EN(h2c_pkt, value)                    \
162 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
163 #define D0_SCAN_OFFLOAD_CTRL_SET_NLO_FUN_EN_NO_CLR(h2c_pkt, value)             \
164 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
165 #define D0_SCAN_OFFLOAD_CTRL_GET_IPS_DEPENDENT(h2c_pkt)                        \
166 	GET_H2C_FIELD(h2c_pkt + 0X00, 12, 1)
167 #define D0_SCAN_OFFLOAD_CTRL_SET_IPS_DEPENDENT(h2c_pkt, value)                 \
168 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 1, value)
169 #define D0_SCAN_OFFLOAD_CTRL_SET_IPS_DEPENDENT_NO_CLR(h2c_pkt, value)          \
170 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 1, value)
171 #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_PROBE_PACKET(h2c_pkt)                     \
172 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 17)
173 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_PROBE_PACKET(h2c_pkt, value)              \
174 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 17, value)
175 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_PROBE_PACKET_NO_CLR(h2c_pkt, value)       \
176 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 17, value)
177 #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SCAN_INFO(h2c_pkt)                        \
178 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
179 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SCAN_INFO(h2c_pkt, value)                 \
180 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
181 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SCAN_INFO_NO_CLR(h2c_pkt, value)          \
182 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
183 #define D0_SCAN_OFFLOAD_CTRL_GET_LOC_SSID_INFO(h2c_pkt)                        \
184 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
185 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SSID_INFO(h2c_pkt, value)                 \
186 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
187 #define D0_SCAN_OFFLOAD_CTRL_SET_LOC_SSID_INFO_NO_CLR(h2c_pkt, value)          \
188 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
189 #define RSVD_PAGE_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
190 #define RSVD_PAGE_SET_CMD_ID(h2c_pkt, value)                                   \
191 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
192 #define RSVD_PAGE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                            \
193 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
194 #define RSVD_PAGE_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
195 #define RSVD_PAGE_SET_CLASS(h2c_pkt, value)                                    \
196 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
197 #define RSVD_PAGE_SET_CLASS_NO_CLR(h2c_pkt, value)                             \
198 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
199 #define RSVD_PAGE_GET_LOC_PROBE_RSP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
200 #define RSVD_PAGE_SET_LOC_PROBE_RSP(h2c_pkt, value)                            \
201 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
202 #define RSVD_PAGE_SET_LOC_PROBE_RSP_NO_CLR(h2c_pkt, value)                     \
203 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
204 #define RSVD_PAGE_GET_LOC_PS_POLL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
205 #define RSVD_PAGE_SET_LOC_PS_POLL(h2c_pkt, value)                              \
206 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
207 #define RSVD_PAGE_SET_LOC_PS_POLL_NO_CLR(h2c_pkt, value)                       \
208 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
209 #define RSVD_PAGE_GET_LOC_NULL_DATA(h2c_pkt)                                   \
210 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
211 #define RSVD_PAGE_SET_LOC_NULL_DATA(h2c_pkt, value)                            \
212 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
213 #define RSVD_PAGE_SET_LOC_NULL_DATA_NO_CLR(h2c_pkt, value)                     \
214 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
215 #define RSVD_PAGE_GET_LOC_QOS_NULL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
216 #define RSVD_PAGE_SET_LOC_QOS_NULL(h2c_pkt, value)                             \
217 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
218 #define RSVD_PAGE_SET_LOC_QOS_NULL_NO_CLR(h2c_pkt, value)                      \
219 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
220 #define RSVD_PAGE_GET_LOC_BT_QOS_NULL(h2c_pkt)                                 \
221 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
222 #define RSVD_PAGE_SET_LOC_BT_QOS_NULL(h2c_pkt, value)                          \
223 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
224 #define RSVD_PAGE_SET_LOC_BT_QOS_NULL_NO_CLR(h2c_pkt, value)                   \
225 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
226 #define RSVD_PAGE_GET_LOC_CTS2SELF(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
227 #define RSVD_PAGE_SET_LOC_CTS2SELF(h2c_pkt, value)                             \
228 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
229 #define RSVD_PAGE_SET_LOC_CTS2SELF_NO_CLR(h2c_pkt, value)                      \
230 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
231 #define RSVD_PAGE_GET_LOC_LTECOEX_QOSNULL(h2c_pkt)                             \
232 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
233 #define RSVD_PAGE_SET_LOC_LTECOEX_QOSNULL(h2c_pkt, value)                      \
234 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
235 #define RSVD_PAGE_SET_LOC_LTECOEX_QOSNULL_NO_CLR(h2c_pkt, value)               \
236 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
237 #define MEDIA_STATUS_RPT_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
238 #define MEDIA_STATUS_RPT_SET_CMD_ID(h2c_pkt, value)                            \
239 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
240 #define MEDIA_STATUS_RPT_SET_CMD_ID_NO_CLR(h2c_pkt, value)                     \
241 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
242 #define MEDIA_STATUS_RPT_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
243 #define MEDIA_STATUS_RPT_SET_CLASS(h2c_pkt, value)                             \
244 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
245 #define MEDIA_STATUS_RPT_SET_CLASS_NO_CLR(h2c_pkt, value)                      \
246 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
247 #define MEDIA_STATUS_RPT_GET_OP_MODE(h2c_pkt)                                  \
248 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
249 #define MEDIA_STATUS_RPT_SET_OP_MODE(h2c_pkt, value)                           \
250 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
251 #define MEDIA_STATUS_RPT_SET_OP_MODE_NO_CLR(h2c_pkt, value)                    \
252 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
253 #define MEDIA_STATUS_RPT_GET_MACID_IN(h2c_pkt)                                 \
254 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
255 #define MEDIA_STATUS_RPT_SET_MACID_IN(h2c_pkt, value)                          \
256 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
257 #define MEDIA_STATUS_RPT_SET_MACID_IN_NO_CLR(h2c_pkt, value)                   \
258 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
259 #define MEDIA_STATUS_RPT_GET_MACID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
260 #define MEDIA_STATUS_RPT_SET_MACID(h2c_pkt, value)                             \
261 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
262 #define MEDIA_STATUS_RPT_SET_MACID_NO_CLR(h2c_pkt, value)                      \
263 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
264 #define MEDIA_STATUS_RPT_GET_MACID_END(h2c_pkt)                                \
265 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
266 #define MEDIA_STATUS_RPT_SET_MACID_END(h2c_pkt, value)                         \
267 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
268 #define MEDIA_STATUS_RPT_SET_MACID_END_NO_CLR(h2c_pkt, value)                  \
269 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
270 #define KEEP_ALIVE_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
271 #define KEEP_ALIVE_SET_CMD_ID(h2c_pkt, value)                                  \
272 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
273 #define KEEP_ALIVE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                           \
274 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
275 #define KEEP_ALIVE_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
276 #define KEEP_ALIVE_SET_CLASS(h2c_pkt, value)                                   \
277 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
278 #define KEEP_ALIVE_SET_CLASS_NO_CLR(h2c_pkt, value)                            \
279 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
280 #define KEEP_ALIVE_GET_ENABLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
281 #define KEEP_ALIVE_SET_ENABLE(h2c_pkt, value)                                  \
282 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
283 #define KEEP_ALIVE_SET_ENABLE_NO_CLR(h2c_pkt, value)                           \
284 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
285 #define KEEP_ALIVE_GET_ADOPT_USER_SETTING(h2c_pkt)                             \
286 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
287 #define KEEP_ALIVE_SET_ADOPT_USER_SETTING(h2c_pkt, value)                      \
288 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
289 #define KEEP_ALIVE_SET_ADOPT_USER_SETTING_NO_CLR(h2c_pkt, value)               \
290 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
291 #define KEEP_ALIVE_GET_PKT_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
292 #define KEEP_ALIVE_SET_PKT_TYPE(h2c_pkt, value)                                \
293 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
294 #define KEEP_ALIVE_SET_PKT_TYPE_NO_CLR(h2c_pkt, value)                         \
295 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
296 #define KEEP_ALIVE_GET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt)                        \
297 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
298 #define KEEP_ALIVE_SET_KEEP_ALIVE_CHECK_PERIOD(h2c_pkt, value)                 \
299 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
300 #define KEEP_ALIVE_SET_KEEP_ALIVE_CHECK_PERIOD_NO_CLR(h2c_pkt, value)          \
301 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
302 #define DISCONNECT_DECISION_GET_CMD_ID(h2c_pkt)                                \
303 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
304 #define DISCONNECT_DECISION_SET_CMD_ID(h2c_pkt, value)                         \
305 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
306 #define DISCONNECT_DECISION_SET_CMD_ID_NO_CLR(h2c_pkt, value)                  \
307 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
308 #define DISCONNECT_DECISION_GET_CLASS(h2c_pkt)                                 \
309 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
310 #define DISCONNECT_DECISION_SET_CLASS(h2c_pkt, value)                          \
311 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
312 #define DISCONNECT_DECISION_SET_CLASS_NO_CLR(h2c_pkt, value)                   \
313 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
314 #define DISCONNECT_DECISION_GET_ENABLE(h2c_pkt)                                \
315 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
316 #define DISCONNECT_DECISION_SET_ENABLE(h2c_pkt, value)                         \
317 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
318 #define DISCONNECT_DECISION_SET_ENABLE_NO_CLR(h2c_pkt, value)                  \
319 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
320 #define DISCONNECT_DECISION_GET_ADOPT_USER_SETTING(h2c_pkt)                    \
321 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
322 #define DISCONNECT_DECISION_SET_ADOPT_USER_SETTING(h2c_pkt, value)             \
323 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
324 #define DISCONNECT_DECISION_SET_ADOPT_USER_SETTING_NO_CLR(h2c_pkt, value)      \
325 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
326 #define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_EN(h2c_pkt)              \
327 	GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
328 #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_EN(h2c_pkt, value)       \
329 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
330 #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_EN_NO_CLR(h2c_pkt,       \
331 								value)         \
332 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
333 #define DISCONNECT_DECISION_GET_DISCONNECT_EN(h2c_pkt)                         \
334 	GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
335 #define DISCONNECT_DECISION_SET_DISCONNECT_EN(h2c_pkt, value)                  \
336 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
337 #define DISCONNECT_DECISION_SET_DISCONNECT_EN_NO_CLR(h2c_pkt, value)           \
338 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
339 #define DISCONNECT_DECISION_GET_DISCON_DECISION_CHECK_PERIOD(h2c_pkt)          \
340 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
341 #define DISCONNECT_DECISION_SET_DISCON_DECISION_CHECK_PERIOD(h2c_pkt, value)   \
342 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
343 #define DISCONNECT_DECISION_SET_DISCON_DECISION_CHECK_PERIOD_NO_CLR(h2c_pkt,   \
344 								    value)     \
345 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
346 #define DISCONNECT_DECISION_GET_TRY_PKT_NUM(h2c_pkt)                           \
347 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
348 #define DISCONNECT_DECISION_SET_TRY_PKT_NUM(h2c_pkt, value)                    \
349 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
350 #define DISCONNECT_DECISION_SET_TRY_PKT_NUM_NO_CLR(h2c_pkt, value)             \
351 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
352 #define DISCONNECT_DECISION_GET_TRY_OK_BCN_FAIL_COUNT_LIMIT(h2c_pkt)           \
353 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
354 #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_LIMIT(h2c_pkt, value)    \
355 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
356 #define DISCONNECT_DECISION_SET_TRY_OK_BCN_FAIL_COUNT_LIMIT_NO_CLR(h2c_pkt,    \
357 								   value)      \
358 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
359 #define AP_OFFLOAD_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
360 #define AP_OFFLOAD_SET_CMD_ID(h2c_pkt, value)                                  \
361 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
362 #define AP_OFFLOAD_SET_CMD_ID_NO_CLR(h2c_pkt, value)                           \
363 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
364 #define AP_OFFLOAD_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
365 #define AP_OFFLOAD_SET_CLASS(h2c_pkt, value)                                   \
366 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
367 #define AP_OFFLOAD_SET_CLASS_NO_CLR(h2c_pkt, value)                            \
368 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
369 #define AP_OFFLOAD_GET_ON(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
370 #define AP_OFFLOAD_SET_ON(h2c_pkt, value)                                      \
371 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
372 #define AP_OFFLOAD_SET_ON_NO_CLR(h2c_pkt, value)                               \
373 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
374 #define AP_OFFLOAD_GET_CFG_MIFI_PLATFORM(h2c_pkt)                              \
375 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
376 #define AP_OFFLOAD_SET_CFG_MIFI_PLATFORM(h2c_pkt, value)                       \
377 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
378 #define AP_OFFLOAD_SET_CFG_MIFI_PLATFORM_NO_CLR(h2c_pkt, value)                \
379 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
380 #define AP_OFFLOAD_GET_LINKED(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
381 #define AP_OFFLOAD_SET_LINKED(h2c_pkt, value)                                  \
382 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
383 #define AP_OFFLOAD_SET_LINKED_NO_CLR(h2c_pkt, value)                           \
384 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
385 #define AP_OFFLOAD_GET_EN_AUTO_WAKE(h2c_pkt)                                   \
386 	GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
387 #define AP_OFFLOAD_SET_EN_AUTO_WAKE(h2c_pkt, value)                            \
388 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
389 #define AP_OFFLOAD_SET_EN_AUTO_WAKE_NO_CLR(h2c_pkt, value)                     \
390 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
391 #define AP_OFFLOAD_GET_WAKE_FLAG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 12, 1)
392 #define AP_OFFLOAD_SET_WAKE_FLAG(h2c_pkt, value)                               \
393 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 1, value)
394 #define AP_OFFLOAD_SET_WAKE_FLAG_NO_CLR(h2c_pkt, value)                        \
395 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 1, value)
396 #define AP_OFFLOAD_GET_HIDDEN_ROOT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 1)
397 #define AP_OFFLOAD_SET_HIDDEN_ROOT(h2c_pkt, value)                             \
398 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 1, value)
399 #define AP_OFFLOAD_SET_HIDDEN_ROOT_NO_CLR(h2c_pkt, value)                      \
400 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 1, value)
401 #define AP_OFFLOAD_GET_HIDDEN_VAP1(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 17, 1)
402 #define AP_OFFLOAD_SET_HIDDEN_VAP1(h2c_pkt, value)                             \
403 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 17, 1, value)
404 #define AP_OFFLOAD_SET_HIDDEN_VAP1_NO_CLR(h2c_pkt, value)                      \
405 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 17, 1, value)
406 #define AP_OFFLOAD_GET_HIDDEN_VAP2(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 18, 1)
407 #define AP_OFFLOAD_SET_HIDDEN_VAP2(h2c_pkt, value)                             \
408 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 18, 1, value)
409 #define AP_OFFLOAD_SET_HIDDEN_VAP2_NO_CLR(h2c_pkt, value)                      \
410 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 18, 1, value)
411 #define AP_OFFLOAD_GET_HIDDEN_VAP3(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 19, 1)
412 #define AP_OFFLOAD_SET_HIDDEN_VAP3(h2c_pkt, value)                             \
413 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 19, 1, value)
414 #define AP_OFFLOAD_SET_HIDDEN_VAP3_NO_CLR(h2c_pkt, value)                      \
415 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 19, 1, value)
416 #define AP_OFFLOAD_GET_HIDDEN_VAP4(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 20, 1)
417 #define AP_OFFLOAD_SET_HIDDEN_VAP4(h2c_pkt, value)                             \
418 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 20, 1, value)
419 #define AP_OFFLOAD_SET_HIDDEN_VAP4_NO_CLR(h2c_pkt, value)                      \
420 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 20, 1, value)
421 #define AP_OFFLOAD_GET_DENYANY_ROOT(h2c_pkt)                                   \
422 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 1)
423 #define AP_OFFLOAD_SET_DENYANY_ROOT(h2c_pkt, value)                            \
424 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 1, value)
425 #define AP_OFFLOAD_SET_DENYANY_ROOT_NO_CLR(h2c_pkt, value)                     \
426 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 1, value)
427 #define AP_OFFLOAD_GET_DENYANY_VAP1(h2c_pkt)                                   \
428 	GET_H2C_FIELD(h2c_pkt + 0X00, 25, 1)
429 #define AP_OFFLOAD_SET_DENYANY_VAP1(h2c_pkt, value)                            \
430 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 25, 1, value)
431 #define AP_OFFLOAD_SET_DENYANY_VAP1_NO_CLR(h2c_pkt, value)                     \
432 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 25, 1, value)
433 #define AP_OFFLOAD_GET_DENYANY_VAP2(h2c_pkt)                                   \
434 	GET_H2C_FIELD(h2c_pkt + 0X00, 26, 1)
435 #define AP_OFFLOAD_SET_DENYANY_VAP2(h2c_pkt, value)                            \
436 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 26, 1, value)
437 #define AP_OFFLOAD_SET_DENYANY_VAP2_NO_CLR(h2c_pkt, value)                     \
438 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 26, 1, value)
439 #define AP_OFFLOAD_GET_DENYANY_VAP3(h2c_pkt)                                   \
440 	GET_H2C_FIELD(h2c_pkt + 0X00, 27, 1)
441 #define AP_OFFLOAD_SET_DENYANY_VAP3(h2c_pkt, value)                            \
442 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 27, 1, value)
443 #define AP_OFFLOAD_SET_DENYANY_VAP3_NO_CLR(h2c_pkt, value)                     \
444 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 27, 1, value)
445 #define AP_OFFLOAD_GET_DENYANY_VAP4(h2c_pkt)                                   \
446 	GET_H2C_FIELD(h2c_pkt + 0X00, 28, 1)
447 #define AP_OFFLOAD_SET_DENYANY_VAP4(h2c_pkt, value)                            \
448 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 28, 1, value)
449 #define AP_OFFLOAD_SET_DENYANY_VAP4_NO_CLR(h2c_pkt, value)                     \
450 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 28, 1, value)
451 #define AP_OFFLOAD_GET_WAIT_TBTT_CNT(h2c_pkt)                                  \
452 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
453 #define AP_OFFLOAD_SET_WAIT_TBTT_CNT(h2c_pkt, value)                           \
454 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
455 #define AP_OFFLOAD_SET_WAIT_TBTT_CNT_NO_CLR(h2c_pkt, value)                    \
456 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
457 #define AP_OFFLOAD_GET_WAKE_TIMEOUT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
458 #define AP_OFFLOAD_SET_WAKE_TIMEOUT(h2c_pkt, value)                            \
459 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
460 #define AP_OFFLOAD_SET_WAKE_TIMEOUT_NO_CLR(h2c_pkt, value)                     \
461 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
462 #define AP_OFFLOAD_GET_LEN_IV_PAIR(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
463 #define AP_OFFLOAD_SET_LEN_IV_PAIR(h2c_pkt, value)                             \
464 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
465 #define AP_OFFLOAD_SET_LEN_IV_PAIR_NO_CLR(h2c_pkt, value)                      \
466 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
467 #define AP_OFFLOAD_GET_LEN_IV_GRP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
468 #define AP_OFFLOAD_SET_LEN_IV_GRP(h2c_pkt, value)                              \
469 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
470 #define AP_OFFLOAD_SET_LEN_IV_GRP_NO_CLR(h2c_pkt, value)                       \
471 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
472 #define BCN_RSVDPAGE_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
473 #define BCN_RSVDPAGE_SET_CMD_ID(h2c_pkt, value)                                \
474 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
475 #define BCN_RSVDPAGE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
476 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
477 #define BCN_RSVDPAGE_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
478 #define BCN_RSVDPAGE_SET_CLASS(h2c_pkt, value)                                 \
479 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
480 #define BCN_RSVDPAGE_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
481 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
482 #define BCN_RSVDPAGE_GET_LOC_ROOT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
483 #define BCN_RSVDPAGE_SET_LOC_ROOT(h2c_pkt, value)                              \
484 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
485 #define BCN_RSVDPAGE_SET_LOC_ROOT_NO_CLR(h2c_pkt, value)                       \
486 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
487 #define BCN_RSVDPAGE_GET_LOC_VAP1(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
488 #define BCN_RSVDPAGE_SET_LOC_VAP1(h2c_pkt, value)                              \
489 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
490 #define BCN_RSVDPAGE_SET_LOC_VAP1_NO_CLR(h2c_pkt, value)                       \
491 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
492 #define BCN_RSVDPAGE_GET_LOC_VAP2(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
493 #define BCN_RSVDPAGE_SET_LOC_VAP2(h2c_pkt, value)                              \
494 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
495 #define BCN_RSVDPAGE_SET_LOC_VAP2_NO_CLR(h2c_pkt, value)                       \
496 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
497 #define BCN_RSVDPAGE_GET_LOC_VAP3(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
498 #define BCN_RSVDPAGE_SET_LOC_VAP3(h2c_pkt, value)                              \
499 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
500 #define BCN_RSVDPAGE_SET_LOC_VAP3_NO_CLR(h2c_pkt, value)                       \
501 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
502 #define BCN_RSVDPAGE_GET_LOC_VAP4(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
503 #define BCN_RSVDPAGE_SET_LOC_VAP4(h2c_pkt, value)                              \
504 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
505 #define BCN_RSVDPAGE_SET_LOC_VAP4_NO_CLR(h2c_pkt, value)                       \
506 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
507 #define PROBE_RSP_RSVDPAGE_GET_CMD_ID(h2c_pkt)                                 \
508 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
509 #define PROBE_RSP_RSVDPAGE_SET_CMD_ID(h2c_pkt, value)                          \
510 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
511 #define PROBE_RSP_RSVDPAGE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                   \
512 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
513 #define PROBE_RSP_RSVDPAGE_GET_CLASS(h2c_pkt)                                  \
514 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
515 #define PROBE_RSP_RSVDPAGE_SET_CLASS(h2c_pkt, value)                           \
516 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
517 #define PROBE_RSP_RSVDPAGE_SET_CLASS_NO_CLR(h2c_pkt, value)                    \
518 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
519 #define PROBE_RSP_RSVDPAGE_GET_LOC_ROOT(h2c_pkt)                               \
520 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
521 #define PROBE_RSP_RSVDPAGE_SET_LOC_ROOT(h2c_pkt, value)                        \
522 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
523 #define PROBE_RSP_RSVDPAGE_SET_LOC_ROOT_NO_CLR(h2c_pkt, value)                 \
524 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
525 #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP1(h2c_pkt)                               \
526 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
527 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP1(h2c_pkt, value)                        \
528 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
529 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP1_NO_CLR(h2c_pkt, value)                 \
530 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
531 #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP2(h2c_pkt)                               \
532 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
533 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP2(h2c_pkt, value)                        \
534 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
535 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP2_NO_CLR(h2c_pkt, value)                 \
536 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
537 #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP3(h2c_pkt)                               \
538 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
539 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP3(h2c_pkt, value)                        \
540 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
541 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP3_NO_CLR(h2c_pkt, value)                 \
542 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
543 #define PROBE_RSP_RSVDPAGE_GET_LOC_VAP4(h2c_pkt)                               \
544 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
545 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP4(h2c_pkt, value)                        \
546 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
547 #define PROBE_RSP_RSVDPAGE_SET_LOC_VAP4_NO_CLR(h2c_pkt, value)                 \
548 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
549 #define SINGLE_CHANNELSWITCH_GET_CMD_ID(h2c_pkt)                               \
550 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
551 #define SINGLE_CHANNELSWITCH_SET_CMD_ID(h2c_pkt, value)                        \
552 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
553 #define SINGLE_CHANNELSWITCH_SET_CMD_ID_NO_CLR(h2c_pkt, value)                 \
554 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
555 #define SINGLE_CHANNELSWITCH_GET_CLASS(h2c_pkt)                                \
556 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
557 #define SINGLE_CHANNELSWITCH_SET_CLASS(h2c_pkt, value)                         \
558 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
559 #define SINGLE_CHANNELSWITCH_SET_CLASS_NO_CLR(h2c_pkt, value)                  \
560 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
561 #define SINGLE_CHANNELSWITCH_GET_CHANNEL_NUM(h2c_pkt)                          \
562 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
563 #define SINGLE_CHANNELSWITCH_SET_CHANNEL_NUM(h2c_pkt, value)                   \
564 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
565 #define SINGLE_CHANNELSWITCH_SET_CHANNEL_NUM_NO_CLR(h2c_pkt, value)            \
566 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
567 #define SINGLE_CHANNELSWITCH_GET_BW(h2c_pkt)                                   \
568 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 2)
569 #define SINGLE_CHANNELSWITCH_SET_BW(h2c_pkt, value)                            \
570 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 2, value)
571 #define SINGLE_CHANNELSWITCH_SET_BW_NO_CLR(h2c_pkt, value)                     \
572 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 2, value)
573 #define SINGLE_CHANNELSWITCH_GET_BW40SC(h2c_pkt)                               \
574 	GET_H2C_FIELD(h2c_pkt + 0X00, 18, 3)
575 #define SINGLE_CHANNELSWITCH_SET_BW40SC(h2c_pkt, value)                        \
576 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 18, 3, value)
577 #define SINGLE_CHANNELSWITCH_SET_BW40SC_NO_CLR(h2c_pkt, value)                 \
578 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 18, 3, value)
579 #define SINGLE_CHANNELSWITCH_GET_BW80SC(h2c_pkt)                               \
580 	GET_H2C_FIELD(h2c_pkt + 0X00, 21, 3)
581 #define SINGLE_CHANNELSWITCH_SET_BW80SC(h2c_pkt, value)                        \
582 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 21, 3, value)
583 #define SINGLE_CHANNELSWITCH_SET_BW80SC_NO_CLR(h2c_pkt, value)                 \
584 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 21, 3, value)
585 #define SINGLE_CHANNELSWITCH_GET_RFE_TYPE(h2c_pkt)                             \
586 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 4)
587 #define SINGLE_CHANNELSWITCH_SET_RFE_TYPE(h2c_pkt, value)                      \
588 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 4, value)
589 #define SINGLE_CHANNELSWITCH_SET_RFE_TYPE_NO_CLR(h2c_pkt, value)               \
590 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 4, value)
591 #define SINGLE_CHANNELSWITCH_V2_GET_CMD_ID(h2c_pkt)                            \
592 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
593 #define SINGLE_CHANNELSWITCH_V2_SET_CMD_ID(h2c_pkt, value)                     \
594 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
595 #define SINGLE_CHANNELSWITCH_V2_SET_CMD_ID_NO_CLR(h2c_pkt, value)              \
596 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
597 #define SINGLE_CHANNELSWITCH_V2_GET_CLASS(h2c_pkt)                             \
598 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
599 #define SINGLE_CHANNELSWITCH_V2_SET_CLASS(h2c_pkt, value)                      \
600 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
601 #define SINGLE_CHANNELSWITCH_V2_SET_CLASS_NO_CLR(h2c_pkt, value)               \
602 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
603 #define SINGLE_CHANNELSWITCH_V2_GET_CENTRAL_CH(h2c_pkt)                        \
604 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
605 #define SINGLE_CHANNELSWITCH_V2_SET_CENTRAL_CH(h2c_pkt, value)                 \
606 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
607 #define SINGLE_CHANNELSWITCH_V2_SET_CENTRAL_CH_NO_CLR(h2c_pkt, value)          \
608 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
609 #define SINGLE_CHANNELSWITCH_V2_GET_PRIMARY_CH_IDX(h2c_pkt)                    \
610 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 4)
611 #define SINGLE_CHANNELSWITCH_V2_SET_PRIMARY_CH_IDX(h2c_pkt, value)             \
612 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 4, value)
613 #define SINGLE_CHANNELSWITCH_V2_SET_PRIMARY_CH_IDX_NO_CLR(h2c_pkt, value)      \
614 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 4, value)
615 #define SINGLE_CHANNELSWITCH_V2_GET_BW(h2c_pkt)                                \
616 	GET_H2C_FIELD(h2c_pkt + 0X00, 20, 4)
617 #define SINGLE_CHANNELSWITCH_V2_SET_BW(h2c_pkt, value)                         \
618 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 20, 4, value)
619 #define SINGLE_CHANNELSWITCH_V2_SET_BW_NO_CLR(h2c_pkt, value)                  \
620 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 20, 4, value)
621 #define SET_PWR_MODE_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
622 #define SET_PWR_MODE_SET_CMD_ID(h2c_pkt, value)                                \
623 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
624 #define SET_PWR_MODE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
625 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
626 #define SET_PWR_MODE_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
627 #define SET_PWR_MODE_SET_CLASS(h2c_pkt, value)                                 \
628 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
629 #define SET_PWR_MODE_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
630 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
631 #define SET_PWR_MODE_GET_MODE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 7)
632 #define SET_PWR_MODE_SET_MODE(h2c_pkt, value)                                  \
633 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 7, value)
634 #define SET_PWR_MODE_SET_MODE_NO_CLR(h2c_pkt, value)                           \
635 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 7, value)
636 #define SET_PWR_MODE_GET_CLK_REQUEST(h2c_pkt)                                  \
637 	GET_H2C_FIELD(h2c_pkt + 0X00, 15, 1)
638 #define SET_PWR_MODE_SET_CLK_REQUEST(h2c_pkt, value)                           \
639 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 15, 1, value)
640 #define SET_PWR_MODE_SET_CLK_REQUEST_NO_CLR(h2c_pkt, value)                    \
641 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 15, 1, value)
642 #define SET_PWR_MODE_GET_RLBM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 4)
643 #define SET_PWR_MODE_SET_RLBM(h2c_pkt, value)                                  \
644 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 4, value)
645 #define SET_PWR_MODE_SET_RLBM_NO_CLR(h2c_pkt, value)                           \
646 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 4, value)
647 #define SET_PWR_MODE_GET_SMART_PS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 20, 4)
648 #define SET_PWR_MODE_SET_SMART_PS(h2c_pkt, value)                              \
649 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 20, 4, value)
650 #define SET_PWR_MODE_SET_SMART_PS_NO_CLR(h2c_pkt, value)                       \
651 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 20, 4, value)
652 #define SET_PWR_MODE_GET_AWAKE_INTERVAL(h2c_pkt)                               \
653 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
654 #define SET_PWR_MODE_SET_AWAKE_INTERVAL(h2c_pkt, value)                        \
655 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
656 #define SET_PWR_MODE_SET_AWAKE_INTERVAL_NO_CLR(h2c_pkt, value)                 \
657 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
658 #define SET_PWR_MODE_GET_B_ALL_QUEUE_UAPSD(h2c_pkt)                            \
659 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 1)
660 #define SET_PWR_MODE_SET_B_ALL_QUEUE_UAPSD(h2c_pkt, value)                     \
661 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 1, value)
662 #define SET_PWR_MODE_SET_B_ALL_QUEUE_UAPSD_NO_CLR(h2c_pkt, value)              \
663 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 1, value)
664 #define SET_PWR_MODE_GET_BCN_EARLY_RPT(h2c_pkt)                                \
665 	GET_H2C_FIELD(h2c_pkt + 0X04, 2, 1)
666 #define SET_PWR_MODE_SET_BCN_EARLY_RPT(h2c_pkt, value)                         \
667 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 2, 1, value)
668 #define SET_PWR_MODE_SET_BCN_EARLY_RPT_NO_CLR(h2c_pkt, value)                  \
669 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 2, 1, value)
670 #define SET_PWR_MODE_GET_PORT_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 5, 3)
671 #define SET_PWR_MODE_SET_PORT_ID(h2c_pkt, value)                               \
672 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 5, 3, value)
673 #define SET_PWR_MODE_SET_PORT_ID_NO_CLR(h2c_pkt, value)                        \
674 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 5, 3, value)
675 #define SET_PWR_MODE_GET_PWR_STATE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
676 #define SET_PWR_MODE_SET_PWR_STATE(h2c_pkt, value)                             \
677 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
678 #define SET_PWR_MODE_SET_PWR_STATE_NO_CLR(h2c_pkt, value)                      \
679 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
680 #define SET_PWR_MODE_GET_RSVD_NOUSED(h2c_pkt)                                  \
681 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
682 #define SET_PWR_MODE_SET_RSVD_NOUSED(h2c_pkt, value)                           \
683 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
684 #define SET_PWR_MODE_SET_RSVD_NOUSED_NO_CLR(h2c_pkt, value)                    \
685 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
686 #define SET_PWR_MODE_GET_BCN_RECEIVING_TIME(h2c_pkt)                           \
687 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 5)
688 #define SET_PWR_MODE_SET_BCN_RECEIVING_TIME(h2c_pkt, value)                    \
689 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 5, value)
690 #define SET_PWR_MODE_SET_BCN_RECEIVING_TIME_NO_CLR(h2c_pkt, value)             \
691 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 5, value)
692 #define SET_PWR_MODE_GET_BCN_LISTEN_INTERVAL(h2c_pkt)                          \
693 	GET_H2C_FIELD(h2c_pkt + 0X04, 29, 2)
694 #define SET_PWR_MODE_SET_BCN_LISTEN_INTERVAL(h2c_pkt, value)                   \
695 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 29, 2, value)
696 #define SET_PWR_MODE_SET_BCN_LISTEN_INTERVAL_NO_CLR(h2c_pkt, value)            \
697 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 29, 2, value)
698 #define SET_PWR_MODE_GET_ADOPT_BCN_RECEIVING_TIME(h2c_pkt)                     \
699 	GET_H2C_FIELD(h2c_pkt + 0X04, 31, 1)
700 #define SET_PWR_MODE_SET_ADOPT_BCN_RECEIVING_TIME(h2c_pkt, value)              \
701 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 31, 1, value)
702 #define SET_PWR_MODE_SET_ADOPT_BCN_RECEIVING_TIME_NO_CLR(h2c_pkt, value)       \
703 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 31, 1, value)
704 #define PS_TUNING_PARA_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
705 #define PS_TUNING_PARA_SET_CMD_ID(h2c_pkt, value)                              \
706 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
707 #define PS_TUNING_PARA_SET_CMD_ID_NO_CLR(h2c_pkt, value)                       \
708 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
709 #define PS_TUNING_PARA_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
710 #define PS_TUNING_PARA_SET_CLASS(h2c_pkt, value)                               \
711 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
712 #define PS_TUNING_PARA_SET_CLASS_NO_CLR(h2c_pkt, value)                        \
713 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
714 #define PS_TUNING_PARA_GET_BCN_TO_LIMIT(h2c_pkt)                               \
715 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 7)
716 #define PS_TUNING_PARA_SET_BCN_TO_LIMIT(h2c_pkt, value)                        \
717 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 7, value)
718 #define PS_TUNING_PARA_SET_BCN_TO_LIMIT_NO_CLR(h2c_pkt, value)                 \
719 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 7, value)
720 #define PS_TUNING_PARA_GET_DTIM_TIME_OUT(h2c_pkt)                              \
721 	GET_H2C_FIELD(h2c_pkt + 0X00, 15, 1)
722 #define PS_TUNING_PARA_SET_DTIM_TIME_OUT(h2c_pkt, value)                       \
723 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 15, 1, value)
724 #define PS_TUNING_PARA_SET_DTIM_TIME_OUT_NO_CLR(h2c_pkt, value)                \
725 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 15, 1, value)
726 #define PS_TUNING_PARA_GET_PS_TIME_OUT(h2c_pkt)                                \
727 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 4)
728 #define PS_TUNING_PARA_SET_PS_TIME_OUT(h2c_pkt, value)                         \
729 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 4, value)
730 #define PS_TUNING_PARA_SET_PS_TIME_OUT_NO_CLR(h2c_pkt, value)                  \
731 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 4, value)
732 #define PS_TUNING_PARA_GET_ADOPT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
733 #define PS_TUNING_PARA_SET_ADOPT(h2c_pkt, value)                               \
734 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
735 #define PS_TUNING_PARA_SET_ADOPT_NO_CLR(h2c_pkt, value)                        \
736 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
737 #define PS_TUNING_PARA_II_GET_CMD_ID(h2c_pkt)                                  \
738 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
739 #define PS_TUNING_PARA_II_SET_CMD_ID(h2c_pkt, value)                           \
740 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
741 #define PS_TUNING_PARA_II_SET_CMD_ID_NO_CLR(h2c_pkt, value)                    \
742 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
743 #define PS_TUNING_PARA_II_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
744 #define PS_TUNING_PARA_II_SET_CLASS(h2c_pkt, value)                            \
745 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
746 #define PS_TUNING_PARA_II_SET_CLASS_NO_CLR(h2c_pkt, value)                     \
747 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
748 #define PS_TUNING_PARA_II_GET_BCN_TO_PERIOD(h2c_pkt)                           \
749 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 7)
750 #define PS_TUNING_PARA_II_SET_BCN_TO_PERIOD(h2c_pkt, value)                    \
751 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 7, value)
752 #define PS_TUNING_PARA_II_SET_BCN_TO_PERIOD_NO_CLR(h2c_pkt, value)             \
753 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 7, value)
754 #define PS_TUNING_PARA_II_GET_ADOPT(h2c_pkt)                                   \
755 	GET_H2C_FIELD(h2c_pkt + 0X00, 15, 1)
756 #define PS_TUNING_PARA_II_SET_ADOPT(h2c_pkt, value)                            \
757 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 15, 1, value)
758 #define PS_TUNING_PARA_II_SET_ADOPT_NO_CLR(h2c_pkt, value)                     \
759 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 15, 1, value)
760 #define PS_TUNING_PARA_II_GET_DRV_EARLY_IVL(h2c_pkt)                           \
761 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
762 #define PS_TUNING_PARA_II_SET_DRV_EARLY_IVL(h2c_pkt, value)                    \
763 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
764 #define PS_TUNING_PARA_II_SET_DRV_EARLY_IVL_NO_CLR(h2c_pkt, value)             \
765 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
766 #define PS_LPS_PARA_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
767 #define PS_LPS_PARA_SET_CMD_ID(h2c_pkt, value)                                 \
768 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
769 #define PS_LPS_PARA_SET_CMD_ID_NO_CLR(h2c_pkt, value)                          \
770 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
771 #define PS_LPS_PARA_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
772 #define PS_LPS_PARA_SET_CLASS(h2c_pkt, value)                                  \
773 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
774 #define PS_LPS_PARA_SET_CLASS_NO_CLR(h2c_pkt, value)                           \
775 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
776 #define PS_LPS_PARA_GET_LPS_CONTROL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
777 #define PS_LPS_PARA_SET_LPS_CONTROL(h2c_pkt, value)                            \
778 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
779 #define PS_LPS_PARA_SET_LPS_CONTROL_NO_CLR(h2c_pkt, value)                     \
780 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
781 #define P2P_PS_OFFLOAD_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
782 #define P2P_PS_OFFLOAD_SET_CMD_ID(h2c_pkt, value)                              \
783 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
784 #define P2P_PS_OFFLOAD_SET_CMD_ID_NO_CLR(h2c_pkt, value)                       \
785 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
786 #define P2P_PS_OFFLOAD_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
787 #define P2P_PS_OFFLOAD_SET_CLASS(h2c_pkt, value)                               \
788 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
789 #define P2P_PS_OFFLOAD_SET_CLASS_NO_CLR(h2c_pkt, value)                        \
790 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
791 #define P2P_PS_OFFLOAD_GET_OFFLOAD_EN(h2c_pkt)                                 \
792 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
793 #define P2P_PS_OFFLOAD_SET_OFFLOAD_EN(h2c_pkt, value)                          \
794 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
795 #define P2P_PS_OFFLOAD_SET_OFFLOAD_EN_NO_CLR(h2c_pkt, value)                   \
796 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
797 #define P2P_PS_OFFLOAD_GET_ROLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
798 #define P2P_PS_OFFLOAD_SET_ROLE(h2c_pkt, value)                                \
799 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
800 #define P2P_PS_OFFLOAD_SET_ROLE_NO_CLR(h2c_pkt, value)                         \
801 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
802 #define P2P_PS_OFFLOAD_GET_CTWINDOW_EN(h2c_pkt)                                \
803 	GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
804 #define P2P_PS_OFFLOAD_SET_CTWINDOW_EN(h2c_pkt, value)                         \
805 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
806 #define P2P_PS_OFFLOAD_SET_CTWINDOW_EN_NO_CLR(h2c_pkt, value)                  \
807 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
808 #define P2P_PS_OFFLOAD_GET_NOA0_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
809 #define P2P_PS_OFFLOAD_SET_NOA0_EN(h2c_pkt, value)                             \
810 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
811 #define P2P_PS_OFFLOAD_SET_NOA0_EN_NO_CLR(h2c_pkt, value)                      \
812 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
813 #define P2P_PS_OFFLOAD_GET_NOA1_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 12, 1)
814 #define P2P_PS_OFFLOAD_SET_NOA1_EN(h2c_pkt, value)                             \
815 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 1, value)
816 #define P2P_PS_OFFLOAD_SET_NOA1_EN_NO_CLR(h2c_pkt, value)                      \
817 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 1, value)
818 #define P2P_PS_OFFLOAD_GET_ALL_STA_SLEEP(h2c_pkt)                              \
819 	GET_H2C_FIELD(h2c_pkt + 0X00, 13, 1)
820 #define P2P_PS_OFFLOAD_SET_ALL_STA_SLEEP(h2c_pkt, value)                       \
821 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 13, 1, value)
822 #define P2P_PS_OFFLOAD_SET_ALL_STA_SLEEP_NO_CLR(h2c_pkt, value)                \
823 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 13, 1, value)
824 #define P2P_PS_OFFLOAD_GET_DISCOVERY(h2c_pkt)                                  \
825 	GET_H2C_FIELD(h2c_pkt + 0X00, 14, 1)
826 #define P2P_PS_OFFLOAD_SET_DISCOVERY(h2c_pkt, value)                           \
827 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 14, 1, value)
828 #define P2P_PS_OFFLOAD_SET_DISCOVERY_NO_CLR(h2c_pkt, value)                    \
829 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 14, 1, value)
830 #define PS_SCAN_EN_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
831 #define PS_SCAN_EN_SET_CMD_ID(h2c_pkt, value)                                  \
832 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
833 #define PS_SCAN_EN_SET_CMD_ID_NO_CLR(h2c_pkt, value)                           \
834 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
835 #define PS_SCAN_EN_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
836 #define PS_SCAN_EN_SET_CLASS(h2c_pkt, value)                                   \
837 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
838 #define PS_SCAN_EN_SET_CLASS_NO_CLR(h2c_pkt, value)                            \
839 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
840 #define PS_SCAN_EN_GET_ENABLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
841 #define PS_SCAN_EN_SET_ENABLE(h2c_pkt, value)                                  \
842 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
843 #define PS_SCAN_EN_SET_ENABLE_NO_CLR(h2c_pkt, value)                           \
844 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
845 #define SAP_PS_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
846 #define SAP_PS_SET_CMD_ID(h2c_pkt, value)                                      \
847 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
848 #define SAP_PS_SET_CMD_ID_NO_CLR(h2c_pkt, value)                               \
849 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
850 #define SAP_PS_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
851 #define SAP_PS_SET_CLASS(h2c_pkt, value)                                       \
852 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
853 #define SAP_PS_SET_CLASS_NO_CLR(h2c_pkt, value)                                \
854 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
855 #define SAP_PS_GET_ENABLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
856 #define SAP_PS_SET_ENABLE(h2c_pkt, value)                                      \
857 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
858 #define SAP_PS_SET_ENABLE_NO_CLR(h2c_pkt, value)                               \
859 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
860 #define SAP_PS_GET_EN_PS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
861 #define SAP_PS_SET_EN_PS(h2c_pkt, value)                                       \
862 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
863 #define SAP_PS_SET_EN_PS_NO_CLR(h2c_pkt, value)                                \
864 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
865 #define SAP_PS_GET_EN_LP_RX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
866 #define SAP_PS_SET_EN_LP_RX(h2c_pkt, value)                                    \
867 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
868 #define SAP_PS_SET_EN_LP_RX_NO_CLR(h2c_pkt, value)                             \
869 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
870 #define SAP_PS_GET_MANUAL_32K(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
871 #define SAP_PS_SET_MANUAL_32K(h2c_pkt, value)                                  \
872 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
873 #define SAP_PS_SET_MANUAL_32K_NO_CLR(h2c_pkt, value)                           \
874 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
875 #define SAP_PS_GET_DURATION(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
876 #define SAP_PS_SET_DURATION(h2c_pkt, value)                                    \
877 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
878 #define SAP_PS_SET_DURATION_NO_CLR(h2c_pkt, value)                             \
879 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
880 #define INACTIVE_PS_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
881 #define INACTIVE_PS_SET_CMD_ID(h2c_pkt, value)                                 \
882 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
883 #define INACTIVE_PS_SET_CMD_ID_NO_CLR(h2c_pkt, value)                          \
884 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
885 #define INACTIVE_PS_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
886 #define INACTIVE_PS_SET_CLASS(h2c_pkt, value)                                  \
887 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
888 #define INACTIVE_PS_SET_CLASS_NO_CLR(h2c_pkt, value)                           \
889 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
890 #define INACTIVE_PS_GET_ENABLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
891 #define INACTIVE_PS_SET_ENABLE(h2c_pkt, value)                                 \
892 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
893 #define INACTIVE_PS_SET_ENABLE_NO_CLR(h2c_pkt, value)                          \
894 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
895 #define INACTIVE_PS_GET_IGNORE_PS_CONDITION(h2c_pkt)                           \
896 	GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
897 #define INACTIVE_PS_SET_IGNORE_PS_CONDITION(h2c_pkt, value)                    \
898 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
899 #define INACTIVE_PS_SET_IGNORE_PS_CONDITION_NO_CLR(h2c_pkt, value)             \
900 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
901 #define INACTIVE_PS_GET_FREQUENCY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
902 #define INACTIVE_PS_SET_FREQUENCY(h2c_pkt, value)                              \
903 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
904 #define INACTIVE_PS_SET_FREQUENCY_NO_CLR(h2c_pkt, value)                       \
905 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
906 #define INACTIVE_PS_GET_DURATION(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
907 #define INACTIVE_PS_SET_DURATION(h2c_pkt, value)                               \
908 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
909 #define INACTIVE_PS_SET_DURATION_NO_CLR(h2c_pkt, value)                        \
910 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
911 #define MACID_CFG_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
912 #define MACID_CFG_SET_CMD_ID(h2c_pkt, value)                                   \
913 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
914 #define MACID_CFG_SET_CMD_ID_NO_CLR(h2c_pkt, value)                            \
915 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
916 #define MACID_CFG_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
917 #define MACID_CFG_SET_CLASS(h2c_pkt, value)                                    \
918 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
919 #define MACID_CFG_SET_CLASS_NO_CLR(h2c_pkt, value)                             \
920 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
921 #define MACID_CFG_GET_MAC_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
922 #define MACID_CFG_SET_MAC_ID(h2c_pkt, value)                                   \
923 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
924 #define MACID_CFG_SET_MAC_ID_NO_CLR(h2c_pkt, value)                            \
925 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
926 #define MACID_CFG_GET_RATE_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 5)
927 #define MACID_CFG_SET_RATE_ID(h2c_pkt, value)                                  \
928 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 5, value)
929 #define MACID_CFG_SET_RATE_ID_NO_CLR(h2c_pkt, value)                           \
930 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 5, value)
931 #define MACID_CFG_GET_INIT_RATE_LV(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 21, 2)
932 #define MACID_CFG_SET_INIT_RATE_LV(h2c_pkt, value)                             \
933 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 21, 2, value)
934 #define MACID_CFG_SET_INIT_RATE_LV_NO_CLR(h2c_pkt, value)                      \
935 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 21, 2, value)
936 #define MACID_CFG_GET_SGI(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 23, 1)
937 #define MACID_CFG_SET_SGI(h2c_pkt, value)                                      \
938 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 23, 1, value)
939 #define MACID_CFG_SET_SGI_NO_CLR(h2c_pkt, value)                               \
940 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 23, 1, value)
941 #define MACID_CFG_GET_BW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 2)
942 #define MACID_CFG_SET_BW(h2c_pkt, value)                                       \
943 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 2, value)
944 #define MACID_CFG_SET_BW_NO_CLR(h2c_pkt, value)                                \
945 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 2, value)
946 #define MACID_CFG_GET_LDPC_CAP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 26, 1)
947 #define MACID_CFG_SET_LDPC_CAP(h2c_pkt, value)                                 \
948 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 26, 1, value)
949 #define MACID_CFG_SET_LDPC_CAP_NO_CLR(h2c_pkt, value)                          \
950 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 26, 1, value)
951 #define MACID_CFG_GET_NO_UPDATE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 27, 1)
952 #define MACID_CFG_SET_NO_UPDATE(h2c_pkt, value)                                \
953 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 27, 1, value)
954 #define MACID_CFG_SET_NO_UPDATE_NO_CLR(h2c_pkt, value)                         \
955 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 27, 1, value)
956 #define MACID_CFG_GET_WHT_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 28, 2)
957 #define MACID_CFG_SET_WHT_EN(h2c_pkt, value)                                   \
958 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 28, 2, value)
959 #define MACID_CFG_SET_WHT_EN_NO_CLR(h2c_pkt, value)                            \
960 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 28, 2, value)
961 #define MACID_CFG_GET_DISPT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 30, 1)
962 #define MACID_CFG_SET_DISPT(h2c_pkt, value)                                    \
963 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 30, 1, value)
964 #define MACID_CFG_SET_DISPT_NO_CLR(h2c_pkt, value)                             \
965 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 30, 1, value)
966 #define MACID_CFG_GET_DISRA(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 31, 1)
967 #define MACID_CFG_SET_DISRA(h2c_pkt, value)                                    \
968 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 31, 1, value)
969 #define MACID_CFG_SET_DISRA_NO_CLR(h2c_pkt, value)                             \
970 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 31, 1, value)
971 #define MACID_CFG_GET_RATE_MASK7_0(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
972 #define MACID_CFG_SET_RATE_MASK7_0(h2c_pkt, value)                             \
973 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
974 #define MACID_CFG_SET_RATE_MASK7_0_NO_CLR(h2c_pkt, value)                      \
975 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
976 #define MACID_CFG_GET_RATE_MASK15_8(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
977 #define MACID_CFG_SET_RATE_MASK15_8(h2c_pkt, value)                            \
978 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
979 #define MACID_CFG_SET_RATE_MASK15_8_NO_CLR(h2c_pkt, value)                     \
980 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
981 #define MACID_CFG_GET_RATE_MASK23_16(h2c_pkt)                                  \
982 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
983 #define MACID_CFG_SET_RATE_MASK23_16(h2c_pkt, value)                           \
984 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
985 #define MACID_CFG_SET_RATE_MASK23_16_NO_CLR(h2c_pkt, value)                    \
986 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
987 #define MACID_CFG_GET_RATE_MASK31_24(h2c_pkt)                                  \
988 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
989 #define MACID_CFG_SET_RATE_MASK31_24(h2c_pkt, value)                           \
990 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
991 #define MACID_CFG_SET_RATE_MASK31_24_NO_CLR(h2c_pkt, value)                    \
992 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
993 #define TXBF_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
994 #define TXBF_SET_CMD_ID(h2c_pkt, value)                                        \
995 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
996 #define TXBF_SET_CMD_ID_NO_CLR(h2c_pkt, value)                                 \
997 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
998 #define TXBF_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
999 #define TXBF_SET_CLASS(h2c_pkt, value)                                         \
1000 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1001 #define TXBF_SET_CLASS_NO_CLR(h2c_pkt, value)                                  \
1002 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1003 #define TXBF_GET_NDPA0_HEAD_PAGE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1004 #define TXBF_SET_NDPA0_HEAD_PAGE(h2c_pkt, value)                               \
1005 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1006 #define TXBF_SET_NDPA0_HEAD_PAGE_NO_CLR(h2c_pkt, value)                        \
1007 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1008 #define TXBF_GET_NDPA1_HEAD_PAGE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1009 #define TXBF_SET_NDPA1_HEAD_PAGE(h2c_pkt, value)                               \
1010 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1011 #define TXBF_SET_NDPA1_HEAD_PAGE_NO_CLR(h2c_pkt, value)                        \
1012 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1013 #define TXBF_GET_PERIOD_0(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1014 #define TXBF_SET_PERIOD_0(h2c_pkt, value)                                      \
1015 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1016 #define TXBF_SET_PERIOD_0_NO_CLR(h2c_pkt, value)                               \
1017 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1018 #define RSSI_SETTING_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1019 #define RSSI_SETTING_SET_CMD_ID(h2c_pkt, value)                                \
1020 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1021 #define RSSI_SETTING_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
1022 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1023 #define RSSI_SETTING_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1024 #define RSSI_SETTING_SET_CLASS(h2c_pkt, value)                                 \
1025 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1026 #define RSSI_SETTING_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
1027 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1028 #define RSSI_SETTING_GET_MAC_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1029 #define RSSI_SETTING_SET_MAC_ID(h2c_pkt, value)                                \
1030 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1031 #define RSSI_SETTING_SET_MAC_ID_NO_CLR(h2c_pkt, value)                         \
1032 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1033 #define RSSI_SETTING_GET_RSSI(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 7)
1034 #define RSSI_SETTING_SET_RSSI(h2c_pkt, value)                                  \
1035 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 7, value)
1036 #define RSSI_SETTING_SET_RSSI_NO_CLR(h2c_pkt, value)                           \
1037 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 7, value)
1038 #define RSSI_SETTING_GET_RA_INFO(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1039 #define RSSI_SETTING_SET_RA_INFO(h2c_pkt, value)                               \
1040 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1041 #define RSSI_SETTING_SET_RA_INFO_NO_CLR(h2c_pkt, value)                        \
1042 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1043 #define AP_REQ_TXRPT_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1044 #define AP_REQ_TXRPT_SET_CMD_ID(h2c_pkt, value)                                \
1045 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1046 #define AP_REQ_TXRPT_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
1047 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1048 #define AP_REQ_TXRPT_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1049 #define AP_REQ_TXRPT_SET_CLASS(h2c_pkt, value)                                 \
1050 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1051 #define AP_REQ_TXRPT_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
1052 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1053 #define AP_REQ_TXRPT_GET_STA1_MACID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1054 #define AP_REQ_TXRPT_SET_STA1_MACID(h2c_pkt, value)                            \
1055 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1056 #define AP_REQ_TXRPT_SET_STA1_MACID_NO_CLR(h2c_pkt, value)                     \
1057 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1058 #define AP_REQ_TXRPT_GET_STA2_MACID(h2c_pkt)                                   \
1059 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1060 #define AP_REQ_TXRPT_SET_STA2_MACID(h2c_pkt, value)                            \
1061 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1062 #define AP_REQ_TXRPT_SET_STA2_MACID_NO_CLR(h2c_pkt, value)                     \
1063 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1064 #define AP_REQ_TXRPT_GET_RTY_OK_TOTAL(h2c_pkt)                                 \
1065 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 1)
1066 #define AP_REQ_TXRPT_SET_RTY_OK_TOTAL(h2c_pkt, value)                          \
1067 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 1, value)
1068 #define AP_REQ_TXRPT_SET_RTY_OK_TOTAL_NO_CLR(h2c_pkt, value)                   \
1069 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 1, value)
1070 #define AP_REQ_TXRPT_GET_RTY_CNT_MACID(h2c_pkt)                                \
1071 	GET_H2C_FIELD(h2c_pkt + 0X00, 25, 1)
1072 #define AP_REQ_TXRPT_SET_RTY_CNT_MACID(h2c_pkt, value)                         \
1073 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 25, 1, value)
1074 #define AP_REQ_TXRPT_SET_RTY_CNT_MACID_NO_CLR(h2c_pkt, value)                  \
1075 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 25, 1, value)
1076 #define INIT_RATE_COLLECTION_GET_CMD_ID(h2c_pkt)                               \
1077 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1078 #define INIT_RATE_COLLECTION_SET_CMD_ID(h2c_pkt, value)                        \
1079 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1080 #define INIT_RATE_COLLECTION_SET_CMD_ID_NO_CLR(h2c_pkt, value)                 \
1081 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1082 #define INIT_RATE_COLLECTION_GET_CLASS(h2c_pkt)                                \
1083 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1084 #define INIT_RATE_COLLECTION_SET_CLASS(h2c_pkt, value)                         \
1085 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1086 #define INIT_RATE_COLLECTION_SET_CLASS_NO_CLR(h2c_pkt, value)                  \
1087 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1088 #define INIT_RATE_COLLECTION_GET_STA1_MACID(h2c_pkt)                           \
1089 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1090 #define INIT_RATE_COLLECTION_SET_STA1_MACID(h2c_pkt, value)                    \
1091 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1092 #define INIT_RATE_COLLECTION_SET_STA1_MACID_NO_CLR(h2c_pkt, value)             \
1093 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1094 #define INIT_RATE_COLLECTION_GET_STA2_MACID(h2c_pkt)                           \
1095 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1096 #define INIT_RATE_COLLECTION_SET_STA2_MACID(h2c_pkt, value)                    \
1097 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1098 #define INIT_RATE_COLLECTION_SET_STA2_MACID_NO_CLR(h2c_pkt, value)             \
1099 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1100 #define INIT_RATE_COLLECTION_GET_STA3_MACID(h2c_pkt)                           \
1101 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1102 #define INIT_RATE_COLLECTION_SET_STA3_MACID(h2c_pkt, value)                    \
1103 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1104 #define INIT_RATE_COLLECTION_SET_STA3_MACID_NO_CLR(h2c_pkt, value)             \
1105 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1106 #define INIT_RATE_COLLECTION_GET_STA4_MACID(h2c_pkt)                           \
1107 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1108 #define INIT_RATE_COLLECTION_SET_STA4_MACID(h2c_pkt, value)                    \
1109 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1110 #define INIT_RATE_COLLECTION_SET_STA4_MACID_NO_CLR(h2c_pkt, value)             \
1111 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1112 #define INIT_RATE_COLLECTION_GET_STA5_MACID(h2c_pkt)                           \
1113 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
1114 #define INIT_RATE_COLLECTION_SET_STA5_MACID(h2c_pkt, value)                    \
1115 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
1116 #define INIT_RATE_COLLECTION_SET_STA5_MACID_NO_CLR(h2c_pkt, value)             \
1117 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
1118 #define INIT_RATE_COLLECTION_GET_STA6_MACID(h2c_pkt)                           \
1119 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
1120 #define INIT_RATE_COLLECTION_SET_STA6_MACID(h2c_pkt, value)                    \
1121 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
1122 #define INIT_RATE_COLLECTION_SET_STA6_MACID_NO_CLR(h2c_pkt, value)             \
1123 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
1124 #define INIT_RATE_COLLECTION_GET_STA7_MACID(h2c_pkt)                           \
1125 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
1126 #define INIT_RATE_COLLECTION_SET_STA7_MACID(h2c_pkt, value)                    \
1127 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
1128 #define INIT_RATE_COLLECTION_SET_STA7_MACID_NO_CLR(h2c_pkt, value)             \
1129 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
1130 #define IQK_OFFLOAD_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1131 #define IQK_OFFLOAD_SET_CMD_ID(h2c_pkt, value)                                 \
1132 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1133 #define IQK_OFFLOAD_SET_CMD_ID_NO_CLR(h2c_pkt, value)                          \
1134 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1135 #define IQK_OFFLOAD_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1136 #define IQK_OFFLOAD_SET_CLASS(h2c_pkt, value)                                  \
1137 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1138 #define IQK_OFFLOAD_SET_CLASS_NO_CLR(h2c_pkt, value)                           \
1139 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1140 #define IQK_OFFLOAD_GET_CHANNEL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1141 #define IQK_OFFLOAD_SET_CHANNEL(h2c_pkt, value)                                \
1142 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1143 #define IQK_OFFLOAD_SET_CHANNEL_NO_CLR(h2c_pkt, value)                         \
1144 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1145 #define IQK_OFFLOAD_GET_BWBAND(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1146 #define IQK_OFFLOAD_SET_BWBAND(h2c_pkt, value)                                 \
1147 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1148 #define IQK_OFFLOAD_SET_BWBAND_NO_CLR(h2c_pkt, value)                          \
1149 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1150 #define IQK_OFFLOAD_GET_EXTPALNA(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1151 #define IQK_OFFLOAD_SET_EXTPALNA(h2c_pkt, value)                               \
1152 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1153 #define IQK_OFFLOAD_SET_EXTPALNA_NO_CLR(h2c_pkt, value)                        \
1154 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1155 #define MACID_CFG_3SS_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1156 #define MACID_CFG_3SS_SET_CMD_ID(h2c_pkt, value)                               \
1157 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1158 #define MACID_CFG_3SS_SET_CMD_ID_NO_CLR(h2c_pkt, value)                        \
1159 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1160 #define MACID_CFG_3SS_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1161 #define MACID_CFG_3SS_SET_CLASS(h2c_pkt, value)                                \
1162 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1163 #define MACID_CFG_3SS_SET_CLASS_NO_CLR(h2c_pkt, value)                         \
1164 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1165 #define MACID_CFG_3SS_GET_MACID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1166 #define MACID_CFG_3SS_SET_MACID(h2c_pkt, value)                                \
1167 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1168 #define MACID_CFG_3SS_SET_MACID_NO_CLR(h2c_pkt, value)                         \
1169 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1170 #define MACID_CFG_3SS_GET_RATE_MASK_39_32(h2c_pkt)                             \
1171 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1172 #define MACID_CFG_3SS_SET_RATE_MASK_39_32(h2c_pkt, value)                      \
1173 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1174 #define MACID_CFG_3SS_SET_RATE_MASK_39_32_NO_CLR(h2c_pkt, value)               \
1175 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1176 #define MACID_CFG_3SS_GET_RATE_MASK_47_40(h2c_pkt)                             \
1177 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
1178 #define MACID_CFG_3SS_SET_RATE_MASK_47_40(h2c_pkt, value)                      \
1179 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
1180 #define MACID_CFG_3SS_SET_RATE_MASK_47_40_NO_CLR(h2c_pkt, value)               \
1181 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
1182 #define RA_PARA_ADJUST_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1183 #define RA_PARA_ADJUST_SET_CMD_ID(h2c_pkt, value)                              \
1184 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1185 #define RA_PARA_ADJUST_SET_CMD_ID_NO_CLR(h2c_pkt, value)                       \
1186 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1187 #define RA_PARA_ADJUST_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1188 #define RA_PARA_ADJUST_SET_CLASS(h2c_pkt, value)                               \
1189 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1190 #define RA_PARA_ADJUST_SET_CLASS_NO_CLR(h2c_pkt, value)                        \
1191 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1192 #define RA_PARA_ADJUST_GET_MAC_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1193 #define RA_PARA_ADJUST_SET_MAC_ID(h2c_pkt, value)                              \
1194 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1195 #define RA_PARA_ADJUST_SET_MAC_ID_NO_CLR(h2c_pkt, value)                       \
1196 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1197 #define RA_PARA_ADJUST_GET_PARAMETER_INDEX(h2c_pkt)                            \
1198 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1199 #define RA_PARA_ADJUST_SET_PARAMETER_INDEX(h2c_pkt, value)                     \
1200 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1201 #define RA_PARA_ADJUST_SET_PARAMETER_INDEX_NO_CLR(h2c_pkt, value)              \
1202 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1203 #define RA_PARA_ADJUST_GET_RATE_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1204 #define RA_PARA_ADJUST_SET_RATE_ID(h2c_pkt, value)                             \
1205 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1206 #define RA_PARA_ADJUST_SET_RATE_ID_NO_CLR(h2c_pkt, value)                      \
1207 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1208 #define RA_PARA_ADJUST_GET_VALUE_BYTE0(h2c_pkt)                                \
1209 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1210 #define RA_PARA_ADJUST_SET_VALUE_BYTE0(h2c_pkt, value)                         \
1211 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1212 #define RA_PARA_ADJUST_SET_VALUE_BYTE0_NO_CLR(h2c_pkt, value)                  \
1213 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1214 #define RA_PARA_ADJUST_GET_VALUE_BYTE1(h2c_pkt)                                \
1215 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
1216 #define RA_PARA_ADJUST_SET_VALUE_BYTE1(h2c_pkt, value)                         \
1217 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
1218 #define RA_PARA_ADJUST_SET_VALUE_BYTE1_NO_CLR(h2c_pkt, value)                  \
1219 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
1220 #define RA_PARA_ADJUST_GET_ASK_FW_FOR_FW_PARA(h2c_pkt)                         \
1221 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
1222 #define RA_PARA_ADJUST_SET_ASK_FW_FOR_FW_PARA(h2c_pkt, value)                  \
1223 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
1224 #define RA_PARA_ADJUST_SET_ASK_FW_FOR_FW_PARA_NO_CLR(h2c_pkt, value)           \
1225 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
1226 #define REQ_TXRPT_ACQ_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1227 #define REQ_TXRPT_ACQ_SET_CMD_ID(h2c_pkt, value)                               \
1228 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1229 #define REQ_TXRPT_ACQ_SET_CMD_ID_NO_CLR(h2c_pkt, value)                        \
1230 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1231 #define REQ_TXRPT_ACQ_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1232 #define REQ_TXRPT_ACQ_SET_CLASS(h2c_pkt, value)                                \
1233 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1234 #define REQ_TXRPT_ACQ_SET_CLASS_NO_CLR(h2c_pkt, value)                         \
1235 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1236 #define REQ_TXRPT_ACQ_GET_STA1_MACID(h2c_pkt)                                  \
1237 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1238 #define REQ_TXRPT_ACQ_SET_STA1_MACID(h2c_pkt, value)                           \
1239 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1240 #define REQ_TXRPT_ACQ_SET_STA1_MACID_NO_CLR(h2c_pkt, value)                    \
1241 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1242 #define REQ_TXRPT_ACQ_GET_PASS_DROP_SEL(h2c_pkt)                               \
1243 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1244 #define REQ_TXRPT_ACQ_SET_PASS_DROP_SEL(h2c_pkt, value)                        \
1245 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1246 #define REQ_TXRPT_ACQ_SET_PASS_DROP_SEL_NO_CLR(h2c_pkt, value)                 \
1247 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1248 #define WWLAN_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1249 #define WWLAN_SET_CMD_ID(h2c_pkt, value)                                       \
1250 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1251 #define WWLAN_SET_CMD_ID_NO_CLR(h2c_pkt, value)                                \
1252 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1253 #define WWLAN_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1254 #define WWLAN_SET_CLASS(h2c_pkt, value)                                        \
1255 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1256 #define WWLAN_SET_CLASS_NO_CLR(h2c_pkt, value)                                 \
1257 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1258 #define WWLAN_GET_FUNC_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
1259 #define WWLAN_SET_FUNC_EN(h2c_pkt, value)                                      \
1260 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
1261 #define WWLAN_SET_FUNC_EN_NO_CLR(h2c_pkt, value)                               \
1262 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
1263 #define WWLAN_GET_PATTERM_MAT_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
1264 #define WWLAN_SET_PATTERM_MAT_EN(h2c_pkt, value)                               \
1265 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
1266 #define WWLAN_SET_PATTERM_MAT_EN_NO_CLR(h2c_pkt, value)                        \
1267 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
1268 #define WWLAN_GET_MAGIC_PKT_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
1269 #define WWLAN_SET_MAGIC_PKT_EN(h2c_pkt, value)                                 \
1270 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
1271 #define WWLAN_SET_MAGIC_PKT_EN_NO_CLR(h2c_pkt, value)                          \
1272 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
1273 #define WWLAN_GET_UNICAST_WAKEUP_EN(h2c_pkt)                                   \
1274 	GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
1275 #define WWLAN_SET_UNICAST_WAKEUP_EN(h2c_pkt, value)                            \
1276 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
1277 #define WWLAN_SET_UNICAST_WAKEUP_EN_NO_CLR(h2c_pkt, value)                     \
1278 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
1279 #define WWLAN_GET_ALL_PKT_DROP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 12, 1)
1280 #define WWLAN_SET_ALL_PKT_DROP(h2c_pkt, value)                                 \
1281 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 1, value)
1282 #define WWLAN_SET_ALL_PKT_DROP_NO_CLR(h2c_pkt, value)                          \
1283 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 1, value)
1284 #define WWLAN_GET_GPIO_ACTIVE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 13, 1)
1285 #define WWLAN_SET_GPIO_ACTIVE(h2c_pkt, value)                                  \
1286 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 13, 1, value)
1287 #define WWLAN_SET_GPIO_ACTIVE_NO_CLR(h2c_pkt, value)                           \
1288 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 13, 1, value)
1289 #define WWLAN_GET_REKEY_WAKEUP_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 14, 1)
1290 #define WWLAN_SET_REKEY_WAKEUP_EN(h2c_pkt, value)                              \
1291 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 14, 1, value)
1292 #define WWLAN_SET_REKEY_WAKEUP_EN_NO_CLR(h2c_pkt, value)                       \
1293 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 14, 1, value)
1294 #define WWLAN_GET_DEAUTH_WAKEUP_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 15, 1)
1295 #define WWLAN_SET_DEAUTH_WAKEUP_EN(h2c_pkt, value)                             \
1296 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 15, 1, value)
1297 #define WWLAN_SET_DEAUTH_WAKEUP_EN_NO_CLR(h2c_pkt, value)                      \
1298 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 15, 1, value)
1299 #define WWLAN_GET_GPIO_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 16, 7)
1300 #define WWLAN_SET_GPIO_NUM(h2c_pkt, value)                                     \
1301 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 7, value)
1302 #define WWLAN_SET_GPIO_NUM_NO_CLR(h2c_pkt, value)                              \
1303 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 7, value)
1304 #define WWLAN_GET_DATAPIN_WAKEUP_EN(h2c_pkt)                                   \
1305 	GET_H2C_FIELD(h2c_pkt + 0X00, 23, 1)
1306 #define WWLAN_SET_DATAPIN_WAKEUP_EN(h2c_pkt, value)                            \
1307 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 23, 1, value)
1308 #define WWLAN_SET_DATAPIN_WAKEUP_EN_NO_CLR(h2c_pkt, value)                     \
1309 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 23, 1, value)
1310 #define WWLAN_GET_GPIO_DURATION(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1311 #define WWLAN_SET_GPIO_DURATION(h2c_pkt, value)                                \
1312 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1313 #define WWLAN_SET_GPIO_DURATION_NO_CLR(h2c_pkt, value)                         \
1314 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1315 #define WWLAN_GET_GPIO_PLUS_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 0, 1)
1316 #define WWLAN_SET_GPIO_PLUS_EN(h2c_pkt, value)                                 \
1317 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 1, value)
1318 #define WWLAN_SET_GPIO_PLUS_EN_NO_CLR(h2c_pkt, value)                          \
1319 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 1, value)
1320 #define WWLAN_GET_GPIO_PULSE_COUNT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 1, 7)
1321 #define WWLAN_SET_GPIO_PULSE_COUNT(h2c_pkt, value)                             \
1322 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 1, 7, value)
1323 #define WWLAN_SET_GPIO_PULSE_COUNT_NO_CLR(h2c_pkt, value)                      \
1324 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 1, 7, value)
1325 #define WWLAN_GET_DISABLE_UPHY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 8, 1)
1326 #define WWLAN_SET_DISABLE_UPHY(h2c_pkt, value)                                 \
1327 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 1, value)
1328 #define WWLAN_SET_DISABLE_UPHY_NO_CLR(h2c_pkt, value)                          \
1329 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 1, value)
1330 #define WWLAN_GET_HST2DEV_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 9, 1)
1331 #define WWLAN_SET_HST2DEV_EN(h2c_pkt, value)                                   \
1332 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 9, 1, value)
1333 #define WWLAN_SET_HST2DEV_EN_NO_CLR(h2c_pkt, value)                            \
1334 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 9, 1, value)
1335 #define WWLAN_GET_GPIO_DURATION_MS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X04, 10, 1)
1336 #define WWLAN_SET_GPIO_DURATION_MS(h2c_pkt, value)                             \
1337 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 10, 1, value)
1338 #define WWLAN_SET_GPIO_DURATION_MS_NO_CLR(h2c_pkt, value)                      \
1339 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 10, 1, value)
1340 #define REMOTE_WAKE_CTRL_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1341 #define REMOTE_WAKE_CTRL_SET_CMD_ID(h2c_pkt, value)                            \
1342 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1343 #define REMOTE_WAKE_CTRL_SET_CMD_ID_NO_CLR(h2c_pkt, value)                     \
1344 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1345 #define REMOTE_WAKE_CTRL_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1346 #define REMOTE_WAKE_CTRL_SET_CLASS(h2c_pkt, value)                             \
1347 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1348 #define REMOTE_WAKE_CTRL_SET_CLASS_NO_CLR(h2c_pkt, value)                      \
1349 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1350 #define REMOTE_WAKE_CTRL_GET_REMOTE_WAKE_CTRL_EN(h2c_pkt)                      \
1351 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
1352 #define REMOTE_WAKE_CTRL_SET_REMOTE_WAKE_CTRL_EN(h2c_pkt, value)               \
1353 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
1354 #define REMOTE_WAKE_CTRL_SET_REMOTE_WAKE_CTRL_EN_NO_CLR(h2c_pkt, value)        \
1355 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
1356 #define REMOTE_WAKE_CTRL_GET_ARP_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 9, 1)
1357 #define REMOTE_WAKE_CTRL_SET_ARP_EN(h2c_pkt, value)                            \
1358 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 9, 1, value)
1359 #define REMOTE_WAKE_CTRL_SET_ARP_EN_NO_CLR(h2c_pkt, value)                     \
1360 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 9, 1, value)
1361 #define REMOTE_WAKE_CTRL_GET_NDP_EN(h2c_pkt)                                   \
1362 	GET_H2C_FIELD(h2c_pkt + 0X00, 10, 1)
1363 #define REMOTE_WAKE_CTRL_SET_NDP_EN(h2c_pkt, value)                            \
1364 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 10, 1, value)
1365 #define REMOTE_WAKE_CTRL_SET_NDP_EN_NO_CLR(h2c_pkt, value)                     \
1366 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 10, 1, value)
1367 #define REMOTE_WAKE_CTRL_GET_GTK_EN(h2c_pkt)                                   \
1368 	GET_H2C_FIELD(h2c_pkt + 0X00, 11, 1)
1369 #define REMOTE_WAKE_CTRL_SET_GTK_EN(h2c_pkt, value)                            \
1370 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 11, 1, value)
1371 #define REMOTE_WAKE_CTRL_SET_GTK_EN_NO_CLR(h2c_pkt, value)                     \
1372 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 11, 1, value)
1373 #define REMOTE_WAKE_CTRL_GET_NLO_OFFLOAD_EN(h2c_pkt)                           \
1374 	GET_H2C_FIELD(h2c_pkt + 0X00, 12, 1)
1375 #define REMOTE_WAKE_CTRL_SET_NLO_OFFLOAD_EN(h2c_pkt, value)                    \
1376 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 1, value)
1377 #define REMOTE_WAKE_CTRL_SET_NLO_OFFLOAD_EN_NO_CLR(h2c_pkt, value)             \
1378 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 1, value)
1379 #define REMOTE_WAKE_CTRL_GET_REAL_WOW_V1_EN(h2c_pkt)                           \
1380 	GET_H2C_FIELD(h2c_pkt + 0X00, 13, 1)
1381 #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V1_EN(h2c_pkt, value)                    \
1382 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 13, 1, value)
1383 #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V1_EN_NO_CLR(h2c_pkt, value)             \
1384 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 13, 1, value)
1385 #define REMOTE_WAKE_CTRL_GET_REAL_WOW_V2_EN(h2c_pkt)                           \
1386 	GET_H2C_FIELD(h2c_pkt + 0X00, 14, 1)
1387 #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V2_EN(h2c_pkt, value)                    \
1388 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 14, 1, value)
1389 #define REMOTE_WAKE_CTRL_SET_REAL_WOW_V2_EN_NO_CLR(h2c_pkt, value)             \
1390 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 14, 1, value)
1391 #define REMOTE_WAKE_CTRL_GET_FW_UNICAST(h2c_pkt)                               \
1392 	GET_H2C_FIELD(h2c_pkt + 0X00, 15, 1)
1393 #define REMOTE_WAKE_CTRL_SET_FW_UNICAST(h2c_pkt, value)                        \
1394 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 15, 1, value)
1395 #define REMOTE_WAKE_CTRL_SET_FW_UNICAST_NO_CLR(h2c_pkt, value)                 \
1396 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 15, 1, value)
1397 #define REMOTE_WAKE_CTRL_GET_P2P_OFFLOAD_EN(h2c_pkt)                           \
1398 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 1)
1399 #define REMOTE_WAKE_CTRL_SET_P2P_OFFLOAD_EN(h2c_pkt, value)                    \
1400 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 1, value)
1401 #define REMOTE_WAKE_CTRL_SET_P2P_OFFLOAD_EN_NO_CLR(h2c_pkt, value)             \
1402 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 1, value)
1403 #define REMOTE_WAKE_CTRL_GET_RUNTIME_PM_EN(h2c_pkt)                            \
1404 	GET_H2C_FIELD(h2c_pkt + 0X00, 17, 1)
1405 #define REMOTE_WAKE_CTRL_SET_RUNTIME_PM_EN(h2c_pkt, value)                     \
1406 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 17, 1, value)
1407 #define REMOTE_WAKE_CTRL_SET_RUNTIME_PM_EN_NO_CLR(h2c_pkt, value)              \
1408 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 17, 1, value)
1409 #define REMOTE_WAKE_CTRL_GET_NET_BIOS_DROP_EN(h2c_pkt)                         \
1410 	GET_H2C_FIELD(h2c_pkt + 0X00, 18, 1)
1411 #define REMOTE_WAKE_CTRL_SET_NET_BIOS_DROP_EN(h2c_pkt, value)                  \
1412 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 18, 1, value)
1413 #define REMOTE_WAKE_CTRL_SET_NET_BIOS_DROP_EN_NO_CLR(h2c_pkt, value)           \
1414 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 18, 1, value)
1415 #define REMOTE_WAKE_CTRL_GET_ARP_ACTION(h2c_pkt)                               \
1416 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 1)
1417 #define REMOTE_WAKE_CTRL_SET_ARP_ACTION(h2c_pkt, value)                        \
1418 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 1, value)
1419 #define REMOTE_WAKE_CTRL_SET_ARP_ACTION_NO_CLR(h2c_pkt, value)                 \
1420 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 1, value)
1421 #define REMOTE_WAKE_CTRL_GET_TIM_PARSER_EN(h2c_pkt)                            \
1422 	GET_H2C_FIELD(h2c_pkt + 0X00, 26, 1)
1423 #define REMOTE_WAKE_CTRL_SET_TIM_PARSER_EN(h2c_pkt, value)                     \
1424 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 26, 1, value)
1425 #define REMOTE_WAKE_CTRL_SET_TIM_PARSER_EN_NO_CLR(h2c_pkt, value)              \
1426 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 26, 1, value)
1427 #define REMOTE_WAKE_CTRL_GET_FW_PARSING_UNTIL_WAKEUP(h2c_pkt)                  \
1428 	GET_H2C_FIELD(h2c_pkt + 0X00, 28, 1)
1429 #define REMOTE_WAKE_CTRL_SET_FW_PARSING_UNTIL_WAKEUP(h2c_pkt, value)           \
1430 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 28, 1, value)
1431 #define REMOTE_WAKE_CTRL_SET_FW_PARSING_UNTIL_WAKEUP_NO_CLR(h2c_pkt, value)    \
1432 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 28, 1, value)
1433 #define REMOTE_WAKE_CTRL_GET_FW_PARSING_AFTER_WAKEUP(h2c_pkt)                  \
1434 	GET_H2C_FIELD(h2c_pkt + 0X00, 29, 1)
1435 #define REMOTE_WAKE_CTRL_SET_FW_PARSING_AFTER_WAKEUP(h2c_pkt, value)           \
1436 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 29, 1, value)
1437 #define REMOTE_WAKE_CTRL_SET_FW_PARSING_AFTER_WAKEUP_NO_CLR(h2c_pkt, value)    \
1438 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 29, 1, value)
1439 #define AOAC_GLOBAL_INFO_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1440 #define AOAC_GLOBAL_INFO_SET_CMD_ID(h2c_pkt, value)                            \
1441 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1442 #define AOAC_GLOBAL_INFO_SET_CMD_ID_NO_CLR(h2c_pkt, value)                     \
1443 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1444 #define AOAC_GLOBAL_INFO_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1445 #define AOAC_GLOBAL_INFO_SET_CLASS(h2c_pkt, value)                             \
1446 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1447 #define AOAC_GLOBAL_INFO_SET_CLASS_NO_CLR(h2c_pkt, value)                      \
1448 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1449 #define AOAC_GLOBAL_INFO_GET_PAIR_WISE_ENC_ALG(h2c_pkt)                        \
1450 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1451 #define AOAC_GLOBAL_INFO_SET_PAIR_WISE_ENC_ALG(h2c_pkt, value)                 \
1452 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1453 #define AOAC_GLOBAL_INFO_SET_PAIR_WISE_ENC_ALG_NO_CLR(h2c_pkt, value)          \
1454 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1455 #define AOAC_GLOBAL_INFO_GET_GROUP_ENC_ALG(h2c_pkt)                            \
1456 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1457 #define AOAC_GLOBAL_INFO_SET_GROUP_ENC_ALG(h2c_pkt, value)                     \
1458 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1459 #define AOAC_GLOBAL_INFO_SET_GROUP_ENC_ALG_NO_CLR(h2c_pkt, value)              \
1460 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1461 #define AOAC_RSVD_PAGE_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1462 #define AOAC_RSVD_PAGE_SET_CMD_ID(h2c_pkt, value)                              \
1463 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1464 #define AOAC_RSVD_PAGE_SET_CMD_ID_NO_CLR(h2c_pkt, value)                       \
1465 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1466 #define AOAC_RSVD_PAGE_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1467 #define AOAC_RSVD_PAGE_SET_CLASS(h2c_pkt, value)                               \
1468 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1469 #define AOAC_RSVD_PAGE_SET_CLASS_NO_CLR(h2c_pkt, value)                        \
1470 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1471 #define AOAC_RSVD_PAGE_GET_LOC_REMOTE_CTRL_INFO(h2c_pkt)                       \
1472 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1473 #define AOAC_RSVD_PAGE_SET_LOC_REMOTE_CTRL_INFO(h2c_pkt, value)                \
1474 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1475 #define AOAC_RSVD_PAGE_SET_LOC_REMOTE_CTRL_INFO_NO_CLR(h2c_pkt, value)         \
1476 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1477 #define AOAC_RSVD_PAGE_GET_LOC_ARP_RESPONSE(h2c_pkt)                           \
1478 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1479 #define AOAC_RSVD_PAGE_SET_LOC_ARP_RESPONSE(h2c_pkt, value)                    \
1480 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1481 #define AOAC_RSVD_PAGE_SET_LOC_ARP_RESPONSE_NO_CLR(h2c_pkt, value)             \
1482 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1483 #define AOAC_RSVD_PAGE_GET_LOC_NEIGHBOR_ADVERTISEMENT(h2c_pkt)                 \
1484 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1485 #define AOAC_RSVD_PAGE_SET_LOC_NEIGHBOR_ADVERTISEMENT(h2c_pkt, value)          \
1486 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1487 #define AOAC_RSVD_PAGE_SET_LOC_NEIGHBOR_ADVERTISEMENT_NO_CLR(h2c_pkt, value)   \
1488 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1489 #define AOAC_RSVD_PAGE_GET_LOC_GTK_RSP(h2c_pkt)                                \
1490 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1491 #define AOAC_RSVD_PAGE_SET_LOC_GTK_RSP(h2c_pkt, value)                         \
1492 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1493 #define AOAC_RSVD_PAGE_SET_LOC_GTK_RSP_NO_CLR(h2c_pkt, value)                  \
1494 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1495 #define AOAC_RSVD_PAGE_GET_LOC_GTK_INFO(h2c_pkt)                               \
1496 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
1497 #define AOAC_RSVD_PAGE_SET_LOC_GTK_INFO(h2c_pkt, value)                        \
1498 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
1499 #define AOAC_RSVD_PAGE_SET_LOC_GTK_INFO_NO_CLR(h2c_pkt, value)                 \
1500 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
1501 #define AOAC_RSVD_PAGE_GET_LOC_GTK_EXT_MEM(h2c_pkt)                            \
1502 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
1503 #define AOAC_RSVD_PAGE_SET_LOC_GTK_EXT_MEM(h2c_pkt, value)                     \
1504 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
1505 #define AOAC_RSVD_PAGE_SET_LOC_GTK_EXT_MEM_NO_CLR(h2c_pkt, value)              \
1506 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
1507 #define AOAC_RSVD_PAGE_GET_LOC_NDP_INFO(h2c_pkt)                               \
1508 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
1509 #define AOAC_RSVD_PAGE_SET_LOC_NDP_INFO(h2c_pkt, value)                        \
1510 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
1511 #define AOAC_RSVD_PAGE_SET_LOC_NDP_INFO_NO_CLR(h2c_pkt, value)                 \
1512 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
1513 #define AOAC_RSVD_PAGE2_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1514 #define AOAC_RSVD_PAGE2_SET_CMD_ID(h2c_pkt, value)                             \
1515 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1516 #define AOAC_RSVD_PAGE2_SET_CMD_ID_NO_CLR(h2c_pkt, value)                      \
1517 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1518 #define AOAC_RSVD_PAGE2_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1519 #define AOAC_RSVD_PAGE2_SET_CLASS(h2c_pkt, value)                              \
1520 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1521 #define AOAC_RSVD_PAGE2_SET_CLASS_NO_CLR(h2c_pkt, value)                       \
1522 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1523 #define AOAC_RSVD_PAGE2_GET_LOC_ROUTER_SOLICATION(h2c_pkt)                     \
1524 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1525 #define AOAC_RSVD_PAGE2_SET_LOC_ROUTER_SOLICATION(h2c_pkt, value)              \
1526 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1527 #define AOAC_RSVD_PAGE2_SET_LOC_ROUTER_SOLICATION_NO_CLR(h2c_pkt, value)       \
1528 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1529 #define AOAC_RSVD_PAGE2_GET_LOC_BUBBLE_PACKET(h2c_pkt)                         \
1530 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1531 #define AOAC_RSVD_PAGE2_SET_LOC_BUBBLE_PACKET(h2c_pkt, value)                  \
1532 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1533 #define AOAC_RSVD_PAGE2_SET_LOC_BUBBLE_PACKET_NO_CLR(h2c_pkt, value)           \
1534 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1535 #define AOAC_RSVD_PAGE2_GET_LOC_TEREDO_INFO(h2c_pkt)                           \
1536 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1537 #define AOAC_RSVD_PAGE2_SET_LOC_TEREDO_INFO(h2c_pkt, value)                    \
1538 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1539 #define AOAC_RSVD_PAGE2_SET_LOC_TEREDO_INFO_NO_CLR(h2c_pkt, value)             \
1540 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1541 #define AOAC_RSVD_PAGE2_GET_LOC_REALWOW_INFO(h2c_pkt)                          \
1542 	GET_H2C_FIELD(h2c_pkt + 0X04, 0, 8)
1543 #define AOAC_RSVD_PAGE2_SET_LOC_REALWOW_INFO(h2c_pkt, value)                   \
1544 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 8, value)
1545 #define AOAC_RSVD_PAGE2_SET_LOC_REALWOW_INFO_NO_CLR(h2c_pkt, value)            \
1546 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 8, value)
1547 #define AOAC_RSVD_PAGE2_GET_LOC_KEEP_ALIVE_PKT(h2c_pkt)                        \
1548 	GET_H2C_FIELD(h2c_pkt + 0X04, 8, 8)
1549 #define AOAC_RSVD_PAGE2_SET_LOC_KEEP_ALIVE_PKT(h2c_pkt, value)                 \
1550 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 8, 8, value)
1551 #define AOAC_RSVD_PAGE2_SET_LOC_KEEP_ALIVE_PKT_NO_CLR(h2c_pkt, value)          \
1552 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 8, 8, value)
1553 #define AOAC_RSVD_PAGE2_GET_LOC_ACK_PATTERN(h2c_pkt)                           \
1554 	GET_H2C_FIELD(h2c_pkt + 0X04, 16, 8)
1555 #define AOAC_RSVD_PAGE2_SET_LOC_ACK_PATTERN(h2c_pkt, value)                    \
1556 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 8, value)
1557 #define AOAC_RSVD_PAGE2_SET_LOC_ACK_PATTERN_NO_CLR(h2c_pkt, value)             \
1558 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 8, value)
1559 #define AOAC_RSVD_PAGE2_GET_LOC_WAKEUP_PATTERN(h2c_pkt)                        \
1560 	GET_H2C_FIELD(h2c_pkt + 0X04, 24, 8)
1561 #define AOAC_RSVD_PAGE2_SET_LOC_WAKEUP_PATTERN(h2c_pkt, value)                 \
1562 	SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 24, 8, value)
1563 #define AOAC_RSVD_PAGE2_SET_LOC_WAKEUP_PATTERN_NO_CLR(h2c_pkt, value)          \
1564 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 24, 8, value)
1565 #define D0_SCAN_OFFLOAD_INFO_GET_CMD_ID(h2c_pkt)                               \
1566 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1567 #define D0_SCAN_OFFLOAD_INFO_SET_CMD_ID(h2c_pkt, value)                        \
1568 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1569 #define D0_SCAN_OFFLOAD_INFO_SET_CMD_ID_NO_CLR(h2c_pkt, value)                 \
1570 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1571 #define D0_SCAN_OFFLOAD_INFO_GET_CLASS(h2c_pkt)                                \
1572 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1573 #define D0_SCAN_OFFLOAD_INFO_SET_CLASS(h2c_pkt, value)                         \
1574 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1575 #define D0_SCAN_OFFLOAD_INFO_SET_CLASS_NO_CLR(h2c_pkt, value)                  \
1576 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1577 #define D0_SCAN_OFFLOAD_INFO_GET_LOC_CHANNEL_INFO(h2c_pkt)                     \
1578 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1579 #define D0_SCAN_OFFLOAD_INFO_SET_LOC_CHANNEL_INFO(h2c_pkt, value)              \
1580 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1581 #define D0_SCAN_OFFLOAD_INFO_SET_LOC_CHANNEL_INFO_NO_CLR(h2c_pkt, value)       \
1582 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1583 #define CHANNEL_SWITCH_OFFLOAD_GET_CMD_ID(h2c_pkt)                             \
1584 	GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1585 #define CHANNEL_SWITCH_OFFLOAD_SET_CMD_ID(h2c_pkt, value)                      \
1586 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1587 #define CHANNEL_SWITCH_OFFLOAD_SET_CMD_ID_NO_CLR(h2c_pkt, value)               \
1588 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1589 #define CHANNEL_SWITCH_OFFLOAD_GET_CLASS(h2c_pkt)                              \
1590 	GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1591 #define CHANNEL_SWITCH_OFFLOAD_SET_CLASS(h2c_pkt, value)                       \
1592 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1593 #define CHANNEL_SWITCH_OFFLOAD_SET_CLASS_NO_CLR(h2c_pkt, value)                \
1594 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1595 #define CHANNEL_SWITCH_OFFLOAD_GET_CHANNEL_NUM(h2c_pkt)                        \
1596 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1597 #define CHANNEL_SWITCH_OFFLOAD_SET_CHANNEL_NUM(h2c_pkt, value)                 \
1598 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1599 #define CHANNEL_SWITCH_OFFLOAD_SET_CHANNEL_NUM_NO_CLR(h2c_pkt, value)          \
1600 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1601 #define CHANNEL_SWITCH_OFFLOAD_GET_EN_RFE(h2c_pkt)                             \
1602 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1603 #define CHANNEL_SWITCH_OFFLOAD_SET_EN_RFE(h2c_pkt, value)                      \
1604 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1605 #define CHANNEL_SWITCH_OFFLOAD_SET_EN_RFE_NO_CLR(h2c_pkt, value)               \
1606 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1607 #define CHANNEL_SWITCH_OFFLOAD_GET_RFE_TYPE(h2c_pkt)                           \
1608 	GET_H2C_FIELD(h2c_pkt + 0X00, 24, 8)
1609 #define CHANNEL_SWITCH_OFFLOAD_SET_RFE_TYPE(h2c_pkt, value)                    \
1610 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 24, 8, value)
1611 #define CHANNEL_SWITCH_OFFLOAD_SET_RFE_TYPE_NO_CLR(h2c_pkt, value)             \
1612 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 24, 8, value)
1613 #define AOAC_RSVD_PAGE3_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1614 #define AOAC_RSVD_PAGE3_SET_CMD_ID(h2c_pkt, value)                             \
1615 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1616 #define AOAC_RSVD_PAGE3_SET_CMD_ID_NO_CLR(h2c_pkt, value)                      \
1617 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1618 #define AOAC_RSVD_PAGE3_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1619 #define AOAC_RSVD_PAGE3_SET_CLASS(h2c_pkt, value)                              \
1620 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1621 #define AOAC_RSVD_PAGE3_SET_CLASS_NO_CLR(h2c_pkt, value)                       \
1622 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1623 #define AOAC_RSVD_PAGE3_GET_LOC_NLO_INFO(h2c_pkt)                              \
1624 	GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
1625 #define AOAC_RSVD_PAGE3_SET_LOC_NLO_INFO(h2c_pkt, value)                       \
1626 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
1627 #define AOAC_RSVD_PAGE3_SET_LOC_NLO_INFO_NO_CLR(h2c_pkt, value)                \
1628 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
1629 #define AOAC_RSVD_PAGE3_GET_LOC_AOAC_REPORT(h2c_pkt)                           \
1630 	GET_H2C_FIELD(h2c_pkt + 0X00, 16, 8)
1631 #define AOAC_RSVD_PAGE3_SET_LOC_AOAC_REPORT(h2c_pkt, value)                    \
1632 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 8, value)
1633 #define AOAC_RSVD_PAGE3_SET_LOC_AOAC_REPORT_NO_CLR(h2c_pkt, value)             \
1634 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 8, value)
1635 #define DBG_MSG_CTRL_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 5)
1636 #define DBG_MSG_CTRL_SET_CMD_ID(h2c_pkt, value)                                \
1637 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 5, value)
1638 #define DBG_MSG_CTRL_SET_CMD_ID_NO_CLR(h2c_pkt, value)                         \
1639 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 5, value)
1640 #define DBG_MSG_CTRL_GET_CLASS(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 5, 3)
1641 #define DBG_MSG_CTRL_SET_CLASS(h2c_pkt, value)                                 \
1642 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 5, 3, value)
1643 #define DBG_MSG_CTRL_SET_CLASS_NO_CLR(h2c_pkt, value)                          \
1644 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 5, 3, value)
1645 #define DBG_MSG_CTRL_GET_FUN_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 1)
1646 #define DBG_MSG_CTRL_SET_FUN_EN(h2c_pkt, value)                                \
1647 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 1, value)
1648 #define DBG_MSG_CTRL_SET_FUN_EN_NO_CLR(h2c_pkt, value)                         \
1649 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 1, value)
1650 #define DBG_MSG_CTRL_GET_MODE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 12, 4)
1651 #define DBG_MSG_CTRL_SET_MODE(h2c_pkt, value)                                  \
1652 	SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 12, 4, value)
1653 #define DBG_MSG_CTRL_SET_MODE_NO_CLR(h2c_pkt, value)                           \
1654 	SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 12, 4, value)
1655 #endif
1656