xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8852bs/phl/hal_g6/mac/mac_def.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /** @file */
2 /******************************************************************************
3  *
4  * Copyright(c) 2019 Realtek Corporation. All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of version 2 of the GNU General Public License as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13  * more details.
14  *
15  ******************************************************************************/
16 
17 #ifndef _MAC_AX_MAC_DEF_H_
18 #define _MAC_AX_MAC_DEF_H_
19 
20 #include "pltfm_cfg.h"
21 #include "feature_cfg.h"
22 #include "chip_cfg.h"
23 #include "mac_ax/state_mach.h"
24 #include "errors.h"
25 
26 #if MAC_AX_FEATURE_HV
27 #include "hv_type.h"
28 #endif
29 
30 /*--------------------Define -------------------------------------------*/
31 #ifdef CONFIG_NEW_HALMAC_INTERFACE
32 #define PLTFM_SDIO_CMD52_R8(addr)                                              \
33 	hal_sdio_cmd52_r8(adapter->drv_adapter, addr)
34 #define PLTFM_SDIO_CMD53_R8(addr)                                              \
35 	hal_sdio_cmd53_r8(adapter->drv_adapter, addr)
36 #define PLTFM_SDIO_CMD53_R16(addr)                                             \
37 	hal_sdio_cmd53_r16(adapter->drv_adapter, addr)
38 #define PLTFM_SDIO_CMD53_R32(addr)                                             \
39 	hal_sdio_cmd53_r32(adapter->drv_adapter, addr)
40 #define PLTFM_SDIO_CMD53_RN(addr, size, val)                                   \
41 	hal_sdio_cmd53_rn(adapter->drv_adapter, addr, size, val)
42 #define PLTFM_SDIO_CMD52_W8(addr, val)                                         \
43 	hal_sdio_cmd52_w8(adapter->drv_adapter, addr, val)
44 #define PLTFM_SDIO_CMD53_W8(addr, val)                                         \
45 	hal_sdio_cmd53_w8(adapter->drv_adapter, addr, val)
46 #define PLTFM_SDIO_CMD53_WN(addr, size, val)                                   \
47 	hal_sdio_cmd53_wn(adapter->drv_adapter, addr, size, val)
48 #define PLTFM_SDIO_CMD53_W16(addr, val)                                        \
49 	hal_sdio_cmd53_w16(adapter->drv_adapter, addr, val)
50 #define PLTFM_SDIO_CMD53_W32(addr, val)                                        \
51 	hal_sdio_cmd53_w32(adapter->drv_adapter, addr, val)
52 #define PLTFM_SDIO_CMD52_CIA_R8(addr)                                          \
53 	hal_sdio_read_cia_r8(adapter->drv_adapter, addr)
54 
55 #define PLTFM_TX(buf, len)                                                     \
56 	hal_tx(adapter->drv_adapter, buf, len)
57 
58 #define PLTFM_FREE(buf, size)                                                  \
59 	hal_mem_free(adapter->drv_adapter, buf, size)
60 #define PLTFM_MALLOC(size)                                                     \
61 	hal_mem_alloc(adapter->drv_adapter, size)
62 #define PLTFM_MEMCPY(dest, src, size)                                          \
63 	hal_mem_cpy(adapter->drv_adapter, dest, src, size)
64 #define PLTFM_MEMSET(addr, value, size)                                        \
65 	hal_mem_set(adapter->drv_adapter, addr, value, size)
66 #define PLTFM_MEMCMP(ptr1, ptr2, num)                                          \
67 	hal_mem_cmp(adapter->drv_adapter, ptr1, ptr2, num)
68 
69 #define PLTFM_DELAY_US(us)                                                     \
70 	hal_udelay(adapter->drv_adapter, us)
71 #define PLTFM_DELAY_MS(ms)                                                     \
72 	hal_mdelay(adapter->drv_adapter, ms)
73 #define PLTFM_MUTEX_INIT(mutex)                                                \
74 	hal_mutex_init(adapter->drv_adapter, mutex)
75 #define PLTFM_MUTEX_DEINIT(mutex)                                              \
76 	hal_mutex_deinit(adapter->drv_adapter, mutex)
77 #define PLTFM_MUTEX_LOCK(mutex)                                                \
78 	hal_mutex_lock(adapter->drv_adapter, mutex)
79 #define PLTFM_MUTEX_UNLOCK(mutex)                                              \
80 	hal_mutex_unlock(adapter->drv_adapter, mutex)
81 
82 #define PLTFM_MSG_PRINT(...)	\
83 	hal_mac_msg_print(drv_adapter, __VA_ARGS__)
84 
85 #define adapter_to_mac_ops(adapter) ((struct mac_ax_ops *)((adapter)->ops))
86 #define adapter_to_intf_ops(adapter)                                           \
87 	((struct mac_ax_intf_ops *)((adapter)->ops->intf_ops))
88 
89 #define PLTFM_REG_R8(addr)                                                     \
90 	hal_read8(adapter->drv_adapter, addr)
91 #define PLTFM_REG_R16(addr)                                                    \
92 	hal_read16(adapter->drv_adapter, addr)
93 #define PLTFM_REG_R32(addr)                                                    \
94 	hal_read32(adapter->drv_adapter, addr)
95 #define PLTFM_REG_W8(addr, val)                                                \
96 	hal_write8(adapter->drv_adapter, addr, val)
97 #define PLTFM_REG_W16(addr, val)                                               \
98 	hal_write16(adapter->drv_adapter, addr, val)
99 #define PLTFM_REG_W32(addr, val)                                               \
100 	hal_write32(adapter->drv_adapter, addr, val)
101 
102 #define MAC_REG_R8(addr) hal_read8(adapter->drv_adapter, addr)
103 #define MAC_REG_R16(addr) hal_read16(adapter->drv_adapter, addr)
104 #define MAC_REG_R32(addr) hal_read32(adapter->drv_adapter, addr)
105 #define MAC_REG_W8(addr, val) hal_write8(adapter->drv_adapter, addr, val)
106 #define MAC_REG_W16(addr, val) hal_write16(adapter->drv_adapter, addr, val)
107 #define MAC_REG_W32(addr, val) hal_write32(adapter->drv_adapter, addr, val)
108 
109 #if MAC_AX_FEATURE_DBGCMD
110 #define PLTFM_SNPRINTF(s, sz, fmt, ...)                                               \
111 	hal_sprintf(adapter->drv_adapter, s, sz, fmt, ##__VA_ARGS__)
112 #define PLTFM_STRCMP(s1, s2)                                               \
113 	hal_strcmp(adapter->drv_adapter, s1, s2)
114 #define PLTFM_STRSEP(s, ct)                                               \
115 	hal_strsep(adapter->drv_adapter, s, ct)
116 #define PLTFM_STRLEN(s)                                               \
117 	hal_strlen(adapter->drv_adapter, s)
118 #define PLTFM_STRCPY(dest, src)                                               \
119 	hal_strcpy(adapter->drv_adapter, dest, src)
120 #define PLTFM_STRPBRK(cs, ct)                                               \
121 	hal_strpbrk(adapter->drv_adapter, cs, ct)
122 #define PLTFM_STRTOUL(buf, base)                                               \
123 	hal_strtoul(adapter->drv_adapter, buf, base)
124 
125 #endif
126 #else
127 
128 /* platform callback */
129 #define PLTFM_SDIO_CMD52_R8(addr)                                              \
130 	adapter->pltfm_cb->sdio_cmd52_r8(adapter->drv_adapter, addr)
131 #define PLTFM_SDIO_CMD53_R8(addr)                                              \
132 	adapter->pltfm_cb->sdio_cmd53_r8(adapter->drv_adapter, addr)
133 #define PLTFM_SDIO_CMD53_R16(addr)                                             \
134 	adapter->pltfm_cb->sdio_cmd53_r16(adapter->drv_adapter, addr)
135 #define PLTFM_SDIO_CMD53_R32(addr)                                             \
136 	adapter->pltfm_cb->sdio_cmd53_r32(adapter->drv_adapter, addr)
137 #define PLTFM_SDIO_CMD53_RN(addr, size, val)                                   \
138 	adapter->pltfm_cb->sdio_cmd53_rn(adapter->drv_adapter, addr, size, val)
139 #define PLTFM_SDIO_CMD52_W8(addr, val)                                         \
140 	adapter->pltfm_cb->sdio_cmd52_w8(adapter->drv_adapter, addr, val)
141 #define PLTFM_SDIO_CMD53_W8(addr, val)                                         \
142 	adapter->pltfm_cb->sdio_cmd53_w8(adapter->drv_adapter, addr, val)
143 #define PLTFM_SDIO_CMD53_W16(addr, val)                                        \
144 	adapter->pltfm_cb->sdio_cmd53_w16(adapter->drv_adapter, addr, val)
145 #define PLTFM_SDIO_CMD53_W32(addr, val)                                        \
146 	adapter->pltfm_cb->sdio_cmd53_w32(adapter->drv_adapter, addr, val)
147 #define PLTFM_SDIO_CMD53_WN(addr, size, val)                                   \
148 	adapter->pltfm_cb->sdio_cmd53_wn(adapter->drv_adapter, addr, size, val)
149 #define PLTFM_SDIO_CMD52_CIA_R8(addr)                                          \
150 	adapter->pltfm_cb->sdio_cmd52_cia_r8(adapter->drv_adapter, addr)
151 
152 #define PLTFM_REG_R8(addr)                                                     \
153 	adapter->pltfm_cb->reg_r8(adapter->drv_adapter, addr)
154 #define PLTFM_REG_R16(addr)                                                    \
155 	adapter->pltfm_cb->reg_r16(adapter->drv_adapter, addr)
156 #define PLTFM_REG_R32(addr)                                                    \
157 	adapter->pltfm_cb->reg_r32(adapter->drv_adapter, addr)
158 #define PLTFM_REG_W8(addr, val)                                                \
159 	adapter->pltfm_cb->reg_w8(adapter->drv_adapter, addr, val)
160 #define PLTFM_REG_W16(addr, val)                                               \
161 	adapter->pltfm_cb->reg_w16(adapter->drv_adapter, addr, val)
162 #define PLTFM_REG_W32(addr, val)                                               \
163 	adapter->pltfm_cb->reg_w32(adapter->drv_adapter, addr, val)
164 
165 #if MAC_AX_PHL_H2C
166 #define PLTFM_TX(buf)                                                          \
167 	adapter->pltfm_cb->tx(adapter->phl_adapter, adapter->drv_adapter, buf)
168 #define PLTFM_QUERY_H2C(type)                                                  \
169 	adapter->pltfm_cb->rtl_query_h2c(adapter->phl_adapter,                 \
170 					 adapter->drv_adapter, type)
171 #define PLTFM_RECYCLE_H2C(buf)                                                 \
172 		adapter->pltfm_cb->rtl_recycle_h2c(adapter->phl_adapter, buf)
173 #else
174 #define PLTFM_TX(buf, len)                                                     \
175 	adapter->pltfm_cb->tx(adapter->drv_adapter, buf, len)
176 #endif
177 #define PLTFM_FREE(buf, size)                                                  \
178 	adapter->pltfm_cb->rtl_free(adapter->drv_adapter, buf, size)
179 #define PLTFM_MALLOC(size)                                                     \
180 	adapter->pltfm_cb->rtl_malloc(adapter->drv_adapter, size)
181 #define PLTFM_MEMCPY(dest, src, size)                                          \
182 	adapter->pltfm_cb->rtl_memcpy(adapter->drv_adapter, dest, src, size)
183 #define PLTFM_MEMSET(addr, value, size)                                        \
184 	adapter->pltfm_cb->rtl_memset(adapter->drv_adapter, addr, value, size)
185 #define PLTFM_MEMCMP(ptr1, ptr2, num)                                          \
186 	adapter->pltfm_cb->rtl_memcmp(adapter->drv_adapter, ptr1, ptr2, num)
187 #define PLTFM_DELAY_US(us)                                                     \
188 	adapter->pltfm_cb->rtl_delay_us(adapter->drv_adapter, us)
189 #define PLTFM_DELAY_MS(ms)                                                     \
190 	adapter->pltfm_cb->rtl_delay_ms(adapter->drv_adapter, ms)
191 
192 #define PLTFM_MUTEX_INIT(mutex)                                                \
193 	adapter->pltfm_cb->rtl_mutex_init(adapter->drv_adapter, mutex)
194 #define PLTFM_MUTEX_DEINIT(mutex)                                              \
195 	adapter->pltfm_cb->rtl_mutex_deinit(adapter->drv_adapter, mutex)
196 #define PLTFM_MUTEX_LOCK(mutex)                                                \
197 	adapter->pltfm_cb->rtl_mutex_lock(adapter->drv_adapter, mutex)
198 #define PLTFM_MUTEX_UNLOCK(mutex)                                              \
199 	adapter->pltfm_cb->rtl_mutex_unlock(adapter->drv_adapter, mutex)
200 
201 #define PLTFM_EVENT_NOTIFY(mac_ft, stat, buf, size)                            \
202 	adapter->pltfm_cb->event_notify(adapter->drv_adapter, mac_ft, stat,    \
203 					buf, size)
204 #define PLTFM_L2_NOTIFY(void)                                                          \
205 	adapter->pltfm_cb->ser_l2_notify(adapter->phl_adapter, adapter->drv_adapter)
206 
207 #define PLTFM_LD_FW_SYMBOL(name, buf, buf_size) \
208 	adapter->pltfm_cb->ld_fw_symbol(adapter->phl_adapter, adapter->drv_adapter,\
209 	name, buf, buf_size)
210 
211 #define PLTFM_MSG_PRINT(...)	\
212 	adapter->pltfm_cb->msg_print(drv_adapter, u8 dbg_level, __VA_ARGS__)
213 
214 #define adapter_to_mac_ops(adapter) ((struct mac_ax_ops *)((adapter)->ops))
215 #define adapter_to_intf_ops(adapter)                                           \
216 	((struct mac_ax_intf_ops *)((adapter)->ops->intf_ops))
217 
218 #define MAC_REG_R8(addr) ops->reg_read8(adapter, addr)
219 #define MAC_REG_R16(addr) ops->reg_read16(adapter, addr)
220 #define MAC_REG_R32(addr) ops->reg_read32(adapter, addr)
221 #define MAC_REG_W8(addr, val) ops->reg_write8(adapter, addr, val)
222 #define MAC_REG_W16(addr, val) ops->reg_write16(adapter, addr, val)
223 #define MAC_REG_W32(addr, val) ops->reg_write32(adapter, addr, val)
224 
225 #if MAC_AX_FEATURE_DBGCMD
226 #define PLTFM_SNPRINTF(s, sz, fmt, ...)                                               \
227 	adapter->pltfm_cb->rtl_sprintf(adapter->drv_adapter, s, sz, fmt, ##__VA_ARGS__)
228 #define PLTFM_STRCMP(s1, s2)                                               \
229 	adapter->pltfm_cb->rtl_strcmp(adapter->drv_adapter, s1, s2)
230 #define PLTFM_STRSEP(s, ct)                                               \
231 	adapter->pltfm_cb->rtl_strsep(adapter->drv_adapter, s, ct)
232 #define PLTFM_STRLEN(s)                                               \
233 	adapter->pltfm_cb->rtl_strlen(adapter->drv_adapter, s)
234 #define PLTFM_STRCPY(dest, src)                                               \
235 	adapter->pltfm_cb->rtl_strcpy(adapter->drv_adapter, dest, src)
236 #define PLTFM_STRPBRK(cs, ct)                                               \
237 	adapter->pltfm_cb->rtl_strpbrk(adapter->drv_adapter, cs, ct)
238 #define PLTFM_STRTOUL(buf, base)                                               \
239 	adapter->pltfm_cb->rtl_strtoul(adapter->drv_adapter, buf, base)
240 #endif
241 
242 #endif /*CONFIG_NEW_HALMAC_INTERFACE*/
243 
244 /*--------------------Define MACRO--------------------------------------*/
245 #define MAC_AX_MAX_RU_NUM	4
246 #define WLAN_ADDR_LEN			6
247 #define MAX_VHT_SUPPORT_SOUND_STA	4
248 #define MAX_HE_SUPPORT_SOUND_STA	8
249 #define MAC_AX_BCN_INTERVAL_DEFAULT 100
250 #define MAC_RX_USB_AGG_MODE_UNIT	4096
251 #define MAC_RX_DMA_AGG_MODE_UNIT	1024
252 #define MAC_MAX_ARGC		20
253 #define MAC_MAX_ARGV		16
254 #define MAC_AX_DP_SEL_NUM	2
255 
256 #ifdef PHL_FEATURE_AP
257 #define MAC_STA_NUM	128
258 #else /*for NIC mode setting*/
259 #define MAC_STA_NUM	32
260 #endif
261 
262 #define MAC_AX_FAST_CH_SW_MAX_STA_NUM 4
263 #define UL_PER_STA_DBGINFO_NUM 0x10
264 #define SCANOFLD_MAX_ADDITION_PKT_NUM 8
265 
266 #define SS_LINK_SIZE 256
267 #define lps_pwr_state ps_pwr_state //temp, should remove
268 
269 /*--------------------Define Enum---------------------------------------*/
270 
271 /**
272  * @enum mac_ax_intf
273  *
274  * @brief mac_ax_intf
275  *
276  * @var mac_ax_intf::MAC_AX_INTF_USB
277  * Please Place Description here.
278  * @var mac_ax_intf::MAC_AX_INTF_SDIO
279  * Please Place Description here.
280  * @var mac_ax_intf::MAC_AX_INTF_PCIE
281  * Please Place Description here.
282  * @var mac_ax_intf::MAC_AX_INTF_LAST
283  * Please Place Description here.
284  * @var mac_ax_intf::MAC_AX_INTF_MAX
285  * Please Place Description here.
286  * @var mac_ax_intf::MAC_AX_INTF_INVALID
287  * Please Place Description here.
288  */
289 enum mac_ax_intf {
290 	MAC_AX_INTF_USB,
291 	MAC_AX_INTF_SDIO,
292 	MAC_AX_INTF_PCIE,
293 
294 	/* keep last */
295 	MAC_AX_INTF_LAST,
296 	MAC_AX_INTF_MAX = MAC_AX_INTF_LAST,
297 	MAC_AX_INTF_INVALID = MAC_AX_INTF_LAST,
298 };
299 
300 /**
301  * @enum mac_ax_feature
302  *
303  * @brief mac_ax_feature
304  *
305  * @var mac_ax_feature::MAC_AX_FT_DUMP_EFUSE
306  * Please Place Description here.
307  * @var mac_ax_feature::MAC_AX_FT_LAST
308  * Please Place Description here.
309  * @var mac_ax_feature::MAC_AX_FT_MAX
310  * Please Place Description here.
311  * @var mac_ax_feature::MAC_AX_FT_INVALID
312  * Please Place Description here.
313  */
314 enum mac_ax_feature {
315 	MAC_AX_FT_DUMP_EFUSE,
316 
317 	/* keep last */
318 	MAC_AX_FT_LAST,
319 	MAC_AX_FT_MAX = MAC_AX_FT_LAST,
320 	MAC_AX_FT_INVALID = MAC_AX_FT_LAST,
321 };
322 
323 /**
324  * @enum mac_ax_status
325  *
326  * @brief mac_ax_status
327  *
328  * @var mac_ax_status::MAC_AX_STATUS_IDLE
329  * Please Place Description here.
330  * @var mac_ax_status::MAC_AX_STATUS_PROC
331  * Please Place Description here.
332  * @var mac_ax_status::MAC_AX_STATUS_DONE
333  * Please Place Description here.
334  * @var mac_ax_status::MAC_AX_STATUS_ERR
335  * Please Place Description here.
336  */
337 enum mac_ax_status {
338 	MAC_AX_STATUS_IDLE,
339 	MAC_AX_STATUS_PROC,
340 	MAC_AX_STATUS_DONE,
341 	MAC_AX_STATUS_ERR,
342 };
343 
344 /**
345  * @enum mac_ax_sdio_4byte_mode
346  *
347  * @brief mac_ax_sdio_4byte_mode
348  *
349  * @var mac_ax_sdio_4byte_mode::MAC_AX_SDIO_4BYTE_MODE_DISABLE
350  * Please Place Description here.
351  * @var mac_ax_sdio_4byte_mode::MAC_AX_SDIO_4BYTE_MODE_RW
352  * Please Place Description here.
353  * @var mac_ax_sdio_4byte_mode::MAC_AX_SDIO_4BYTE_MODE_LAST
354  * Please Place Description here.
355  * @var mac_ax_sdio_4byte_mode::MAC_AX_SDIO_4BYTE_MODE_MAX
356  * Please Place Description here.
357  * @var mac_ax_sdio_4byte_mode::MAC_AX_SDIO_4BYTE_MODE_INVALID
358  * Please Place Description here.
359  */
360 enum mac_ax_sdio_4byte_mode {
361 	MAC_AX_SDIO_4BYTE_MODE_DISABLE,
362 	MAC_AX_SDIO_4BYTE_MODE_RW,
363 
364 	/* keep last */
365 	MAC_AX_SDIO_4BYTE_MODE_LAST,
366 	MAC_AX_SDIO_4BYTE_MODE_MAX = MAC_AX_SDIO_4BYTE_MODE_LAST,
367 	MAC_AX_SDIO_4BYTE_MODE_INVALID = MAC_AX_SDIO_4BYTE_MODE_LAST,
368 };
369 
370 /**
371  * @enum mac_ax_sdio_tx_mode
372  *
373  * @brief mac_ax_sdio_tx_mode
374  *
375  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_AGG
376  * Please Place Description here.
377  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_DUMMY_BLOCK
378  * Please Place Description here.
379  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_DUMMY_AUTO
380  * Please Place Description here.
381  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_LAST
382  * Please Place Description here.
383  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_MAX
384  * Please Place Description here.
385  * @var mac_ax_sdio_tx_mode::MAC_AX_SDIO_TX_MODE_INVALID
386  * Please Place Description here.
387  */
388 enum mac_ax_sdio_tx_mode {
389 	MAC_AX_SDIO_TX_MODE_AGG,
390 	MAC_AX_SDIO_TX_MODE_DUMMY_BLOCK,
391 	MAC_AX_SDIO_TX_MODE_DUMMY_AUTO,
392 
393 	/* keep last */
394 	MAC_AX_SDIO_TX_MODE_LAST,
395 	MAC_AX_SDIO_TX_MODE_MAX = MAC_AX_SDIO_TX_MODE_LAST,
396 	MAC_AX_SDIO_TX_MODE_INVALID = MAC_AX_SDIO_TX_MODE_LAST,
397 };
398 
399 /**
400  * @enum mac_ax_sdio_opn_mode
401  *
402  * @brief mac_ax_sdio_opn_mode
403  *
404  * @var mac_ax_sdio_opn_mode::MAC_AX_SDIO_OPN_MODE_BYTE
405  * Please Place Description here.
406  * @var mac_ax_sdio_opn_mode::MAC_AX_SDIO_OPN_MODE_BLOCK
407  * Please Place Description here.
408  * @var mac_ax_sdio_opn_mode::MAC_AX_SDIO_OPN_MODE_UNKNOWN
409  * Please Place Description here.
410  */
411 enum mac_ax_sdio_opn_mode {
412 	MAC_AX_SDIO_OPN_MODE_BYTE = 0,
413 	MAC_AX_SDIO_OPN_MODE_BLOCK,
414 	MAC_AX_SDIO_OPN_MODE_UNKNOWN,
415 };
416 
417 /**
418  * @enum mac_ax_sdio_spec_ver
419  *
420  * @brief mac_ax_sdio_spec_ver
421  *
422  * @var mac_ax_sdio_spec_ver::MAC_AX_SDIO_SPEC_VER_2_00
423  * Please Place Description here.
424  * @var mac_ax_sdio_spec_ver::MAC_AX_SDIO_SPEC_VER_3_00
425  * Please Place Description here.
426  * @var mac_ax_sdio_spec_ver::MAC_AX_SDIO_SPEC_VER_LAST
427  * Please Place Description here.
428  * @var mac_ax_sdio_spec_ver::MAC_AX_SDIO_SPEC_VER_MAX
429  * Please Place Description here.
430  * @var mac_ax_sdio_spec_ver::MAC_AX_SDIO_SPEC_VER_INVALID
431  * Please Place Description here.
432  */
433 enum mac_ax_sdio_spec_ver {
434 	MAC_AX_SDIO_SPEC_VER_2_00,
435 	MAC_AX_SDIO_SPEC_VER_3_00,
436 
437 	/* keep last */
438 	MAC_AX_SDIO_SPEC_VER_LAST,
439 	MAC_AX_SDIO_SPEC_VER_MAX = MAC_AX_SDIO_SPEC_VER_LAST,
440 	MAC_AX_SDIO_SPEC_VER_INVALID = MAC_AX_SDIO_SPEC_VER_LAST,
441 };
442 
443 /**
444  * @enum mac_ax_use_ver
445  *
446  * @brief mac_ax_use_ver
447  *
448  * @var mac_ax_use_ver::MAC_AX_USB11
449  * Please Place Description here.
450  * @var mac_ax_use_ver::MAC_AX_USB2
451  * Please Place Description here.
452  * @var mac_ax_use_ver::MAC_AX_USB3
453  * Please Place Description here.
454  * @var mac_ax_use_ver::MAC_AX_USB_LAST
455  * Please Place Description here.
456  * @var mac_ax_use_ver::MAC_AX_USB_MAX
457  * Please Place Description here.
458  * @var mac_ax_use_ver::MAC_AX_USB_INVALID
459  * Please Place Description here.
460  */
461 enum mac_ax_use_ver {
462 	MAC_AX_USB10,
463 	MAC_AX_USB11,
464 	MAC_AX_USB2,
465 	MAC_AX_USB3,
466 
467 	MAC_AX_USB_LAST,
468 	MAC_AX_USB_MAX = MAC_AX_USB_LAST,
469 	MAC_AX_USB_INVALID = MAC_AX_USB_LAST,
470 };
471 
472 /**
473  * @enum mac_ax_use_mode
474  *
475  * @brief mac_ax_use_mode
476  *
477  * @var mac_ax_use_ver::MAC_AX_USB_NORM
478  * Please Place Description here.
479  * @var mac_ax_use_ver::MAC_AX_USB_AUTOINSTALL
480  * Please Place Description here.
481  * @var mac_ax_use_ver::MAC_AX_USB_LAST
482  * Please Place Description here.
483  * @var mac_ax_use_ver::MAC_AX_USB_MAX
484  * Please Place Description here.
485  * @var mac_ax_use_ver::MAC_AX_USB_INVALID
486  * Please Place Description here.
487  */
488 enum mac_ax_use_mode {
489 	MAC_AX_USB_NORM,
490 	MAC_AX_USB_AUTOINSTALL,
491 
492 	MAC_AX_USB_MODE_LAST,
493 	MAC_AX_USB_MODE_MAX = MAC_AX_USB_LAST,
494 	MAC_AX_USB_MODE_INVALID = MAC_AX_USB_LAST,
495 };
496 
497 /**
498  * @enum mac_ax_lv1_rcvy_step
499  *
500  * @brief mac_ax_lv1_rcvy_step
501  *
502  * @var mac_ax_lv1_rcvy_step::MAC_AX_LV1_RCVY_STEP_1
503  * Please Place Description here.
504  * @var mac_ax_lv1_rcvy_step::MAC_AX_LV1_RCVY_STEP_2
505  * Please Place Description here.
506  * @var mac_ax_lv1_rcvy_step::MAC_AX_LV1_RCVY_STEP_LAST
507  * Please Place Description here.
508  * @var mac_ax_lv1_rcvy_step::MAC_AX_LV1_RCVY_STEP_MAX
509  * Please Place Description here.
510  * @var mac_ax_lv1_rcvy_step::MAC_AX_LV1_RCVY_STEP_INVALID
511  * Please Place Description here.
512  */
513 enum mac_ax_lv1_rcvy_step {
514 	MAC_AX_LV1_RCVY_STEP_1 = 0,
515 	MAC_AX_LV1_RCVY_STEP_2,
516 
517 	/* keep last */
518 	MAC_AX_LV1_RCVY_STEP_LAST,
519 	MAC_AX_LV1_RCVY_STEP_MAX = MAC_AX_LV1_RCVY_STEP_LAST,
520 	MAC_AX_LV1_RCVY_STEP_INVALID = MAC_AX_LV1_RCVY_STEP_LAST,
521 };
522 
523 /**
524  * @enum mac_ax_ex_shift
525  *
526  * @brief mac_ax_ex_shift
527  *
528  * @var mac_ax_ex_shift::MAC_AX_NO_SHIFT
529  * Please Place Description here.
530  * @var mac_ax_ex_shift::MAC_AX_BYTE_ALIGNED_4
531  * Please Place Description here.
532  * @var mac_ax_ex_shift::MAC_AX_BYTE_ALIGNED_8
533  * Please Place Description here.
534  */
535 enum mac_ax_ex_shift {
536 	MAC_AX_NO_SHIFT    = 0,
537 	MAC_AX_BYTE_ALIGNED_4 = 1,
538 	MAC_AX_BYTE_ALIGNED_8   = 2
539 };
540 
541 /**
542  * @enum mac_ax_ps_mode
543  *
544  * @brief mac_ax_ps_mode
545  *
546  * @var mac_ax_ps_mode::MAC_AX_PS_MODE_ACTIVE
547  * Please Place Description here.
548  * @var mac_ax_ps_mode::MAC_AX_PS_MODE_LEGACY
549  * Please Place Description here.
550  * @var mac_ax_ps_mode::MAC_AX_PS_MODE_WMMPS
551  * Please Place Description here.
552  * @var mac_ax_ps_mode::MAC_AX_PS_MODE_MAX
553  * Please Place Description here.
554  */
555 enum mac_ax_ps_mode {
556 	MAC_AX_PS_MODE_ACTIVE = 0,
557 	MAC_AX_PS_MODE_LEGACY = 1,
558 	MAC_AX_PS_MODE_WMMPS  = 2,
559 	MAC_AX_PS_MODE_MAX    = 3,
560 };
561 
562 /**
563  * @enum mac_ax_pwr_state_action
564  *
565  * @brief mac_ax_pwr_state_action
566  *
567  * @var mac_ax_pwr_state_action::MAC_AX_PWR_STATE_ACT_REQ
568  * Please Place Description here.
569  * @var mac_ax_pwr_state_action::MAC_AX_PWR_STATE_ACT_CHK
570  * Please Place Description here.
571  * @var mac_ax_pwr_state_action::MAC_AX_PWR_STATE_ACT_MAX
572  * Please Place Description here.
573  */
574 enum mac_ax_pwr_state_action {
575 	MAC_AX_PWR_STATE_ACT_REQ = 0,
576 	MAC_AX_PWR_STATE_ACT_CHK = 1,
577 	MAC_AX_PWR_STATE_ACT_MAX,
578 };
579 
580 /**
581  * @enum mac_ax_rpwm_req_pwr_state
582  *
583  * @brief mac_ax_rpwm_req_pwr_state
584  *
585  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_ACTIVE
586  * Please Place Description here.
587  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_BAND0_RFON
588  * Please Place Description here.
589  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_BAND1_RFON
590  * Please Place Description here.
591  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_BAND0_RFOFF
592  * Please Place Description here.
593  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_BAND1_RFOFF
594  * Please Place Description here.
595  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_CLK_GATED
596  * Please Place Description here.
597  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_PWR_GATED
598  * Please Place Description here.
599  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_HIOE_PWR_GATED
600  * Please Place Description here.
601  * @var mac_ax_rpwm_req_pwr_state::MAC_AX_RPWM_REQ_PWR_STATE_MAX
602  * Please Place Description here.
603  */
604 enum mac_ax_rpwm_req_pwr_state {
605 	MAC_AX_RPWM_REQ_PWR_STATE_ACTIVE = 0,
606 	MAC_AX_RPWM_REQ_PWR_STATE_BAND0_RFON = 1,
607 	MAC_AX_RPWM_REQ_PWR_STATE_BAND1_RFON = 2,
608 	MAC_AX_RPWM_REQ_PWR_STATE_BAND0_RFOFF = 3,
609 	MAC_AX_RPWM_REQ_PWR_STATE_BAND1_RFOFF = 4,
610 	MAC_AX_RPWM_REQ_PWR_STATE_CLK_GATED = 5,
611 	MAC_AX_RPWM_REQ_PWR_STATE_PWR_GATED = 6,
612 	MAC_AX_RPWM_REQ_PWR_STATE_HIOE_PWR_GATED = 7,
613 	MAC_AX_RPWM_REQ_PWR_STATE_MAX,
614 };
615 
616 /**
617  * @enum mac_ax_port_cfg_type
618  *
619  * @brief mac_ax_port_cfg_type
620  *
621  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_FUNC_SW
622  * Please Place Description here.
623  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_TX_SW
624  * Please Place Description here.
625  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_TX_RPT
626  * Please Place Description here.
627  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_RX_SW
628  * Please Place Description here.
629  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_RX_RPT
630  * Please Place Description here.
631  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_RX_SYNC
632  * Please Place Description here.
633  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_PRCT
634  * Please Place Description here.
635  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_TBTT_AGG
636  * Please Place Description here.
637  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_TBTT_SHIFT
638  * Please Place Description here.
639  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_RST_TSF
640  * Please Place Description here.
641  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_RST_TPR
642  * Please Place Description here.
643  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCAID
644  * Please Place Description here.
645  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_HIQ_WIN
646  * Please Place Description here.
647  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_HIQ_DTIM
648  * Please Place Description here.
649  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_HIQ_NOLIMIT
650  * Please Place Description here.
651  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_NET_TYPE
652  * Please Place Description here.
653  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_INTV
654  * Please Place Description here.
655  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_SETUP_TIME
656  * Please Place Description here.
657  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_HOLD_TIME
658  * Please Place Description here.
659  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_MBSSID_EN
660  * Please Place Description here.
661  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_ERLY
662  * Please Place Description here.
663  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_MASK_AREA
664  * Please Place Description here.
665  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_TBTT_ERLY
666  * Please Place Description here.
667  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BSS_CLR
668  * Please Place Description here.
669  * @var mac_ax_port_cfg_type::MAC_AX_PCFG_BCN_DRP_ALL
670  * Please Place Description here.
671  */
672 enum mac_ax_port_cfg_type {
673 	MAC_AX_PCFG_FUNC_SW = 0,
674 	MAC_AX_PCFG_TX_SW,
675 	MAC_AX_PCFG_TX_RPT,
676 	MAC_AX_PCFG_RX_SW,
677 	MAC_AX_PCFG_RX_RPT,
678 	MAC_AX_PCFG_RX_SYNC,
679 	MAC_AX_PCFG_BCN_PRCT,
680 	MAC_AX_PCFG_TBTT_AGG,
681 	MAC_AX_PCFG_TBTT_SHIFT,
682 	MAC_AX_PCFG_RST_TSF,
683 	MAC_AX_PCFG_RST_TPR,
684 	MAC_AX_PCFG_BCAID,
685 	MAC_AX_PCFG_HIQ_WIN,
686 	MAC_AX_PCFG_HIQ_DTIM,
687 	MAC_AX_PCFG_HIQ_NOLIMIT,
688 	MAC_AX_PCFG_NET_TYPE,
689 	MAC_AX_PCFG_BCN_INTV,
690 	MAC_AX_PCFG_BCN_SETUP_TIME,
691 	MAC_AX_PCFG_BCN_HOLD_TIME,
692 	MAC_AX_PCFG_MBSSID_EN,
693 	MAC_AX_PCFG_BCN_ERLY,
694 	MAC_AX_PCFG_BCN_MASK_AREA,
695 	MAC_AX_PCFG_TBTT_ERLY,
696 	MAC_AX_PCFG_BSS_CLR,
697 	MAC_AX_PCFG_MBSSID_NUM,
698 	MAC_AX_PCFG_BCN_DRP_ALL,
699 };
700 
701 /**
702  * @enum mac_ax_band
703  *
704  * @brief mac_ax_band
705  *
706  * @var mac_ax_band::MAC_AX_BAND_0
707  * Please Place Description here.
708  * @var mac_ax_band::MAC_AX_BAND_1
709  * Please Place Description here.
710  * @var mac_ax_band::MAC_AX_BAND_NUM
711  * Please Place Description here.
712  */
713 enum mac_ax_band {
714 	MAC_AX_BAND_0 = 0,
715 	MAC_AX_BAND_1 = 1,
716 	MAC_AX_BAND_NUM = 2
717 };
718 
719 /**
720  * @enum mac_ax_port
721  *
722  * @brief mac_ax_port
723  *
724  * @var mac_ax_port::MAC_AX_PORT_0
725  * Please Place Description here.
726  * @var mac_ax_port::MAC_AX_PORT_1
727  * Please Place Description here.
728  * @var mac_ax_port::MAC_AX_PORT_2
729  * Please Place Description here.
730  * @var mac_ax_port::MAC_AX_PORT_3
731  * Please Place Description here.
732  * @var mac_ax_port::MAC_AX_PORT_4
733  * Please Place Description here.
734  * @var mac_ax_port::MAC_AX_PORT_NUM
735  * Please Place Description here.
736  */
737 enum mac_ax_port {
738 	MAC_AX_PORT_0 = 0,
739 	MAC_AX_PORT_1 = 1,
740 	MAC_AX_PORT_2 = 2,
741 	MAC_AX_PORT_3 = 3,
742 	MAC_AX_PORT_4 = 4,
743 	MAC_AX_PORT_NUM
744 };
745 
746 /**
747  * @enum mac_ax_addr_msk_sel
748  *
749  * @brief mac_ax_addr_msk_sel
750  *
751  * @var mac_ax_addr_msk_sel::MAC_AX_NO_MSK
752  * Please Place Description here.
753  * @var mac_ax_addr_msk_sel::MAC_AX_SMA_MSK
754  * Please Place Description here.
755  * @var mac_ax_addr_msk_sel::MAC_AX_TMA_MSK
756  * Please Place Description here.
757  * @var mac_ax_addr_msk_sel::MAC_AX_BSSID_MSK
758  * Please Place Description here.
759  */
760 enum mac_ax_addr_msk_sel {
761 	MAC_AX_NO_MSK,
762 	MAC_AX_SMA_MSK,
763 	MAC_AX_TMA_MSK,
764 	MAC_AX_BSSID_MSK
765 };
766 
767 /**
768  * @enum mac_ax_addr_msk
769  *
770  * @brief mac_ax_addr_msk
771  *
772  * @var mac_ax_addr_msk::MAC_AX_MASK_BYTE5_TO_BYTE5
773  * Please Place Description here.
774  * @var mac_ax_addr_msk::MAC_AX_MASK_BYTE5_TO_BYTE4
775  * Please Place Description here.
776  * @var mac_ax_addr_msk::MAC_AX_MASK_BYTE5_TO_BYTE3
777  * Please Place Description here.
778  * @var mac_ax_addr_msk::MAC_AX_MASK_BYTE5_TO_BYTE2
779  * Please Place Description here.
780  * @var mac_ax_addr_msk::MAC_AX_MASK_BYTE5_TO_BYTE1
781  * Please Place Description here.
782  */
783 enum mac_ax_addr_msk {
784 	MAC_AX_MSK_NONE = 0x3f,
785 	MAC_AX_BYTE5 = 0x1f,
786 	MAC_AX_BYTE5_TO_BYTE4 = 0xf,
787 	MAC_AX_BYTE5_TO_BYTE3 = 0x7,
788 	MAC_AX_BYTE5_TO_BYTE2 = 0x3,
789 	MAC_AX_BYTE5_TO_BYTE1 = 0x1,
790 	MAC_AX_MSK_ALL = 0x0
791 };
792 
793 /**
794  * @enum mac_ax_mbssid_idx
795  *
796  * @brief mac_ax_mbssid_idx
797  *
798  * @var mac_ax_mbssid_idx::MAC_AX_P0_ROOT
799  * Please Place Description here.
800  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID1
801  * Please Place Description here.
802  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID2
803  * Please Place Description here.
804  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID3
805  * Please Place Description here.
806  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID4
807  * Please Place Description here.
808  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID5
809  * Please Place Description here.
810  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID6
811  * Please Place Description here.
812  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID7
813  * Please Place Description here.
814  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID8
815  * Please Place Description here.
816  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID9
817  * Please Place Description here.
818  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID10
819  * Please Place Description here.
820  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID11
821  * Please Place Description here.
822  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID12
823  * Please Place Description here.
824  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID13
825  * Please Place Description here.
826  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID14
827  * Please Place Description here.
828  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID15
829  * Please Place Description here.
830  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID_LAST
831  * Please Place Description here.
832  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID_MAX
833  * Please Place Description here.
834  * @var mac_ax_mbssid_idx::MAC_AX_P0_MBID_INVALID
835  * Please Place Description here.
836  */
837 enum mac_ax_mbssid_idx {
838 	MAC_AX_P0_ROOT = 0,
839 	MAC_AX_P0_MBID1,
840 	MAC_AX_P0_MBID2,
841 	MAC_AX_P0_MBID3,
842 	MAC_AX_P0_MBID4,
843 	MAC_AX_P0_MBID5,
844 	MAC_AX_P0_MBID6,
845 	MAC_AX_P0_MBID7,
846 	MAC_AX_P0_MBID8,
847 	MAC_AX_P0_MBID9,
848 	MAC_AX_P0_MBID10,
849 	MAC_AX_P0_MBID11,
850 	MAC_AX_P0_MBID12,
851 	MAC_AX_P0_MBID13,
852 	MAC_AX_P0_MBID14,
853 	MAC_AX_P0_MBID15,
854 
855 	/* keep last */
856 	MAC_AX_P0_MBID_LAST,
857 	MAC_AX_P0_MBID_MAX = MAC_AX_P0_MBID_LAST,
858 	MAC_AX_P0_MBID_INVALID = MAC_AX_P0_MBID_LAST,
859 };
860 
861 /**
862  * @enum mac_ax_hwmod_sel
863  *
864  * @brief mac_ax_hwmod_sel
865  *
866  * @var mac_ax_hwmod_sel::MAC_AX_DMAC_SEL
867  * Please Place Description here.
868  * @var mac_ax_hwmod_sel::MAC_AX_CMAC_SEL
869  * Please Place Description here.
870  * @var mac_ax_hwmod_sel::MAC_AX_MAC_LAST
871  * Please Place Description here.
872  * @var mac_ax_hwmod_sel::MAC_AX_MAC_MAX
873  * Please Place Description here.
874  * @var mac_ax_hwmod_sel::MAC_AX_MAC_INVALID
875  * Please Place Description here.
876  */
877 enum mac_ax_hwmod_sel {
878 	MAC_AX_DMAC_SEL = 0,
879 	MAC_AX_CMAC_SEL = 1,
880 
881 	/* keep last */
882 	MAC_AX_MAC_LAST,
883 	MAC_AX_MAC_MAX = MAC_AX_MAC_LAST,
884 	MAC_AX_MAC_INVALID = MAC_AX_MAC_LAST,
885 };
886 
887 /**
888  * @enum mac_ax_ss_wmm
889  *
890  * @brief mac_ax_ss_wmm
891  *
892  * @var mac_ax_ss_wmm::MAC_AX_SS_WMM0
893  * Please Place Description here.
894  * @var mac_ax_ss_wmm::MAC_AX_SS_WMM1
895  * Please Place Description here.
896  * @var mac_ax_ss_wmm::MAC_AX_SS_WMM2
897  * Please Place Description here.
898  * @var mac_ax_ss_wmm::MAC_AX_SS_WMM3
899  * Please Place Description here.
900  * @var mac_ax_ss_wmm::MAC_AX_SS_UL
901  * Please Place Description here.
902  */
903 enum mac_ax_ss_wmm {
904 	MAC_AX_SS_WMM0,
905 	MAC_AX_SS_WMM1,
906 	MAC_AX_SS_WMM2,
907 	MAC_AX_SS_WMM3,
908 	MAC_AX_SS_UL,
909 };
910 
911 /**
912  * @enum mac_ax_ss_quota_mode
913  *
914  * @brief mac_ax_ss_quota_mode
915  *
916  * @var mac_ax_ss_quota_mode::MAC_AX_SS_QUOTA_MODE_TIME
917  * Please Place Description here.
918  * @var mac_ax_ss_quota_mode::MAC_AX_SS_QUOTA_MODE_CNT
919  * Please Place Description here.
920  */
921 enum mac_ax_ss_quota_mode {
922 	MAC_AX_SS_QUOTA_MODE_TIME = 0,
923 	MAC_AX_SS_QUOTA_MODE_CNT = 1,
924 };
925 
926 /**
927  * @enum mac_ax_issue_uldl_type
928  *
929  * @brief mac_ax_issue_uldl_type
930  *
931  * @var mac_ax_issue_uldl_type::mac_ax_issue_dl
932  * Please Place Description here.
933  * @var mac_ax_issue_uldl_type::mac_ax_issue_ul
934  * Please Place Description here.
935  */
936 enum mac_ax_issue_uldl_type {
937 	mac_ax_issue_dl = 0,
938 	mac_ax_issue_ul = 1,
939 };
940 
941 /**
942  * @enum mac_ax_hw_id
943  *
944  * @brief mac_ax_hw_id
945  *
946  * @var mac_ax_hw_id::MAC_AX_HW_MAPPING
947  * Please Place Description here.
948  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_MON_INT
949  * Please Place Description here.
950  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_MON_CNT
951  * Please Place Description here.
952  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_TX_AGG_SIZE
953  * Please Place Description here.
954  * @var mac_ax_hw_id::MAC_AX_HW_GET_AMPDU_CFG
955  * Please Place Description here.
956  * @var mac_ax_hw_id::MAC_AX_HW_GET_EDCA_PARAM
957  * Please Place Description here.
958  * @var mac_ax_hw_id::MAC_AX_HW_GET_EDCCA_PARAM
959  * Please Place Description here.
960  * @var mac_ax_hw_id::MAC_AX_HW_GET_MUEDCA_PARAM
961  * Please Place Description here.
962  * @var mac_ax_hw_id::MAC_AX_HW_GET_MUEDCA_TIMER
963  * Please Place Description here.
964  * @var mac_ax_hw_id::MAC_AX_HW_GET_TBPPDU_CTRL
965  * Please Place Description here.
966  * @var mac_ax_hw_id::MAC_AX_HW_GET_MUEDCA_CTRL
967  * Please Place Description here.
968  * @var mac_ax_hw_id::MAC_AX_HW_GET_DELAYTX_CFG
969  * Please Place Description here.
970  * @var mac_ax_hw_id::MAC_AX_HW_GET_SS_WMM_TBL
971  * Please Place Description here.
972  * @var mac_ax_hw_id::MAC_AX_HW_GET_EFUSE_SIZE
973  * Please Place Description here.
974  * @var mac_ax_hw_id::MAC_AX_HW_GET_LOGICAL_EFUSE_SIZE
975  * Please Place Description here.
976  * @var mac_ax_hw_id::MAC_AX_HW_GET_LIMIT_LOG_EFUSE_SIZE
977  * Please Place Description here.
978  * @var mac_ax_hw_id::MAC_AX_HW_GET_BT_EFUSE_SIZE
979  * Please Place Description here.
980  * @var mac_ax_hw_id::MAC_AX_HW_GET_BT_LOGICAL_EFUSE_SIZE
981  * Please Place Description here.
982  * @var mac_ax_hw_id::MAC_AX_HW_GET_EFUSE_MASK_SIZE
983  * Please Place Description here.
984  * @var mac_ax_hw_id::MAC_AX_HW_GET_LIMIT_EFUSE_MASK_SIZE
985  * Please Place Description here.
986  * @var mac_ax_hw_id::MAC_AX_HW_GET_BT_EFUSE_MASK_SIZE
987  * Please Place Description here.
988  * @var mac_ax_hw_id::MAC_AX_HW_GET_CH_STAT_CNT
989  * Please Place Description here.
990  * @var mac_ax_hw_id::MAC_AX_HW_GET_LIFETIME_CFG
991  * Please Place Description here.
992  * @var mac_ax_hw_id::MAC_AX_HW_GET_APP_FCS
993  * Please Place Description here.
994  * @var mac_ax_hw_id::MAC_AX_HW_GET_RX_ICVERR
995  * Please Place Description here.
996  * @var mac_ax_hw_id::MAC_AX_HW_GET_PWR_STATE
997  * Please Place Description here.
998  * @var mac_ax_hw_id::MAC_AX_HW_GET_WAKE_REASON
999  * Please Place Description here.
1000  * @var mac_ax_hw_id::MAC_AX_HW_GET_SCOREBOARD
1001  * Please Place Description here.
1002  * @var mac_ax_hw_id::MAC_AX_HW_GET_COEX_GNT
1003  * Please Place Description here.
1004  * @var mac_ax_hw_id::MAC_AX_HW_GET_RRSR
1005  * Please Place Description here.
1006  * @var mac_ax_hw_id::MAC_AX_HW_GET_COEX_CTRL
1007  * Please Place Description here.
1008  * @var mac_ax_hw_id::MAC_AX_HW_GET_TX_CNT
1009  * Please Place Description here.
1010  * @var mac_ax_hw_id::MAC_AX_TX_TF_INFO
1011  * Please Place Description here.
1012  * @var mac_ax_hw_id::MAC_AX_HW_GET_TSF
1013  * Please Place Description here.
1014  * @var mac_ax_hw_id::MAC_AX_HW_GET_MAX_TX_TIME
1015  * Please Place Description here.
1016  * @var mac_ax_hw_id::MAC_AX_HW_GET_SS_QUOTA_MODE
1017  * Please Place Description here.
1018  * @var mac_ax_hw_id::MAC_AX_HW_GET_SS_QUOTA_SETTING
1019  * Please Place Description here.
1020  * @var mac_ax_hw_id::MAC_AX_HW_GET_POLLUTED_CNT
1021  * Please Place Description here.
1022  * @var mac_ax_hw_id::MAC_AX_HW_GET_DATA_RTY_LMT
1023  * Please Place Description here.
1024  * @var mac_ax_hw_id::MAC_AX_HW_GET_DFLT_NAV
1025  * Please Place Description here.
1026  * @var mac_ax_hw_id::MAC_AX_HW_GET_BACAM_MODE_SEL
1027  * To get the BACAM option mode.
1028  * @var mac_ax_hw_id::MAC_AX_HW_GET_RRSR_CFG
1029  * for Get Response rate cfg
1030  * @var mac_ax_hw_id::MAC_AX_HW_GET_CTS_RRSR_CFG
1031  * for Get CTS Response rate cfg
1032  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_INFO
1033  * Please Place Description here.
1034  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_TX_MODE
1035  * Please Place Description here.
1036  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_RX_AGG
1037  * Please Place Description here.
1038  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_TX_AGG
1039  * Please Place Description here.
1040  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_AVAL_PAGE
1041  * Please Place Description here.
1042  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_MON_WT
1043  * Please Place Description here.
1044  * @var mac_ax_hw_id::MAC_AX_HW_SDIO_MON_CLK
1045  * Please Place Description here.
1046  * @var mac_ax_hw_id::MAC_AX_HW_PCIE_CFGSPC_SET
1047  * Please Place Description here.
1048  * @var mac_ax_hw_id::MAC_AX_HW_PCIE_RST_BDRAM
1049  * Please Place Description here.
1050  * @var mac_ax_hw_id::MAX_AX_HW_PCIE_LTR_SW_TRIGGER
1051  * Please Place Description here.
1052  * @var mac_ax_hw_id::MAC_AX_HW_SET_ID_PAUSE
1053  * Please Place Description here.
1054  * @var mac_ax_hw_id::MAC_AX_HW_SET_AMPDU_CFG
1055  * Please Place Description here.
1056  * @var mac_ax_hw_id::MAC_AX_HW_SET_USR_EDCA_PARAM
1057  * Please Place Description here.
1058  * @var mac_ax_hw_id::MAC_AX_HW_SET_EDCA_PARAM
1059  * Please Place Description here.
1060  * @var mac_ax_hw_id::MAC_AX_HW_SET_EDCCA_PARAM
1061  * Please Place Description here.
1062  * @var mac_ax_hw_id::MAC_AX_HW_SET_MUEDCA_PARAM
1063  * Please Place Description here.
1064  * @var mac_ax_hw_id::MAC_AX_HW_SET_TBPPDU_CTRL
1065  * Please Place Description here.
1066  * @var mac_ax_hw_id::MAC_AX_HW_SET_SCH_TXEN_CFG
1067  * Please Place Description here.
1068  * @var mac_ax_hw_id::MAC_AX_HW_SET_HOST_RPR
1069  * Please Place Description here.
1070  * @var mac_ax_hw_id::MAC_AX_HW_SET_MUEDCA_CTRL
1071  * Please Place Description here.
1072  * @var mac_ax_hw_id::MAC_AX_HW_SET_DELAYTX_CFG
1073  * Please Place Description here.
1074  * @var mac_ax_hw_id::MAC_AX_HW_SET_BW_CFG
1075  * Please Place Description here.
1076  * @var mac_ax_hw_id::MAC_AX_HW_SET_BT_BLOCK_TX
1077  * Please Place Description here.
1078  * @var mac_ax_hw_id::MAC_AX_HW_SET_LIFETIME_CFG
1079  * Please Place Description here.
1080  * @var mac_ax_hw_id::MAC_AX_HW_EN_BB_RF
1081  * Please Place Description here.
1082  * @var mac_ax_hw_id::MAC_AX_HW_SET_APP_FCS
1083  * Please Place Description here.
1084  * @var mac_ax_hw_id::MAC_AX_HW_SET_RX_ICVERR
1085  * Please Place Description here.
1086  * @var mac_ax_hw_id::MAC_AX_HW_SET_CCTL_RTY_LMT
1087  * Please Place Description here.
1088  * @var mac_ax_hw_id::MAC_AX_HW_SET_COEX_GNT
1089  * Please Place Description here.
1090  * @var mac_ax_hw_id::MAC_AX_HW_SET_SCOREBOARD
1091  * Please Place Description here.
1092  * @var mac_ax_hw_id::MAC_AX_HW_SET_POLLUTED
1093  * Please Place Description here.
1094  * @var mac_ax_hw_id::MAC_AX_HW_SET_COEX_CTRL
1095  * Please Place Description here.
1096  * @var mac_ax_hw_id::MAC_AX_HW_SET_CLR_TX_CNT
1097  * Please Place Description here.
1098  * @var mac_ax_hw_id::MAC_AX_HW_SET_SLOT_TIME
1099  * Please Place Description here.
1100  * @var mac_ax_hw_id::MAC_AX_HW_SET_XTAL_AAC_MODE
1101  * Please Place Description here.
1102  * @var mac_ax_hw_id::MAC_AX_HW_SET_NAV_PADDING
1103  * Please Place Description here.
1104  * @var mac_ax_hw_id::MAC_AX_HW_SET_MAX_TX_TIME
1105  * Please Place Description here.
1106  * @var mac_ax_hw_id::MAC_AX_HW_SET_SS_QUOTA_MODE
1107  * Please Place Description here.
1108  * @var mac_ax_hw_id::MAC_AX_HW_SET_SS_QUOTA_SETTING
1109  * Please Place Description here.
1110  * @var mac_ax_hw_id::MAC_AX_HW_SET_TX_RU26_TB
1111  * To enable or disable responding TB in RU26
1112  * @var mac_ax_hw_id::MAC_AX_HW_SET_BACAM_MODE_SEL
1113  * To change the BACAM option mode
1114  * @var mac_ax_hw_id::MAC_AX_HW_SET_CORE_SWR_VOLT
1115  * Please Place Description here.
1116  * @var mac_ax_hw_id::MAC_AX_HW_SET_PARTIAL_PLD_MODE
1117  * Please Place Description here.
1118  * @var mac_ax_hw_id::MAC_AX_HW_SET_RRSR_CFG
1119  * for Response rate cfg
1120  * @var mac_ax_hw_id::MAC_AX_HW_SET_CTS_RRSR_CFG
1121  * for CTS Response rate cfg
1122  */
1123 enum mac_ax_hw_id {
1124 	/* Get HW value */
1125 	MAC_AX_HW_MAPPING = 0x00,
1126 	MAC_AX_HW_SDIO_MON_INT,
1127 	MAC_AX_HW_SDIO_MON_CNT,
1128 	MAC_AX_HW_GET_ID_PAUSE,
1129 	MAC_AX_HW_SDIO_TX_AGG_SIZE,
1130 	MAC_AX_HW_GET_EDCA_PARAM,
1131 	MAC_AX_HW_GET_TBPPDU_CTRL,
1132 	MAC_AX_HW_GET_SCH_TXEN_STATUS,
1133 	MAC_AX_HW_GET_DELAYTX_CFG,
1134 	MAC_AX_HW_GET_SS_WMM_TBL,
1135 	MAC_AX_HW_GET_EFUSE_SIZE,
1136 	MAC_AX_HW_GET_LOGICAL_EFUSE_SIZE,
1137 	MAC_AX_HW_GET_LIMIT_LOG_EFUSE_SIZE,
1138 	MAC_AX_HW_GET_BT_EFUSE_SIZE,
1139 	MAC_AX_HW_GET_BT_LOGICAL_EFUSE_SIZE,
1140 	MAC_AX_HW_GET_EFUSE_MASK_SIZE,
1141 	MAC_AX_HW_GET_LIMIT_EFUSE_MASK_SIZE,
1142 	MAC_AX_HW_GET_BT_EFUSE_MASK_SIZE,
1143 	MAC_AX_HW_GET_EFUSE_VERSION_SIZE,
1144 	MAC_AX_HW_GET_CH_STAT_CNT,
1145 	MAC_AX_HW_GET_LIFETIME_CFG,
1146 	MAC_AX_HW_GET_APP_FCS,
1147 	MAC_AX_HW_GET_RX_ICVERR,
1148 	MAC_AX_HW_GET_PWR_STATE,
1149 	MAC_AX_HW_GET_WAKE_REASON,
1150 	MAC_AX_HW_GET_SCOREBOARD,
1151 	MAC_AX_HW_GET_COEX_GNT,
1152 	MAC_AX_HW_GET_COEX_CTRL,
1153 	MAC_AX_HW_GET_TX_CNT,
1154 	MAC_AX_HW_GET_TSF,
1155 	MAC_AX_HW_GET_MAX_TX_TIME,
1156 	MAC_AX_HW_GET_POLLUTED_CNT,
1157 	MAC_AX_HW_GET_DATA_RTY_LMT,
1158 	MAC_AX_HW_GET_DFLT_NAV,
1159 	MAC_AX_HW_GET_SCHE_PREBKF,
1160 	MAC_AX_HW_GET_FW_CAP,
1161 	MAC_AX_HW_GET_BACAM_MODE_SEL,
1162 	MAC_AX_HW_GET_RRSR_CFG,
1163 	MAC_AX_HW_GET_CTS_RRSR_CFG,
1164 	MAC_AX_HW_GET_USB_STS,
1165 	/* Set HW value */
1166 	MAC_AX_HW_SETTING = 0x60,
1167 	MAC_AX_HW_SDIO_INFO,
1168 	MAC_AX_HW_SDIO_TX_MODE,
1169 	MAC_AX_HW_SDIO_RX_AGG,
1170 	MAC_AX_HW_SDIO_TX_AGG,
1171 	MAC_AX_HW_SDIO_AVAL_PAGE,
1172 	MAC_AX_HW_SDIO_MON_WT,
1173 	MAC_AX_HW_SDIO_MON_CLK,
1174 	MAC_AX_HW_PCIE_CFGSPC_SET,
1175 	MAC_AX_HW_PCIE_RST_BDRAM,
1176 	MAX_AX_HW_PCIE_LTR_SW_TRIGGER,
1177 	MAX_AX_HW_PCIE_MIT,
1178 	MAX_AX_HW_PCIE_L2_LEAVE,
1179 	MAC_AX_HW_SET_ID_PAUSE,
1180 	MAC_AX_HW_SET_MULTI_ID_PAUSE,
1181 	MAC_AX_HW_SET_AMPDU_CFG,
1182 	MAC_AX_HW_SET_USR_EDCA_PARAM,
1183 	MAC_AX_HW_SET_USR_TX_RPT_CFG,
1184 	MAC_AX_HW_SET_EDCA_PARAM,
1185 	MAC_AX_HW_SET_EDCCA_PARAM,
1186 	MAC_AX_HW_SET_MUEDCA_PARAM,
1187 	MAC_AX_HW_SET_TBPPDU_CTRL,
1188 	MAC_AX_HW_SET_SCH_TXEN_CFG,
1189 	MAC_AX_HW_SET_HOST_RPR,
1190 	MAC_AX_HW_SET_MUEDCA_CTRL,
1191 	MAC_AX_HW_SET_DELAYTX_CFG,
1192 	MAC_AX_HW_SET_BW_CFG,
1193 	MAC_AX_HW_SET_CH_BUSY_STAT_CFG,
1194 	MAC_AX_HW_SET_LIFETIME_CFG,
1195 	MAC_AX_HW_EN_BB_RF,
1196 	MAC_AX_HW_SET_APP_FCS,
1197 	MAC_AX_HW_SET_RX_ICVERR,
1198 	MAC_AX_HW_SET_CCTL_RTY_LMT,
1199 	MAC_AX_HW_SET_COEX_GNT,
1200 	MAC_AX_HW_SET_SCOREBOARD,
1201 	MAC_AX_HW_SET_POLLUTED,
1202 	MAC_AX_HW_SET_COEX_CTRL,
1203 	MAC_AX_HW_SET_CLR_TX_CNT,
1204 	MAC_AX_HW_SET_SLOT_TIME,
1205 	MAC_AX_HW_SET_XTAL_AAC_MODE,
1206 	MAC_AX_HW_SET_NAV_PADDING,
1207 	MAC_AX_HW_SET_MAX_TX_TIME,
1208 	MAC_AX_HW_SET_SS_QUOTA_MODE,
1209 	MAC_AX_HW_SET_SS_QUOTA_SETTING,
1210 	MAC_AX_HW_SET_SCHE_PREBKF,
1211 	MAC_AX_HW_SET_WDT_ISR_RST,
1212 	MAC_AX_HW_SET_RESP_ACK,
1213 	MAC_AX_HW_SET_HW_RTS_TH,
1214 	MAC_AX_HW_SET_TX_RU26_TB,
1215 	MAC_AX_HW_SET_BACAM_MODE_SEL,
1216 	MAC_AX_HW_SET_CORE_SWR_VOLT,
1217 	MAC_AX_HW_SET_PARTIAL_PLD_MODE,
1218 	MAC_AX_HW_SET_RRSR_CFG,
1219 	MAC_AX_HW_SET_CTS_RRSR_CFG,
1220 	MAC_AX_HW_SET_GT3_TIMER,
1221 };
1222 
1223 /**
1224  * @enum mac_ax_rx_agg_mode
1225  *
1226  * @brief mac_ax_rx_agg_mode
1227  *
1228  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_NONE
1229  * Please Place Description here.
1230  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_DMA
1231  * Please Place Description here.
1232  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_USB
1233  * Please Place Description here.
1234  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_LAST
1235  * Please Place Description here.
1236  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_MAX
1237  * Please Place Description here.
1238  * @var mac_ax_rx_agg_mode::MAC_AX_RX_AGG_MODE_INVALID
1239  * Please Place Description here.
1240  */
1241 enum mac_ax_rx_agg_mode {
1242 	MAC_AX_RX_AGG_MODE_NONE,
1243 	MAC_AX_RX_AGG_MODE_DMA,
1244 	MAC_AX_RX_AGG_MODE_USB,
1245 
1246 	/* keep last */
1247 	MAC_AX_RX_AGG_MODE_LAST,
1248 	MAC_AX_RX_AGG_MODE_MAX = MAC_AX_RX_AGG_MODE_LAST,
1249 	MAC_AX_RX_AGG_MODE_INVALID = MAC_AX_RX_AGG_MODE_LAST,
1250 };
1251 
1252 /**
1253  * @enum mac_ax_usr_tx_rpt_mode
1254  *
1255  * @brief mac_ax_usr_tx_rpt_mode
1256  *
1257  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_DIS
1258  * disable report
1259  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_PERIOD
1260  * period mode
1261  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_LAST_PKT
1262  * report after last packet Tx
1263  */
1264 enum mac_ax_usr_tx_rpt_mode {
1265 	MAC_AX_USR_TX_RPT_DIS = 0,
1266 	MAC_AX_USR_TX_RPT_PERIOD = 1,
1267 	MAC_AX_USR_TX_RPT_LAST_PKT = 2,
1268 };
1269 
1270 /**
1271  * @enum mac_ax_usr_tx_rpt_mode
1272  *
1273  * @brief mac_ax_usr_tx_rpt_mode
1274  *
1275  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_DIS
1276  * disable report
1277  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_PERIOD
1278  * period mode
1279  * @var mac_ax_usr_tx_rpt_mode::MAC_AX_USR_TX_RPT_LAST_PKT
1280  * report after last packet Tx
1281  */
1282 enum mac_ax_ofld_mode {
1283 	MAC_AX_OFLD_MODE_DU_DIS = 0,
1284 	MAC_AX_OFLD_MODE_DU_VAL = 1,
1285 };
1286 
1287 /**
1288  * @enum mac_ax_cmac_ac_sel
1289  *
1290  * @brief mac_ax_cmac_ac_sel
1291  *
1292  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_BE
1293  * Please Place Description here.
1294  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_BK
1295  * Please Place Description here.
1296  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_VI
1297  * Please Place Description here.
1298  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_VO
1299  * Please Place Description here.
1300  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_LAST
1301  * Please Place Description here.
1302  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_MAX
1303  * Please Place Description here.
1304  * @var mac_ax_cmac_ac_sel::MAC_AX_CMAC_AC_SEL_INVALID
1305  * Please Place Description here.
1306  */
1307 enum mac_ax_cmac_ac_sel {
1308 	MAC_AX_CMAC_AC_SEL_BE = 0,
1309 	MAC_AX_CMAC_AC_SEL_BK = 1,
1310 	MAC_AX_CMAC_AC_SEL_VI = 2,
1311 	MAC_AX_CMAC_AC_SEL_VO = 3,
1312 
1313 	/* keep last */
1314 	MAC_AX_CMAC_AC_SEL_LAST,
1315 	MAC_AX_CMAC_AC_SEL_MAX = MAC_AX_CMAC_AC_SEL_LAST,
1316 	MAC_AX_CMAC_AC_SEL_INVALID = MAC_AX_CMAC_AC_SEL_LAST,
1317 };
1318 
1319 /**
1320  * @enum mac_ax_cmac_path_sel
1321  *
1322  * @brief mac_ax_cmac_path_sel
1323  *
1324  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_BE0
1325  * Please Place Description here.
1326  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_BK0
1327  * Please Place Description here.
1328  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_VI0
1329  * Please Place Description here.
1330  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_VO0
1331  * Please Place Description here.
1332  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_BE1
1333  * Please Place Description here.
1334  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_BK1
1335  * Please Place Description here.
1336  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_VI1
1337  * Please Place Description here.
1338  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_VO1
1339  * Please Place Description here.
1340  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_MG0_1
1341  * Please Place Description here.
1342  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_MG2
1343  * Please Place Description here.
1344  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_BCN
1345  * Please Place Description here.
1346  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_TF
1347  * Please Place Description here.
1348  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_TWT0
1349  * Please Place Description here.
1350  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_TWT1
1351  * Please Place Description here.
1352  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_LAST
1353  * Please Place Description here.
1354  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_MAX
1355  * Please Place Description here.
1356  * @var mac_ax_cmac_path_sel::MAC_AX_CMAC_PATH_SEL_INVALID
1357  * Please Place Description here.
1358  */
1359 enum mac_ax_cmac_path_sel {
1360 	MAC_AX_CMAC_PATH_SEL_BE0,
1361 	MAC_AX_CMAC_PATH_SEL_BK0,
1362 	MAC_AX_CMAC_PATH_SEL_VI0,
1363 	MAC_AX_CMAC_PATH_SEL_VO0,
1364 	MAC_AX_CMAC_PATH_SEL_BE1,
1365 	MAC_AX_CMAC_PATH_SEL_BK1,
1366 	MAC_AX_CMAC_PATH_SEL_VI1,
1367 	MAC_AX_CMAC_PATH_SEL_VO1,
1368 	MAC_AX_CMAC_PATH_SEL_MG0_1,
1369 	MAC_AX_CMAC_PATH_SEL_MG2,
1370 	MAC_AX_CMAC_PATH_SEL_BCN,
1371 	MAC_AX_CMAC_PATH_SEL_TF,
1372 	MAC_AX_CMAC_PATH_SEL_TWT0,
1373 	MAC_AX_CMAC_PATH_SEL_TWT1,
1374 
1375 	/* keep last */
1376 	MAC_AX_CMAC_PATH_SEL_LAST,
1377 	MAC_AX_CMAC_PATH_SEL_MAX = MAC_AX_CMAC_PATH_SEL_LAST,
1378 	MAC_AX_CMAC_PATH_SEL_INVALID = MAC_AX_CMAC_PATH_SEL_LAST,
1379 };
1380 
1381 /**
1382  * @enum mac_ax_cmac_usr_edca_idx
1383  *
1384  * @brief mac_ax_cmac_usr_edca_idx
1385  *
1386  * @var mac_ax_cmac_usr_edca_idx::MAC_AX_CMAC_USR_EDCA_IDX_0
1387  * Please Place Description here.
1388  * @var mac_ax_cmac_usr_edca_idx::MAC_AX_CMAC_USR_EDCA_IDX_1
1389  * Please Place Description here.
1390  * @var mac_ax_cmac_usr_edca_idx::MAC_AX_CMAC_USR_EDCA_IDX_2
1391  * Please Place Description here.
1392  * @var mac_ax_cmac_usr_edca_idx::MAC_AX_CMAC_USR_EDCA_IDX_3
1393  * Please Place Description here.
1394  */
1395 enum mac_ax_cmac_usr_edca_idx {
1396 	MAC_AX_CMAC_USR_EDCA_IDX_0 = 0,
1397 	MAC_AX_CMAC_USR_EDCA_IDX_1 = 1,
1398 	MAC_AX_CMAC_USR_EDCA_IDX_2 = 2,
1399 	MAC_AX_CMAC_USR_EDCA_IDX_3 = 3,
1400 };
1401 
1402 /**
1403  * @enum mac_ax_cmac_wmm_sel
1404  *
1405  * @brief mac_ax_cmac_wmm_sel
1406  *
1407  * @var mac_ax_cmac_wmm_sel::MAC_AX_CMAC_WMM0_SEL
1408  * Please Place Description here.
1409  * @var mac_ax_cmac_wmm_sel::MAC_AX_CMAC_WMM1_SEL
1410  * Please Place Description here.
1411  */
1412 enum mac_ax_cmac_wmm_sel {
1413 	MAC_AX_CMAC_WMM0_SEL = 0,
1414 	MAC_AX_CMAC_WMM1_SEL = 1,
1415 };
1416 
1417 /**
1418  * @enum mac_ax_ss_wmm_tbl
1419  *
1420  * @brief mac_ax_ss_wmm_tbl
1421  *
1422  * @var mac_ax_ss_wmm_tbl::MAC_AX_SS_WMM_TBL_C0_WMM0
1423  * Please Place Description here.
1424  * @var mac_ax_ss_wmm_tbl::MAC_AX_SS_WMM_TBL_C0_WMM1
1425  * Please Place Description here.
1426  * @var mac_ax_ss_wmm_tbl::MAC_AX_SS_WMM_TBL_C1_WMM0
1427  * Please Place Description here.
1428  * @var mac_ax_ss_wmm_tbl::MAC_AX_SS_WMM_TBL_C1_WMM1
1429  * Please Place Description here.
1430  */
1431 enum mac_ax_ss_wmm_tbl {
1432 	MAC_AX_SS_WMM_TBL_C0_WMM0 = 0,
1433 	MAC_AX_SS_WMM_TBL_C0_WMM1 = 1,
1434 	MAC_AX_SS_WMM_TBL_C1_WMM0 = 2,
1435 	MAC_AX_SS_WMM_TBL_C1_WMM1 = 3,
1436 };
1437 
1438 enum mac_ax_tx_idle_poll_sel {
1439 	MAC_AX_TX_IDLE_POLL_SEL_BAND,
1440 };
1441 
1442 /**
1443  * @enum mac_ax_mcc_status
1444  *
1445  * @brief mac_ax_mcc_status
1446  *
1447  * @var mac_ax_mcc_status::MAC_AX_MCC_ADD_ROLE_OK
1448  * Please Place Description here.
1449  * @var mac_ax_mcc_status::MAC_AX_MCC_START_GROUP_OK
1450  * Please Place Description here.
1451  * @var mac_ax_mcc_status::MAC_AX_MCC_STOP_GROUP_OK
1452  * Please Place Description here.
1453  * @var mac_ax_mcc_status::MAC_AX_MCC_DEL_GROUP_OK
1454  * Please Place Description here.
1455  * @var mac_ax_mcc_status::MAC_AX_MCC_RESET_GROUP_OK
1456  * Please Place Description here.
1457  * @var mac_ax_mcc_status::MAC_AX_MCC_SWITCH_CH_OK
1458  * Please Place Description here.
1459  * @var mac_ax_mcc_status::MAC_AX_MCC_TXNULL0_OK
1460  * Please Place Description here.
1461  * @var mac_ax_mcc_status::MAC_AX_MCC_TXNULL1_OK
1462  * Please Place Description here.
1463  * @var mac_ax_mcc_status::MAC_AX_MCC_SWITCH_EARLY
1464  * Please Place Description here.
1465  * @var mac_ax_mcc_status::MAC_AX_MCC_TBTT
1466  * Please Place Description here.
1467  * @var mac_ax_mcc_status::MAC_AX_MCC_DURATION_START
1468  * Please Place Description here.
1469  * @var mac_ax_mcc_status::MAC_AX_MCC_DURATION_END
1470  * Please Place Description here.
1471  * @var mac_ax_mcc_status::MAC_AX_MCC_ADD_ROLE_FAIL
1472  * Please Place Description here.
1473  * @var mac_ax_mcc_status::MAC_AX_MCC_START_GROUP_FAIL
1474  * Please Place Description here.
1475  * @var mac_ax_mcc_status::MAC_AX_MCC_STOP_GROUP_FAIL
1476  * Please Place Description here.
1477  * @var mac_ax_mcc_status::MAC_AX_MCC_DEL_GROUP_FAIL
1478  * Please Place Description here.
1479  * @var mac_ax_mcc_status::MAC_AX_MCC_RESET_GROUP_FAIL
1480  * Please Place Description here.
1481  * @var mac_ax_mcc_status::MAC_AX_MCC_SWITCH_CH_FAIL
1482  * Please Place Description here.
1483  * @var mac_ax_mcc_status::MAC_AX_MCC_TXNULL0_FAIL
1484  * Please Place Description here.
1485  * @var mac_ax_mcc_status::MAC_AX_MCC_TXNULL1_FAIL
1486  * Please Place Description here.
1487  */
1488 enum mac_ax_mcc_status {
1489 	MAC_AX_MCC_ADD_ROLE_OK = 0,
1490 	MAC_AX_MCC_START_GROUP_OK = 1,
1491 	MAC_AX_MCC_STOP_GROUP_OK = 2,
1492 	MAC_AX_MCC_DEL_GROUP_OK = 3,
1493 	MAC_AX_MCC_RESET_GROUP_OK = 4,
1494 	MAC_AX_MCC_SWITCH_CH_OK = 5,
1495 	MAC_AX_MCC_TXNULL0_OK = 6,
1496 	MAC_AX_MCC_TXNULL1_OK = 7,
1497 
1498 	MAC_AX_MCC_SWITCH_EARLY = 10,
1499 	MAC_AX_MCC_TBTT = 11,
1500 	MAC_AX_MCC_DURATION_START = 12,
1501 	MAC_AX_MCC_DURATION_END = 13,
1502 
1503 	MAC_AX_MCC_ADD_ROLE_FAIL = 20,
1504 	MAC_AX_MCC_START_GROUP_FAIL = 21,
1505 	MAC_AX_MCC_STOP_GROUP_FAIL = 22,
1506 	MAC_AX_MCC_DEL_GROUP_FAIL = 23,
1507 	MAC_AX_MCC_RESET_GROUP_FAIL = 24,
1508 	MAC_AX_MCC_SWITCH_CH_FAIL = 25,
1509 	MAC_AX_MCC_TXNULL0_FAIL = 26,
1510 	MAC_AX_MCC_TXNULL1_FAIL = 27,
1511 };
1512 
1513 /**
1514  * @enum mac_ax_trx_mitigation_timer_unit
1515  *
1516  * @brief mac_ax_trx_mitigation_timer_unit
1517  *
1518  * @var mac_ax_trx_mitigation_timer_unit::MAC_AX_MIT_64US
1519  * Please Place Description here.
1520  * @var mac_ax_trx_mitigation_timer_unit::MAC_AX_MIT_128US
1521  * Please Place Description here.
1522  * @var mac_ax_trx_mitigation_timer_unit::MAC_AX_MIT_256US
1523  * Please Place Description here.
1524  * @var mac_ax_trx_mitigation_timer_unit::MAC_AX_MIT_512US
1525  * Please Place Description here.
1526  */
1527 enum mac_ax_trx_mitigation_timer_unit {
1528 	MAC_AX_MIT_64US,
1529 	MAC_AX_MIT_128US,
1530 	MAC_AX_MIT_256US,
1531 	MAC_AX_MIT_512US
1532 };
1533 
1534 /**
1535  * @enum mac_ax_wow_wake_reason
1536  *
1537  * @brief mac_ax_wow_wake_reason
1538  *
1539  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_PAIRWISEKEY
1540  * Please Place Description here.
1541  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_GTK
1542  * Please Place Description here.
1543  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_FOURWAY_HANDSHAKE
1544  * Please Place Description here.
1545  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_DISASSOC
1546  * Please Place Description here.
1547  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_DEAUTH
1548  * Please Place Description here.
1549  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_ARP_REQUEST
1550  * Please Place Description here.
1551  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_NS
1552  * Please Place Description here.
1553  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_EAPREQ_IDENTIFY
1554  * Please Place Description here.
1555  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_FW_DECISION_DISCONNECT
1556  * Please Place Description here.
1557  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_MAGIC_PKT
1558  * Please Place Description here.
1559  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_UNICAST_PKT
1560  * Please Place Description here.
1561  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_PATTERN_PKT
1562  * Please Place Description here.
1563  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RTD3_SSID_MATCH
1564  * Please Place Description here.
1565  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_DATA_PKT
1566  * Please Place Description here.
1567  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_SSDP_MATCH
1568  * Please Place Description here.
1569  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_WSD_MATCH
1570  * Please Place Description here.
1571  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_SLP_MATCH
1572  * Please Place Description here.
1573  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_LLTD_MATCH
1574  * Please Place Description here.
1575  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_MDNS_MATCH
1576  * Please Place Description here.
1577  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_REALWOW_V2_WAKEUP_PKT
1578  * Please Place Description here.
1579  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_REALWOW_V2_ACK_LOST
1580  * Please Place Description here.
1581  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_REALWOW_V2_TX_KAPKT
1582  * Please Place Description here.
1583  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_ENABLE_FAIL_DMA_IDLE
1584  * Please Place Description here.
1585  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_ENABLE_FAIL_DMA_PAUSE
1586  * Please Place Description here.
1587  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RTIME_FAIL_DMA_IDLE
1588  * Please Place Description here.
1589  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RTIME_FAIL_DMA_PAUSE
1590  * Please Place Description here.
1591  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_SNMP_MISMATCHED_PKT
1592  * Please Place Description here.
1593  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_RX_DESIGNATED_MAC_PKT
1594  * Please Place Description here.
1595  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_NLO_SSID_MACH
1596  * Please Place Description here.
1597  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_AP_OFFLOAD_WAKEUP
1598  * Please Place Description here.
1599  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_DMAC_ERROR_OCCURRED
1600  * Please Place Description here.
1601  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_EXCEPTION_OCCURRED
1602  * Please Place Description here.
1603  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_CLK_32K_UNLOCK
1604  * Please Place Description here.
1605  * @var mac_ax_wow_wake_reason::MAC_AX_WOW_CLK_32K_LOCK
1606  * Please Place Description here.
1607  */
1608 enum mac_ax_wow_wake_reason {
1609 	MAC_AX_WOW_RX_PAIRWISEKEY = 0x01,
1610 	MAC_AX_WOW_RX_GTK = 0x02,
1611 	MAC_AX_WOW_RX_FOURWAY_HANDSHAKE = 0x03,
1612 	MAC_AX_WOW_RX_DISASSOC = 0x04,
1613 	MAC_AX_WOW_RX_DEAUTH = 0x08,
1614 	MAC_AX_WOW_RX_ARP_REQUEST = 0x09,
1615 	MAC_AX_WOW_RX_NS = 0x0A,
1616 	MAC_AX_WOW_RX_EAPREQ_IDENTIFY = 0x0B,
1617 	MAC_AX_WOW_FW_DECISION_DISCONNECT = 0x10,
1618 	MAC_AX_WOW_RX_MAGIC_PKT = 0x21,
1619 	MAC_AX_WOW_RX_UNICAST_PKT = 0x22,
1620 	MAC_AX_WOW_RX_PATTERN_PKT = 0x23,
1621 	MAC_AX_WOW_RTD3_SSID_MATCH = 0x24,
1622 	MAC_AX_WOW_RX_DATA_PKT = 0x25,
1623 	MAC_AX_WOW_RX_SSDP_MATCH = 0x26,
1624 	MAC_AX_WOW_RX_WSD_MATCH = 0x27,
1625 	MAC_AX_WOW_RX_SLP_MATCH = 0x28,
1626 	MAC_AX_WOW_RX_LLTD_MATCH = 0x29,
1627 	MAC_AX_WOW_RX_MDNS_MATCH = 0x2A,
1628 	MAC_AX_WOW_RX_REALWOW_V2_WAKEUP_PKT = 0x30,
1629 	MAC_AX_WOW_RX_REALWOW_V2_ACK_LOST = 0x31,
1630 	MAC_AX_WOW_RX_REALWOW_V2_TX_KAPKT = 0x32,
1631 	MAC_AX_WOW_ENABLE_FAIL_DMA_IDLE = 0x40,
1632 	MAC_AX_WOW_ENABLE_FAIL_DMA_PAUSE = 0x41,
1633 	MAC_AX_WOW_RTIME_FAIL_DMA_IDLE = 0x42,
1634 	MAC_AX_WOW_RTIME_FAIL_DMA_PAUSE = 0x43,
1635 	MAC_AX_WOW_RX_SNMP_MISMATCHED_PKT = 0x50,
1636 	MAC_AX_WOW_RX_DESIGNATED_MAC_PKT = 0x51,
1637 	MAC_AX_WOW_NLO_SSID_MACH = 0x55,
1638 	MAC_AX_WOW_AP_OFFLOAD_WAKEUP = 0x66,
1639 	MAC_AX_WOW_DMAC_ERROR_OCCURRED = 0x70,
1640 	MAC_AX_WOW_EXCEPTION_OCCURRED = 0x71,
1641 	MAC_AX_WOW_L0_TO_L1_ERROR_OCCURRED = 0x72,
1642 	MAC_AX_WOW_ASSERT_OCCURRED = 0x73,
1643 	MAC_AX_WOW_L2_ERROR_OCCURRED = 0x74,
1644 	MAC_AX_WOW_WDT_TIMEOUT_WAKE = 0x75,
1645 	MAC_AX_WOW_RX_ACTION = 0xD0,
1646 	MAC_AX_WOW_CLK_32K_UNLOCK = 0xFD,
1647 	MAC_AX_WOW_CLK_32K_LOCK = 0xFE
1648 };
1649 
1650 /**
1651  * @enum mac_ax_wow_fw_status
1652  *
1653  * @brief mac_ax_wow_fw_status
1654  *
1655  * @var mac_ax_wow_fw_status::MAC_AX_WOW_NOT_READY
1656  * Please Place Description here.
1657  * @var mac_ax_wow_fw_status::MAC_AX_WOW_SLEEP
1658  * Please Place Description here.
1659  * @var mac_ax_wow_fw_status::MAC_AX_WOW_RESUME
1660  * Please Place Description here.
1661  */
1662 enum mac_ax_wow_fw_status {
1663 	MAC_AX_WOW_NOT_READY,
1664 	MAC_AX_WOW_SLEEP,
1665 	MAC_AX_WOW_RESUME
1666 };
1667 
1668 /**
1669  * @enum mac_ax_wow_ctrl
1670  *
1671  * @brief mac_ax_wow_ctrl
1672  *
1673  * @var mac_ax_wow_ctrl::MAC_AX_WOW_ENTER
1674  * Please Place Description here.
1675  * @var mac_ax_wow_ctrl::MAC_AX_WOW_LEAVE
1676  * Please Place Description here.
1677  */
1678 enum mac_ax_wow_ctrl {
1679 	MAC_AX_WOW_ENTER,
1680 	MAC_AX_WOW_LEAVE
1681 };
1682 
1683 /**
1684  * @enum mac_ax_mac_pwr_st
1685  *
1686  * @brief mac_ax_mac_pwr_st
1687  *
1688  * @var mac_ax_mac_pwr_st::MAC_AX_MAC_OFF
1689  * Please Place Description here.
1690  * @var mac_ax_mac_pwr_st::MAC_AX_MAC_ON
1691  * Please Place Description here.
1692  * @var mac_ax_mac_pwr_st::MAC_AX_MAC_LPS
1693  * Please Place Description here.
1694  */
1695 enum mac_ax_mac_pwr_st {
1696 	MAC_AX_MAC_OFF = 0,
1697 	MAC_AX_MAC_ON = 1,
1698 	MAC_AX_MAC_LPS = 2
1699 };
1700 
1701 /**
1702  * @enum mac_ax_core_swr_volt
1703  *
1704  * @brief mac_ax_core_swr_volt
1705  *
1706  * @var mac_ax_core_swr_volt::MAC_AX_SWR_LOW
1707  * Please Place Description here.
1708  * @var mac_ax_core_swr_volt::MAC_AX_SWR_NORM
1709  * Please Place Description here.
1710  * @var mac_ax_core_swr_volt::MAC_AX_SWR_HIGH
1711  * Please Place Description here.
1712  */
1713 enum mac_ax_core_swr_volt {
1714 	MAC_AX_SWR_LOW = 0,
1715 	MAC_AX_SWR_NORM = 3,
1716 	MAC_AX_SWR_HIGH = 6
1717 };
1718 
1719 /*--------------------Define DBG and recovery related enum--------------------*/
1720 
1721 /**
1722  * @enum mac_ax_err_info
1723  *
1724  * @brief mac_ax_err_info
1725  *
1726  * @var mac_ax_err_info::MAC_AX_ERR_L0_ERR_CMAC0
1727  * Please Place Description here.
1728  * @var mac_ax_err_info::MAC_AX_ERR_L0_ERR_CMAC1
1729  * Please Place Description here.
1730  * @var mac_ax_err_info::MAC_AX_ERR_L0_RESET_DONE
1731  * Please Place Description here.
1732  * @var mac_ax_err_info::MAC_AX_ERR_L0_PROMOTE_TO_L1
1733  * Please Place Description here.
1734  * @var mac_ax_err_info::MAC_AX_ERR_L1_ERR_DMAC
1735  * Please Place Description here.
1736  * @var mac_ax_err_info::MAC_AX_ERR_L1_RESET_DISABLE_DMAC_DONE
1737  * Please Place Description here.
1738  * @var mac_ax_err_info::MAC_AX_ERR_L1_RESET_RECOVERY_DONE
1739  * Please Place Description here.
1740  * @var mac_ax_err_info::MAC_AX_ERR_L1_PROMOTE_TO_L2
1741  * Please Place Description here.
1742  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_DMA
1743  * Please Place Description here.
1744  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_HCI
1745  * Please Place Description here.
1746  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_RLX4081
1747  * Please Place Description here.
1748  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_IDDMA
1749  * Please Place Description here.
1750  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_HIOE
1751  * Please Place Description here.
1752  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_IPSEC
1753  * Please Place Description here.
1754  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_RX4281
1755  * Please Place Description here.
1756  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AH_OTHERS
1757  * Please Place Description here.
1758  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_DMA
1759  * Please Place Description here.
1760  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_HCI
1761  * Please Place Description here.
1762  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_RLX4081
1763  * Please Place Description here.
1764  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_IDDMA
1765  * Please Place Description here.
1766  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_HIOE
1767  * Please Place Description here.
1768  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_IPSEC
1769  * Please Place Description here.
1770  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_RX4281
1771  * Please Place Description here.
1772  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_AHB_TO_OTHERS
1773  * Please Place Description here.
1774  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WVA
1775  * Please Place Description here.
1776  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_UART
1777  * Please Place Description here.
1778  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_CPULOCAL
1779  * Please Place Description here.
1780  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_AXIDMA
1781  * Please Place Description here.
1782  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_HIOE
1783  * Please Place Description here.
1784  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_IDDMA
1785  * Please Place Description here.
1786  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_IPSEC
1787  * Please Place Description here.
1788  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WON
1789  * Please Place Description here.
1790  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WDMAC
1791  * Please Place Description here.
1792  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WCMAC
1793  * Please Place Description here.
1794  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_OTHERS
1795  * Please Place Description here.
1796  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WVA
1797  * Please Place Description here.
1798  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_UART
1799  * Please Place Description here.
1800  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_CPULOCAL
1801  * Please Place Description here.
1802  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_AXIDMA
1803  * Please Place Description here.
1804  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_HIOE
1805  * Please Place Description here.
1806  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_IDDMA
1807  * Please Place Description here.
1808  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_IPSEC
1809  * Please Place Description here.
1810  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WDMAC
1811  * Please Place Description here.
1812  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WCMAC
1813  * Please Place Description here.
1814  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_OTHERS
1815  * Please Place Description here.
1816  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WVA
1817  * Please Place Description here.
1818  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_UART
1819  * Please Place Description here.
1820  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_CPULOCAL
1821  * Please Place Description here.
1822  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_AXIDMA
1823  * Please Place Description here.
1824  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_HIOE
1825  * Please Place Description here.
1826  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_IDDMA
1827  * Please Place Description here.
1828  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_IPSEC
1829  * Please Place Description here.
1830  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WON
1831  * Please Place Description here.
1832  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WDMAC
1833  * Please Place Description here.
1834  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WCMAC
1835  * Please Place Description here.
1836  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_OTHERS
1837  * Please Place Description here.
1838  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WVA
1839  * Please Place Description here.
1840  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_UART
1841  * Please Place Description here.
1842  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_CPULOCAL
1843  * Please Place Description here.
1844  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_AXIDMA
1845  * Please Place Description here.
1846  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_HIOE
1847  * Please Place Description here.
1848  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_IDDMA
1849  * Please Place Description here.
1850  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_IPSEC
1851  * Please Place Description here.
1852  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WON
1853  * Please Place Description here.
1854  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WDMAC
1855  * Please Place Description here.
1856  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WCMAC
1857  * Please Place Description here.
1858  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_OTHERS
1859  * Please Place Description here.
1860  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WVA
1861  * Please Place Description here.
1862  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_UART
1863  * Please Place Description here.
1864  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_CPULOCAL
1865  * Please Place Description here.
1866  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_AXIDMA
1867  * Please Place Description here.
1868  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_HIOE
1869  * Please Place Description here.
1870  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_IDDMA
1871  * Please Place Description here.
1872  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_IPSEC
1873  * Please Place Description here.
1874  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WON
1875  * Please Place Description here.
1876  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WDMAC
1877  * Please Place Description here.
1878  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WCMAC
1879  * Please Place Description here.
1880  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_OTHERS
1881  * Please Place Description here.
1882  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WVA
1883  * Please Place Description here.
1884  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_UART
1885  * Please Place Description here.
1886  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_CPULOCAL
1887  * Please Place Description here.
1888  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_AXIDMA
1889  * Please Place Description here.
1890  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_HIOE
1891  * Please Place Description here.
1892  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_IDDMA
1893  * Please Place Description here.
1894  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_IPSEC
1895  * Please Place Description here.
1896  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WON
1897  * Please Place Description here.
1898  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WDMAC
1899  * Please Place Description here.
1900  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WCMAC
1901  * Please Place Description here.
1902  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_OTHERS
1903  * Please Place Description here.
1904  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WVA
1905  * Please Place Description here.
1906  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_UART
1907  * Please Place Description here.
1908  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_CPULOCAL
1909  * Please Place Description here.
1910  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_AXIDMA
1911  * Please Place Description here.
1912  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_HIOE
1913  * Please Place Description here.
1914  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_IDDMA
1915  * Please Place Description here.
1916  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_IPSEC
1917  * Please Place Description here.
1918  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WON
1919  * Please Place Description here.
1920  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WDMAC
1921  * Please Place Description here.
1922  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WCMAC
1923  * Please Place Description here.
1924  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_OTHERS
1925  * Please Place Description here.
1926  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WVA
1927  * Please Place Description here.
1928  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_UART
1929  * Please Place Description here.
1930  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_CPULOCAL
1931  * Please Place Description here.
1932  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_AXIDMA
1933  * Please Place Description here.
1934  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_HIOE
1935  * Please Place Description here.
1936  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_IDDMA
1937  * Please Place Description here.
1938  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_IPSEC
1939  * Please Place Description here.
1940  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WON
1941  * Please Place Description here.
1942  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WDMAC
1943  * Please Place Description here.
1944  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WCMAC
1945  * Please Place Description here.
1946  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_OTHERS
1947  * Please Place Description here.
1948  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_DMA
1949  * Please Place Description here.
1950  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_HCI
1951  * Please Place Description here.
1952  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_RLX4081
1953  * Please Place Description here.
1954  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_IDDMA
1955  * Please Place Description here.
1956  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_HIOE
1957  * Please Place Description here.
1958  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_IPSEC
1959  * Please Place Description here.
1960  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_RX4281
1961  * Please Place Description here.
1962  * @var mac_ax_err_info::MAC_AX_ERR_L2_ERR_APB_BBRF_TO_OTHERS
1963  * Please Place Description here.
1964  * @var mac_ax_err_info::MAC_AX_ERR_L2_RESET_DONE
1965  * Please Place Description here.
1966  * @var mac_ax_err_info::MAC_AX_GET_ERR_MAX
1967  * Please Place Description here.
1968  * @var mac_ax_err_info::MAC_AX_ERR_L1_DISABLE_EN
1969  * Please Place Description here.
1970  * @var mac_ax_err_info::MAC_AX_ERR_L1_RCVY_EN
1971  * Please Place Description here.
1972  * @var mac_ax_err_info::MAC_AX_ERR_L0_CFG_NOTIFY
1973  * Please Place Description here.
1974  * @var mac_ax_err_info::MAC_AX_ERR_L0_CFG_DIS_NOTIFY
1975  * Please Place Description here.
1976  * @var mac_ax_err_info::MAC_AX_ERR_L0_CFG_HANDSHAKE
1977  * Please Place Description here.
1978  * @var mac_ax_err_info::MAC_AX_ERR_L0_RCVY_EN
1979  * Please Place Description here.
1980  * @var mac_ax_err_info::MAC_AX_SET_ERR_MAX
1981  * Please Place Description here.
1982  */
1983 enum mac_ax_err_info {
1984 	// Get error info
1985 	// L0
1986 	MAC_AX_ERR_L0_ERR_CMAC0 = 0x0001,
1987 	MAC_AX_ERR_L0_ERR_CMAC1 = 0x0002,
1988 	MAC_AX_ERR_L0_RESET_DONE = 0x0003,
1989 	MAC_AX_ERR_L0_PROMOTE_TO_L1 = 0x0010,
1990 	// L1
1991 	MAC_AX_ERR_L1_ERR_DMAC = 0x1000,
1992 	MAC_AX_ERR_L1_RESET_DISABLE_DMAC_DONE = 0x1001,
1993 	MAC_AX_ERR_L1_RESET_RECOVERY_DONE = 0x1002,
1994 	MAC_AX_ERR_L1_PROMOTE_TO_L2 = 0x1010,
1995 	MAC_AX_ERR_L1_RCVY_STOP_DONE = 0x1011,
1996 	// L2
1997 	// address hole (master)
1998 	MAC_AX_ERR_L2_ERR_AH_DMA = 0x2000,
1999 	MAC_AX_ERR_L2_ERR_AH_HCI = 0x2010,
2000 	MAC_AX_ERR_L2_ERR_AH_RLX4081 = 0x2020,
2001 	MAC_AX_ERR_L2_ERR_AH_IDDMA = 0x2030,
2002 	MAC_AX_ERR_L2_ERR_AH_HIOE = 0x2040,
2003 	MAC_AX_ERR_L2_ERR_AH_IPSEC = 0x2050,
2004 	MAC_AX_ERR_L2_ERR_AH_RX4281 = 0x2060,
2005 	MAC_AX_ERR_L2_ERR_AH_OTHERS = 0x2070,
2006 	// AHB bridge timeout (master)
2007 	MAC_AX_ERR_L2_ERR_AHB_TO_DMA = 0x2100,
2008 	MAC_AX_ERR_L2_ERR_AHB_TO_HCI = 0x2110,
2009 	MAC_AX_ERR_L2_ERR_AHB_TO_RLX4081 = 0x2120,
2010 	MAC_AX_ERR_L2_ERR_AHB_TO_IDDMA = 0x2130,
2011 	MAC_AX_ERR_L2_ERR_AHB_TO_HIOE = 0x2140,
2012 	MAC_AX_ERR_L2_ERR_AHB_TO_IPSEC = 0x2150,
2013 	MAC_AX_ERR_L2_ERR_AHB_TO_RX4281 = 0x2160,
2014 	MAC_AX_ERR_L2_ERR_AHB_TO_OTHERS = 0x2170,
2015 	// APB_SA bridge timeout (master + slave)
2016 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WVA = 0x2200,
2017 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_UART = 0x2201,
2018 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_CPULOCAL = 0x2202,
2019 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_AXIDMA = 0x2203,
2020 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_HIOE = 0x2204,
2021 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_IDDMA = 0x2205,
2022 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_IPSEC = 0x2206,
2023 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WON = 0x2207,
2024 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WDMAC = 0x2208,
2025 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_WCMAC = 0x2209,
2026 	MAC_AX_ERR_L2_ERR_APB_SA_TO_DMA_OTHERS = 0x220A,
2027 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WVA = 0x2210,
2028 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_UART = 0x2211,
2029 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_CPULOCAL = 0x2212,
2030 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_AXIDMA = 0x2213,
2031 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_HIOE = 0x2214,
2032 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_IDDMA = 0x2215,
2033 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_IPSEC = 0x2216,
2034 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WDMAC = 0x2218,
2035 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_WCMAC = 0x2219,
2036 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HCI_OTHERS = 0x221A,
2037 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WVA = 0x2220,
2038 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_UART = 0x2221,
2039 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_CPULOCAL = 0x2222,
2040 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_AXIDMA = 0x2223,
2041 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_HIOE = 0x2224,
2042 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_IDDMA = 0x2225,
2043 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_IPSEC = 0x2226,
2044 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WON = 0x2227,
2045 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WDMAC = 0x2228,
2046 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_WCMAC = 0x2229,
2047 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RLX4081_OTHERS = 0x222A,
2048 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WVA = 0x2230,
2049 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_UART = 0x2231,
2050 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_CPULOCAL = 0x2232,
2051 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_AXIDMA = 0x2233,
2052 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_HIOE = 0x2234,
2053 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_IDDMA = 0x2235,
2054 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_IPSEC = 0x2236,
2055 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WON = 0x2237,
2056 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WDMAC = 0x2238,
2057 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_WCMAC = 0x2239,
2058 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IDDMA_OTHERS = 0x223A,
2059 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WVA = 0x2240,
2060 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_UART = 0x2241,
2061 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_CPULOCAL = 0x2242,
2062 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_AXIDMA = 0x2243,
2063 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_HIOE = 0x2244,
2064 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_IDDMA = 0x2245,
2065 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_IPSEC = 0x2246,
2066 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WON = 0x2247,
2067 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WDMAC = 0x2248,
2068 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_WCMAC = 0x2249,
2069 	MAC_AX_ERR_L2_ERR_APB_SA_TO_HIOE_OTHERS = 0x224A,
2070 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WVA = 0x2250,
2071 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_UART = 0x2251,
2072 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_CPULOCAL = 0x2252,
2073 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_AXIDMA = 0x2253,
2074 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_HIOE = 0x2254,
2075 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_IDDMA = 0x2255,
2076 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_IPSEC = 0x2256,
2077 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WON = 0x2257,
2078 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WDMAC = 0x2258,
2079 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_WCMAC = 0x2259,
2080 	MAC_AX_ERR_L2_ERR_APB_SA_TO_IPSEC_OTHERS = 0x225A,
2081 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WVA = 0x2260,
2082 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_UART = 0x2261,
2083 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_CPULOCAL = 0x2262,
2084 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_AXIDMA = 0x2263,
2085 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_HIOE = 0x2264,
2086 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_IDDMA = 0x2265,
2087 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_IPSEC = 0x2266,
2088 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WON = 0x2267,
2089 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WDMAC = 0x2268,
2090 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_WCMAC = 0x2269,
2091 	MAC_AX_ERR_L2_ERR_APB_SA_TO_RX4281_OTHERS = 0x226A,
2092 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WVA = 0x2270,
2093 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_UART = 0x2271,
2094 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_CPULOCAL = 0x2272,
2095 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_AXIDMA = 0x2273,
2096 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_HIOE = 0x2274,
2097 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_IDDMA = 0x2275,
2098 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_IPSEC = 0x2276,
2099 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WON = 0x2277,
2100 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WDMAC = 0x2278,
2101 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_WCMAC = 0x2279,
2102 	MAC_AX_ERR_L2_ERR_APB_SA_TO_OTHERS_OTHERS = 0x227A,
2103 	// APB_BBRF bridge timeout (master)
2104 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_DMA = 0x2300,
2105 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_HCI = 0x2310,
2106 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_RLX4081 = 0x2320,
2107 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_IDDMA = 0x2330,
2108 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_HIOE = 0x2340,
2109 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_IPSEC = 0x2350,
2110 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_RX4281 = 0x2360,
2111 	MAC_AX_ERR_L2_ERR_APB_BBRF_TO_OTHERS = 0x2370,
2112 	MAC_AX_ERR_L2_RESET_DONE = 0x2400,
2113 	MAC_AX_ERR_CPU_EXCEPTION = 0x3000,
2114 	MAC_AX_ERR_ASSERTION = 0x4000,
2115 	MAC_AX_GET_ERR_MAX,
2116 	//Use the special code to indicate phl should dump share buffer
2117 	MAC_AX_DUMP_SHAREBUFF_INDICATOR = 0x80000000,
2118 	// set error info
2119 	MAC_AX_ERR_L1_DISABLE_EN = 0x0001,
2120 	MAC_AX_ERR_L1_RCVY_EN = 0x0002,
2121 	MAC_AX_ERR_L1_RCVY_STOP_REQ = 0x0003,
2122 	MAC_AX_ERR_L1_RCVY_START_REQ = 0x0004,
2123 	MAC_AX_ERR_L0_CFG_NOTIFY = 0x0010,
2124 	MAC_AX_ERR_L0_CFG_DIS_NOTIFY = 0x0011,
2125 	MAC_AX_ERR_L0_CFG_HANDSHAKE = 0x0012,
2126 	MAC_AX_ERR_L0_RCVY_EN = 0x0013,
2127 	MAC_AX_SET_ERR_MAX,
2128 };
2129 
2130 /**
2131  * @enum mac_ax_mem_sel
2132  *
2133  * @brief mac_ax_mem_sel
2134  *
2135  * @var mac_ax_mem_sel::MAC_AX_MEM_AXIDMA
2136  * Please Place Description here.
2137  * @var mac_ax_mem_sel::MAC_AX_MEM_SHARED_BUF
2138  * Please Place Description here.
2139  * @var mac_ax_mem_sel::MAC_AX_MEM_DMAC_TBL
2140  * Please Place Description here.
2141  * @var mac_ax_mem_sel::MAC_AX_MEM_SHCUT_MACHDR
2142  * Please Place Description here.
2143  * @var mac_ax_mem_sel::MAC_AX_MEM_STA_SCHED
2144  * Please Place Description here.
2145  * @var mac_ax_mem_sel::MAC_AX_MEM_RXPLD_FLTR_CAM
2146  * Please Place Description here.
2147  * @var mac_ax_mem_sel::MAC_AX_MEM_SECURITY_CAM
2148  * Please Place Description here.
2149  * @var mac_ax_mem_sel::MAC_AX_MEM_WOW_CAM
2150  * Please Place Description here.
2151  * @var mac_ax_mem_sel::MAC_AX_MEM_CMAC_TBL
2152  * Please Place Description here.
2153  * @var mac_ax_mem_sel::MAC_AX_MEM_ADDR_CAM
2154  * Please Place Description here.
2155  * @var mac_ax_mem_sel::MAC_AX_MEM_BA_CAM
2156  * Please Place Description here.
2157  * @var mac_ax_mem_sel::MAC_AX_MEM_BCN_IE_CAM0
2158  * Please Place Description here.
2159  * @var mac_ax_mem_sel::MAC_AX_MEM_BCN_IE_CAM1
2160  * Please Place Description here.
2161  * @var mac_ax_mem_sel::MAC_AX_MEM_TXD_FIFO_0
2162  * Please Place Description here.
2163  * @var mac_ax_mem_sel::MAC_AX_MEM_TXD_FIFO_1
2164  * Please Place Description here.
2165  * @var mac_ax_mem_sel::MAC_AX_MEM_LAST
2166  * Please Place Description here.
2167  * @var mac_ax_mem_sel::MAC_AX_MEM_MAX
2168  * Please Place Description here.
2169  * @var mac_ax_mem_sel::MAC_AX_MEM_INVALID
2170  * Please Place Description here.
2171  */
2172 enum mac_ax_mem_sel {
2173 	MAC_AX_MEM_CPU_LOCAL,
2174 	MAC_AX_MEM_AXIDMA,
2175 	MAC_AX_MEM_SHARED_BUF,
2176 	MAC_AX_MEM_DMAC_TBL,
2177 	MAC_AX_MEM_SHCUT_MACHDR,
2178 	MAC_AX_MEM_STA_SCHED,
2179 	MAC_AX_MEM_RXPLD_FLTR_CAM,
2180 	MAC_AX_MEM_SECURITY_CAM,
2181 	MAC_AX_MEM_WOW_CAM,
2182 	MAC_AX_MEM_CMAC_TBL,
2183 	MAC_AX_MEM_ADDR_CAM,
2184 	MAC_AX_MEM_BA_CAM,
2185 	MAC_AX_MEM_BCN_IE_CAM0,
2186 	MAC_AX_MEM_BCN_IE_CAM1,
2187 	MAC_AX_MEM_TXD_FIFO_0,
2188 	MAC_AX_MEM_TXD_FIFO_1,
2189 
2190 	/* keep last */
2191 	MAC_AX_MEM_LAST,
2192 	MAC_AX_MEM_MAX = MAC_AX_MEM_LAST,
2193 	MAC_AX_MEM_INVALID = MAC_AX_MEM_LAST,
2194 };
2195 
2196 /**
2197  * @enum mac_ax_reg_sel
2198  *
2199  * @brief mac_ax_reg_sel
2200  *
2201  * @var mac_ax_reg_sel::MAC_AX_REG_MAC
2202  * Please Place Description here.
2203  * @var mac_ax_reg_sel::MAC_AX_REG_BB
2204  * Please Place Description here.
2205  * @var mac_ax_reg_sel::MAC_AX_REG_IQK
2206  * Please Place Description here.
2207  * @var mac_ax_reg_sel::MAC_AX_REG_RFC
2208  * Please Place Description here.
2209  * @var mac_ax_reg_sel::MAC_AX_REG_LAST
2210  * Please Place Description here.
2211  * @var mac_ax_reg_sel::MAC_AX_REG_MAX
2212  * Please Place Description here.
2213  * @var mac_ax_reg_sel::MAC_AX_REG_INVALID
2214  * Please Place Description here.
2215  */
2216 enum mac_ax_reg_sel {
2217 	MAC_AX_REG_MAC,
2218 	MAC_AX_REG_BB,
2219 	MAC_AX_REG_IQK,
2220 	MAC_AX_REG_RFC,
2221 
2222 	/* keep last */
2223 	MAC_AX_REG_LAST,
2224 	MAC_AX_REG_MAX = MAC_AX_REG_LAST,
2225 	MAC_AX_REG_INVALID = MAC_AX_REG_LAST,
2226 };
2227 
2228 /*--------------------Define GPIO related enum-------------------------------*/
2229 
2230 /**
2231  * @enum mac_ax_gpio_func
2232  *
2233  * @brief mac_ax_gpio_func
2234  *
2235  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_0
2236  * Please Place Description here.
2237  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_1
2238  * Please Place Description here.
2239  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_2
2240  * Please Place Description here.
2241  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_3
2242  * Please Place Description here.
2243  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_4
2244  * Please Place Description here.
2245  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_5
2246  * Please Place Description here.
2247  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_6
2248  * Please Place Description here.
2249  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_7
2250  * Please Place Description here.
2251  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_8
2252  * Please Place Description here.
2253  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_9
2254  * Please Place Description here.
2255  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_10
2256  * Please Place Description here.
2257  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_11
2258  * Please Place Description here.
2259  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_12
2260  * Please Place Description here.
2261  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_13
2262  * Please Place Description here.
2263  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_14
2264  * Please Place Description here.
2265  * @var mac_ax_gpio_func::MAC_AX_GPIO_SW_IO_15
2266  * Please Place Description here.
2267  * @var mac_ax_gpio_func::MAC_AX_GPIO_UART_TX_GPIO5
2268  * Please Place Description here.
2269  * @var mac_ax_gpio_func::MAC_AX_GPIO_UART_TX_GPIO7
2270  * Please Place Description here.
2271  * @var mac_ax_gpio_func::MAC_AX_GPIO_UART_TX_GPIO8
2272  * Please Place Description here.
2273  * @var mac_ax_gpio_func::MAC_AX_GPIO_UART_RX_GPIO6
2274  * Please Place Description here.
2275  * @var mac_ax_gpio_func::MAC_AX_GPIO_UART_RX_GPIO14
2276  * Please Place Description here.
2277  */
2278 enum mac_ax_gpio_func {
2279 	MAC_AX_GPIO_SW_IO_0,
2280 	MAC_AX_GPIO_SW_IO_1,
2281 	MAC_AX_GPIO_SW_IO_2,
2282 	MAC_AX_GPIO_SW_IO_3,
2283 	MAC_AX_GPIO_SW_IO_4,
2284 	MAC_AX_GPIO_SW_IO_5,
2285 	MAC_AX_GPIO_SW_IO_6,
2286 	MAC_AX_GPIO_SW_IO_7,
2287 	MAC_AX_GPIO_SW_IO_8,
2288 	MAC_AX_GPIO_SW_IO_9,
2289 	MAC_AX_GPIO_SW_IO_10,
2290 	MAC_AX_GPIO_SW_IO_11,
2291 	MAC_AX_GPIO_SW_IO_12,
2292 	MAC_AX_GPIO_SW_IO_13,
2293 	MAC_AX_GPIO_SW_IO_14,
2294 	MAC_AX_GPIO_SW_IO_15,
2295 	MAC_AX_GPIO_UART_TX_GPIO5,
2296 	MAC_AX_GPIO_UART_TX_GPIO7,
2297 	MAC_AX_GPIO_UART_TX_GPIO8,
2298 	MAC_AX_GPIO_UART_RX_GPIO6,
2299 	MAC_AX_GPIO_UART_RX_GPIO14,
2300 };
2301 
2302 /**
2303  * @enum mac_ax_uart_tx_pin
2304  *
2305  * @brief mac_ax_uart_tx_pin
2306  *
2307  * @var mac_ax_uart_tx_pin::MAC_AX_UART_TX_GPIO5
2308  * Please Place Description here.
2309  * @var mac_ax_uart_tx_pin::MAC_AX_UART_TX_GPIO7
2310  * Please Place Description here.
2311  * @var mac_ax_uart_tx_pin::MAC_AX_UART_TX_GPIO8
2312  * Please Place Description here.
2313  * @var mac_ax_uart_tx_pin::MAC_AX_UART_TX_GPIO5_GPIO8
2314  * Please Place Description here.
2315  */
2316 enum mac_ax_uart_tx_pin {
2317 	MAC_AX_UART_TX_GPIO5,
2318 	MAC_AX_UART_TX_GPIO7,
2319 	MAC_AX_UART_TX_GPIO8,
2320 	MAC_AX_UART_TX_GPIO5_GPIO8,
2321 };
2322 
2323 /**
2324  * @enum mac_ax_uart_rx_pin
2325  *
2326  * @brief mac_ax_uart_rx_pin
2327  *
2328  * @var mac_ax_uart_rx_pin::MAC_AX_UART_RX_GPIO6
2329  * Please Place Description here.
2330  * @var mac_ax_uart_rx_pin::MAC_AX_UART_RX_GPIO14
2331  * Please Place Description here.
2332  */
2333 enum mac_ax_uart_rx_pin {
2334 	MAC_AX_UART_RX_GPIO6,
2335 	MAC_AX_UART_RX_GPIO14,
2336 };
2337 
2338 /**
2339  * @enum mac_ax_led_mode
2340  *
2341  * @brief mac_ax_led_mode
2342  *
2343  * @var mac_ax_led_mode::MAC_AX_LED_MODE_TRX_ON
2344  * Please Place Description here.
2345  * @var mac_ax_led_mode::MAC_AX_LED_MODE_TX_ON
2346  * Please Place Description here.
2347  * @var mac_ax_led_mode::MAC_AX_LED_MODE_RX_ON
2348  * Please Place Description here.
2349  * @var mac_ax_led_mode::MAC_AX_LED_MODE_SW_CTRL_OD
2350  * Please Place Description here.
2351  * @var mac_ax_led_mode::MAC_AX_LED_MODE_SW_CTRL_PP
2352  * Please Place Description here.
2353  * @var mac_ax_led_mode::MAC_AX_LED_MODE_LAST
2354  * Please Place Description here.
2355  * @var mac_ax_led_mode::MAC_AX_LED_MODE_MAX
2356  * Please Place Description here.
2357  * @var mac_ax_led_mode::MAC_AX_LED_MODE_INVALID
2358  * Please Place Description here.
2359  */
2360 enum mac_ax_led_mode {
2361 	MAC_AX_LED_MODE_TRX_ON,
2362 	MAC_AX_LED_MODE_TX_ON,
2363 	MAC_AX_LED_MODE_RX_ON,
2364 	MAC_AX_LED_MODE_SW_CTRL_OD,
2365 	MAC_AX_LED_MODE_SW_CTRL_PP,
2366 
2367 	/* keep last */
2368 	MAC_AX_LED_MODE_LAST,
2369 	MAC_AX_LED_MODE_MAX = MAC_AX_LED_MODE_LAST,
2370 	MAC_AX_LED_MODE_INVALID = MAC_AX_LED_MODE_LAST,
2371 };
2372 
2373 /**
2374  * @enum mac_ax_sw_io_mode
2375  *
2376  * @brief mac_ax_sw_io_mode
2377  *
2378  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_INPUT
2379  * Please Place Description here.
2380  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_OUTPUT_OD
2381  * Please Place Description here.
2382  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_OUTPUT_PP
2383  * Please Place Description here.
2384  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_LAST
2385  * Please Place Description here.
2386  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_MAX
2387  * Please Place Description here.
2388  * @var mac_ax_sw_io_mode::MAC_AX_SW_IO_MODE_INVALID
2389  * Please Place Description here.
2390  */
2391 enum mac_ax_sw_io_mode {
2392 	MAC_AX_SW_IO_MODE_INPUT,
2393 	MAC_AX_SW_IO_MODE_OUTPUT_OD,
2394 	MAC_AX_SW_IO_MODE_OUTPUT_PP,
2395 
2396 	/* keep last */
2397 	MAC_AX_SW_IO_MODE_LAST,
2398 	MAC_AX_SW_IO_MODE_MAX = MAC_AX_SW_IO_MODE_LAST,
2399 	MAC_AX_SW_IO_MODE_INVALID = MAC_AX_SW_IO_MODE_LAST,
2400 };
2401 
2402 /*--------------------Define Efuse related enum-------------------------------*/
2403 
2404 /**
2405  * @enum mac_ax_efuse_read_cfg
2406  *
2407  * @brief mac_ax_efuse_read_cfg
2408  *
2409  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_AUTO
2410  * Please Place Description here.
2411  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_DRV
2412  * Please Place Description here.
2413  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_FW
2414  * Please Place Description here.
2415  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_LAST
2416  * Please Place Description here.
2417  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_MAX
2418  * Please Place Description here.
2419  * @var mac_ax_efuse_read_cfg::MAC_AX_EFUSE_R_INVALID
2420  * Please Place Description here.
2421  */
2422 enum mac_ax_efuse_read_cfg {
2423 	MAC_AX_EFUSE_R_AUTO,
2424 	MAC_AX_EFUSE_R_DRV,
2425 	MAC_AX_EFUSE_R_FW,
2426 
2427 	/* keep last */
2428 	MAC_AX_EFUSE_R_LAST,
2429 	MAC_AX_EFUSE_R_MAX = MAC_AX_EFUSE_R_LAST,
2430 	MAC_AX_EFUSE_R_INVALID = MAC_AX_EFUSE_R_LAST,
2431 };
2432 
2433 /**
2434  * @enum mac_ax_efuse_bank
2435  *
2436  * @brief mac_ax_efuse_bank
2437  *
2438  * @var mac_ax_efuse_bank::MAC_AX_EFUSE_BANK_WIFI
2439  * Please Place Description here.
2440  * @var mac_ax_efuse_bank::MAC_AX_EFUSE_BANK_BT
2441  * Please Place Description here.
2442  * @var mac_ax_efuse_bank::MAC_AX_EFUSE_BANK_LAST
2443  * Please Place Description here.
2444  * @var mac_ax_efuse_bank::MAC_AX_EFUSE_BANK_MAX
2445  * Please Place Description here.
2446  * @var mac_ax_efuse_bank::MAC_AX_EFUSE_BANK_INVALID
2447  * Please Place Description here.
2448  */
2449 enum mac_ax_efuse_bank {
2450 	MAC_AX_EFUSE_BANK_WIFI,
2451 	MAC_AX_EFUSE_BANK_BT,
2452 
2453 	/* keep last */
2454 	MAC_AX_EFUSE_BANK_LAST,
2455 	MAC_AX_EFUSE_BANK_MAX = MAC_AX_EFUSE_BANK_LAST,
2456 	MAC_AX_EFUSE_BANK_INVALID = MAC_AX_EFUSE_BANK_LAST,
2457 };
2458 
2459 /**
2460  * @enum mac_ax_efuse_parser_cfg
2461  *
2462  * @brief mac_ax_efuse_parser_cfg
2463  *
2464  * @var mac_ax_efuse_parser_cfg::MAC_AX_EFUSE_PARSER_MAP
2465  * Please Place Description here.
2466  * @var mac_ax_efuse_parser_cfg::MAC_AX_EFUSE_PARSER_MASK
2467  * Please Place Description here.
2468  * @var mac_ax_efuse_parser_cfg::MAC_AX_EFUSE_PARSER_LAST
2469  * Please Place Description here.
2470  * @var mac_ax_efuse_parser_cfg::MAC_AX_EFUSE_PARSER_MAX
2471  * Please Place Description here.
2472  * @var mac_ax_efuse_parser_cfg::MAC_AX_EFUSE_PARSER_INVALID
2473  * Please Place Description here.
2474  */
2475 enum mac_ax_efuse_parser_cfg {
2476 	MAC_AX_EFUSE_PARSER_MAP,
2477 	MAC_AX_EFUSE_PARSER_MASK,
2478 
2479 	/* keep last */
2480 	MAC_AX_EFUSE_PARSER_LAST,
2481 	MAC_AX_EFUSE_PARSER_MAX = MAC_AX_EFUSE_PARSER_LAST,
2482 	MAC_AX_EFUSE_PARSER_INVALID = MAC_AX_EFUSE_PARSER_LAST,
2483 };
2484 
2485 /**
2486  * @enum mac_ax_efuse_feature_id
2487  *
2488  * @brief mac_ax_efuse_feature_id
2489  *
2490  * @var mac_ax_efuse_feature_id::MAC_AX_DUMP_PHYSICAL_EFUSE
2491  * Please Place Description here.
2492  * @var mac_ax_efuse_feature_id::MAC_AX_DUMP_LOGICAL_EFUSE
2493  * Please Place Description here.
2494  * @var mac_ax_efuse_feature_id::MAC_AX_DUMP_LOGICAL_EFUSE_MASK
2495  * Please Place Description here.
2496  */
2497 enum mac_ax_efuse_feature_id {
2498 	MAC_AX_DUMP_PHYSICAL_EFUSE,     /* Support */
2499 	MAC_AX_DUMP_LOGICAL_EFUSE,      /* Support */
2500 	MAC_AX_DUMP_LOGICAL_EFUSE_MASK, /* Support */
2501 };
2502 
2503 /*--------------------Define TRX PKT INFO/RPT related enum--------------------*/
2504 
2505 /**
2506  * @enum mac_ax_trx_mode
2507  *
2508  * @brief mac_ax_trx_mode
2509  *
2510  * @var mac_ax_trx_mode::MAC_AX_TRX_SW_MODE
2511  * Please Place Description here.
2512  * @var mac_ax_trx_mode::MAC_AX_TRX_HW_MODE
2513  * Please Place Description here.
2514  * @var mac_ax_trx_mode::MAC_AX_TRX_LOOPBACK
2515  * Please Place Description here.
2516  * @var mac_ax_trx_mode::MAC_AX_TRX_LAST
2517  * Please Place Description here.
2518  * @var mac_ax_trx_mode::MAC_AX_TRX_MAX
2519  * Please Place Description here.
2520  * @var mac_ax_trx_mode::MAC_AX_TRX_INVALID
2521  * Please Place Description here.
2522  */
2523 enum mac_ax_trx_mode {
2524 	MAC_AX_TRX_SW_MODE,
2525 	MAC_AX_TRX_HW_MODE,
2526 	MAC_AX_TRX_LOOPBACK,
2527 
2528 	MAC_AX_TRX_NORMAL, /* shall remove when v0_22 release, Rick */
2529 
2530 	/* keep last */
2531 	MAC_AX_TRX_LAST,
2532 	MAC_AX_TRX_MAX = MAC_AX_TRX_LAST,
2533 	MAC_AX_TRX_INVALID = MAC_AX_TRX_LAST,
2534 };
2535 
2536 /**
2537  * @enum mac_ax_qta_mode
2538  *
2539  * @brief mac_ax_qta_mode
2540  *
2541  * @var mac_ax_qta_mode::MAC_AX_QTA_SCC
2542  * Please Place Description here.
2543  * @var mac_ax_qta_mode::MAC_AX_QTA_DBCC
2544  * Please Place Description here.
2545  * @var mac_ax_qta_mode::MAC_AX_QTA_SCC_STF
2546  * Please Place Description here.
2547  * @var mac_ax_qta_mode::MAC_AX_QTA_DBCC_STF
2548  * Please Place Description here.
2549  * @var mac_ax_qta_mode::MAC_AX_QTA_SU_TP
2550  * Please Place Description here.
2551  * @var mac_ax_qta_mode::MAC_AX_QTA_DLFW
2552  * Please Place Description here.
2553  * @var mac_ax_qta_mode::MAC_AX_QTA_BCN_TEST
2554  * Please Place Description here.
2555  * @var mac_ax_qta_mode::MAC_AX_QTA_LAMODE
2556  * Please Place Description here.
2557  * @var mac_ax_qta_mode::MAC_AX_QTA_LAST
2558  * Please Place Description here.
2559  * @var mac_ax_qta_mode::MAC_AX_QTA_MAX
2560  * Please Place Description here.
2561  * @var mac_ax_qta_mode::MAC_AX_QTA_INVALID
2562  * Please Place Description here.
2563  */
2564 enum mac_ax_qta_mode {
2565 	MAC_AX_QTA_SCC,
2566 	MAC_AX_QTA_DBCC,
2567 	MAC_AX_QTA_SCC_STF,
2568 	MAC_AX_QTA_DBCC_STF,
2569 	MAC_AX_QTA_SU_TP,
2570 	MAC_AX_QTA_DLFW,
2571 	MAC_AX_QTA_BCN_TEST,
2572 	MAC_AX_QTA_LAMODE,
2573 	MAC_AX_QTA_SCC_TURBO,
2574 
2575 	/* keep last */
2576 	MAC_AX_QTA_LAST,
2577 	MAC_AX_QTA_MAX = MAC_AX_QTA_LAST,
2578 	MAC_AX_QTA_INVALID = MAC_AX_QTA_LAST,
2579 };
2580 
2581 /**
2582  * @enum mac_ax_pkt_t
2583  *
2584  * @brief mac_ax_pkt_t
2585  *
2586  * @var mac_ax_pkt_t::MAC_AX_PKT_DATA
2587  * Please Place Description here.
2588  * @var mac_ax_pkt_t::MAC_AX_PKT_MGNT
2589  * Please Place Description here.
2590  * @var mac_ax_pkt_t::MAC_AX_PKT_CTRL
2591  * Please Place Description here.
2592  * @var mac_ax_pkt_t::MAC_AX_PKT_8023
2593  * Please Place Description here.
2594  * @var mac_ax_pkt_t::MAC_AX_PKT_H2C
2595  * Please Place Description here.
2596  * @var mac_ax_pkt_t::MAC_AX_PKT_FWDL
2597  * Please Place Description here.
2598  * @var mac_ax_pkt_t::MAC_AX_PKT_C2H
2599  * Please Place Description here.
2600  * @var mac_ax_pkt_t::MAC_AX_PKT_PPDU
2601  * Please Place Description here.
2602  * @var mac_ax_pkt_t::MAC_AX_PKT_CH_INFO
2603  * Please Place Description here.
2604  * @var mac_ax_pkt_t::MAC_AX_PKT_DFS
2605  * Please Place Description here.
2606  * @var mac_ax_pkt_t::MAC_AX_PKT_LAST
2607  * Please Place Description here.
2608  * @var mac_ax_pkt_t::MAC_AX_PKT_MAX
2609  * Please Place Description here.
2610  * @var mac_ax_pkt_t::MAC_AX_PKT_INVALID
2611  * Please Place Description here.
2612  */
2613 enum mac_ax_pkt_t {
2614 	MAC_AX_PKT_DATA,
2615 	MAC_AX_PKT_MGNT,
2616 	MAC_AX_PKT_CTRL,
2617 	MAC_AX_PKT_8023,
2618 	MAC_AX_PKT_H2C,
2619 	MAC_AX_PKT_FWDL,
2620 	MAC_AX_PKT_C2H,
2621 	MAC_AX_PKT_PPDU,
2622 	MAC_AX_PKT_CH_INFO,
2623 	MAC_AX_PKT_DFS,
2624 
2625 	/* keep last */
2626 	MAC_AX_PKT_LAST,
2627 	MAC_AX_PKT_MAX = MAC_AX_PKT_LAST,
2628 	MAC_AX_PKT_INVALID = MAC_AX_PKT_LAST,
2629 };
2630 
2631 /**
2632  * @enum mac_ax_amsdu_pkt_num
2633  *
2634  * @brief mac_ax_amsdu_pkt_num
2635  *
2636  * @var mac_ax_amsdu_pkt_num::MAC_AX_AMSDU_AGG_NUM_1
2637  * Please Place Description here.
2638  * @var mac_ax_amsdu_pkt_num::MAC_AX_AMSDU_AGG_NUM_2
2639  * Please Place Description here.
2640  * @var mac_ax_amsdu_pkt_num::MAC_AX_AMSDU_AGG_NUM_3
2641  * Please Place Description here.
2642  * @var mac_ax_amsdu_pkt_num::MAC_AX_AMSDU_AGG_NUM_4
2643  * Please Place Description here.
2644  * @var mac_ax_amsdu_pkt_num::MAC_AX_AMSDU_AGG_NUM_MAX
2645  * Please Place Description here.
2646  */
2647 enum mac_ax_amsdu_pkt_num {
2648 	MAC_AX_AMSDU_AGG_NUM_1 = 0,
2649 	MAC_AX_AMSDU_AGG_NUM_2 = 1,
2650 	MAC_AX_AMSDU_AGG_NUM_3 = 2,
2651 	MAC_AX_AMSDU_AGG_NUM_4 = 3,
2652 	MAC_AX_AMSDU_AGG_NUM_MAX
2653 };
2654 
2655 /**
2656  * @enum mac_ax_phy_rpt
2657  *
2658  * @brief mac_ax_phy_rpt
2659  *
2660  * @var mac_ax_phy_rpt::MAC_AX_PPDU_STATUS
2661  * Please Place Description here.
2662  * @var mac_ax_phy_rpt::MAC_AX_CH_INFO
2663  * Please Place Description here.
2664  * @var mac_ax_phy_rpt::MAC_AX_DFS
2665  * Please Place Description here.
2666  */
2667 enum mac_ax_phy_rpt {
2668 	MAC_AX_PPDU_STATUS,
2669 	MAC_AX_CH_INFO,
2670 	MAC_AX_DFS,
2671 };
2672 
2673 /**
2674  * @enum mac_ax_pkt_drop_sel
2675  *
2676  * @brief mac_ax_pkt_drop_sel
2677  *
2678  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MACID_BE_ONCE
2679  * Please Place Description here.
2680  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MACID_BK_ONCE
2681  * Please Place Description here.
2682  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MACID_VI_ONCE
2683  * Please Place Description here.
2684  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MACID_VO_ONCE
2685  * Please Place Description here.
2686  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MACID_ALL
2687  * Please Place Description here.
2688  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MG0_ONCE
2689  * Please Place Description here.
2690  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_HIQ_ONCE
2691  * Please Place Description here.
2692  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_HIQ_PORT
2693  * Please Place Description here.
2694  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_HIQ_MBSSID
2695  * Please Place Description here.
2696  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_BAND
2697  * Please Place Description here.
2698  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_REL_MACID
2699  * Please Place Description here.
2700  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_REL_HIQ_PORT
2701  * Please Place Description here.
2702  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_REL_HIQ_MBSSID
2703  * Please Place Description here.
2704  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_LAST
2705  * Please Place Description here.
2706  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_MAX
2707  * Please Place Description here.
2708  * @var mac_ax_pkt_drop_sel::MAC_AX_PKT_DROP_SEL_INVALID
2709  * Please Place Description here.
2710  */
2711 enum mac_ax_pkt_drop_sel {
2712 	MAC_AX_PKT_DROP_SEL_MACID_BE_ONCE,
2713 	MAC_AX_PKT_DROP_SEL_MACID_BK_ONCE,
2714 	MAC_AX_PKT_DROP_SEL_MACID_VI_ONCE,
2715 	MAC_AX_PKT_DROP_SEL_MACID_VO_ONCE,
2716 	MAC_AX_PKT_DROP_SEL_MACID_ALL,
2717 	MAC_AX_PKT_DROP_SEL_MG0_ONCE,
2718 	MAC_AX_PKT_DROP_SEL_HIQ_ONCE,
2719 	MAC_AX_PKT_DROP_SEL_HIQ_PORT,
2720 	MAC_AX_PKT_DROP_SEL_HIQ_MBSSID,
2721 	MAC_AX_PKT_DROP_SEL_BAND,
2722 	MAC_AX_PKT_DROP_SEL_BAND_ONCE,
2723 	MAC_AX_PKT_DROP_SEL_REL_MACID,
2724 	MAC_AX_PKT_DROP_SEL_REL_HIQ_PORT,
2725 	MAC_AX_PKT_DROP_SEL_REL_HIQ_MBSSID,
2726 
2727 	/* keep last */
2728 	MAC_AX_PKT_DROP_SEL_LAST,
2729 	MAC_AX_PKT_DROP_SEL_MAX = MAC_AX_PKT_DROP_SEL_LAST,
2730 	MAC_AX_PKT_DROP_SEL_INVALID = MAC_AX_PKT_DROP_SEL_LAST,
2731 };
2732 
2733 /*need to check and move to other */
2734 
2735 /**
2736  * @enum mac_ax_fwd_target
2737  *
2738  * @brief mac_ax_fwd_target
2739  *
2740  * @var mac_ax_fwd_target::MAC_AX_FWD_DONT_CARE
2741  * Please Place Description here.
2742  * @var mac_ax_fwd_target::MAC_AX_FWD_TO_HOST
2743  * Please Place Description here.
2744  * @var mac_ax_fwd_target::MAC_AX_FWD_TO_WLAN_CPU
2745  * Please Place Description here.
2746  */
2747 enum mac_ax_fwd_target {
2748 	MAC_AX_FWD_DONT_CARE    = 0,
2749 	MAC_AX_FWD_TO_HOST      = 1,
2750 	MAC_AX_FWD_TO_WLAN_CPU  = 2
2751 };
2752 
2753 /**
2754  * @enum mac_ax_action_frame
2755  *
2756  * @brief mac_ax_action_frame
2757  *
2758  * @var mac_ax_action_frame::MAC_AX_AF_CSA
2759  * Please Place Description here.
2760  * @var mac_ax_action_frame::MAC_AX_AF_ADDTS_REQ
2761  * Please Place Description here.
2762  * @var mac_ax_action_frame::MAC_AX_AF_ADDTS_RES
2763  * Please Place Description here.
2764  * @var mac_ax_action_frame::MAC_AX_AF_DELTS
2765  * Please Place Description here.
2766  * @var mac_ax_action_frame::MAC_AX_AF_ADDBA_REQ
2767  * Please Place Description here.
2768  * @var mac_ax_action_frame::MAC_AX_AF_ADDBA_RES
2769  * Please Place Description here.
2770  * @var mac_ax_action_frame::MAC_AX_AF_DELBA
2771  * Please Place Description here.
2772  * @var mac_ax_action_frame::MAC_AX_AF_NCW
2773  * Please Place Description here.
2774  * @var mac_ax_action_frame::MAC_AX_AF_GID_MGNT
2775  * Please Place Description here.
2776  * @var mac_ax_action_frame::MAC_AX_AF_OP_MODE
2777  * Please Place Description here.
2778  * @var mac_ax_action_frame::MAC_AX_AF_CSI
2779  * Please Place Description here.
2780  * @var mac_ax_action_frame::MAC_AX_AF_HT_CBFM
2781  * Please Place Description here.
2782  * @var mac_ax_action_frame::MAC_AX_AF_VHT_CBFM
2783  * Please Place Description here.
2784  */
2785 enum mac_ax_action_frame {
2786 	MAC_AX_AF_CSA       = 0,
2787 	MAC_AX_AF_ADDTS_REQ = 1,
2788 	MAC_AX_AF_ADDTS_RES = 2,
2789 	MAC_AX_AF_DELTS     = 3,
2790 	MAC_AX_AF_ADDBA_REQ = 4,
2791 	MAC_AX_AF_ADDBA_RES = 5,
2792 	MAC_AX_AF_DELBA     = 6,
2793 	MAC_AX_AF_NCW       = 7,
2794 	MAC_AX_AF_GID_MGNT  = 8,
2795 	MAC_AX_AF_OP_MODE   = 9,
2796 	MAC_AX_AF_CSI       = 10,
2797 	MAC_AX_AF_HT_CBFM   = 11,
2798 	MAC_AX_AF_VHT_CBFM  = 12
2799 };
2800 
2801 /**
2802  * @enum mac_ax_af_user_define_index
2803  *
2804  * @brief mac_ax_af_user_define_index
2805  *
2806  * @var mac_ax_af_user_define_index::MAC_AX_AF_UD_0
2807  * Please Place Description here.
2808  * @var mac_ax_af_user_define_index::MAC_AX_AF_UD_1
2809  * Please Place Description here.
2810  * @var mac_ax_af_user_define_index::MAC_AX_AF_UD_2
2811  * Please Place Description here.
2812  * @var mac_ax_af_user_define_index::MAC_AX_AF_UD_3
2813  * Please Place Description here.
2814  */
2815 enum mac_ax_af_user_define_index {
2816 	MAC_AX_AF_UD_0      = 0,
2817 	MAC_AX_AF_UD_1      = 1,
2818 	MAC_AX_AF_UD_2      = 2,
2819 	MAC_AX_AF_UD_3      = 3
2820 };
2821 
2822 /**
2823  * @enum mac_ax_trigger_frame
2824  *
2825  * @brief mac_ax_trigger_frame
2826  *
2827  * @var mac_ax_trigger_frame::MAC_AX_TF_BT
2828  * Please Place Description here.
2829  * @var mac_ax_trigger_frame::MAC_AX_TF_BFRP
2830  * Please Place Description here.
2831  * @var mac_ax_trigger_frame::MAC_AX_TF_MU_BAR
2832  * Please Place Description here.
2833  * @var mac_ax_trigger_frame::MAC_AX_TF_MU_RTS
2834  * Please Place Description here.
2835  * @var mac_ax_trigger_frame::MAC_AX_TF_BSRP
2836  * Please Place Description here.
2837  * @var mac_ax_trigger_frame::MAC_AX_TF_GCR_MU_BAR
2838  * Please Place Description here.
2839  * @var mac_ax_trigger_frame::MAC_AX_TF_BQRP
2840  * Please Place Description here.
2841  * @var mac_ax_trigger_frame::MAC_AX_TF_NFRP
2842  * Please Place Description here.
2843  * @var mac_ax_trigger_frame::MAC_AX_TF_TF8
2844  * Please Place Description here.
2845  * @var mac_ax_trigger_frame::MAC_AX_TF_TF9
2846  * Please Place Description here.
2847  * @var mac_ax_trigger_frame::MAC_AX_TF_TF10
2848  * Please Place Description here.
2849  * @var mac_ax_trigger_frame::MAC_AX_TF_TF11
2850  * Please Place Description here.
2851  * @var mac_ax_trigger_frame::MAC_AX_TF_TF12
2852  * Please Place Description here.
2853  * @var mac_ax_trigger_frame::MAC_AX_TF_TF13
2854  * Please Place Description here.
2855  * @var mac_ax_trigger_frame::MAC_AX_TF_TF14
2856  * Please Place Description here.
2857  * @var mac_ax_trigger_frame::MAC_AX_TF_TF15
2858  * Please Place Description here.
2859  */
2860 enum mac_ax_trigger_frame {
2861 	MAC_AX_TF_BT            = 0,
2862 	MAC_AX_TF_BFRP          = 1,
2863 	MAC_AX_TF_MU_BAR        = 2,
2864 	MAC_AX_TF_MU_RTS        = 3,
2865 	MAC_AX_TF_BSRP          = 4,
2866 	MAC_AX_TF_GCR_MU_BAR    = 5,
2867 	MAC_AX_TF_BQRP          = 6,
2868 	MAC_AX_TF_NFRP          = 7,
2869 	MAC_AX_TF_TF8           = 8,
2870 	MAC_AX_TF_TF9           = 9,
2871 	MAC_AX_TF_TF10          = 10,
2872 	MAC_AX_TF_TF11          = 11,
2873 	MAC_AX_TF_TF12          = 12,
2874 	MAC_AX_TF_TF13          = 13,
2875 	MAC_AX_TF_TF14          = 14,
2876 	MAC_AX_TF_TF15          = 15
2877 };
2878 
2879 /**
2880  * @enum mac_ax_frame_type
2881  *
2882  * @brief mac_ax_frame_type
2883  *
2884  * @var mac_ax_frame_type::MAC_AX_FT_ACTION
2885  * Please Place Description here.
2886  * @var mac_ax_frame_type::MAC_AX_FT_ACTION_UD
2887  * Please Place Description here.
2888  * @var mac_ax_frame_type::MAC_AX_FT_TRIGGER
2889  * Please Place Description here.
2890  * @var mac_ax_frame_type::MAC_AX_FT_PM_CAM
2891  * Please Place Description here.
2892  */
2893 enum mac_ax_frame_type {
2894 	MAC_AX_FT_ACTION    = 0,
2895 	MAC_AX_FT_ACTION_UD = 1,
2896 	MAC_AX_FT_TRIGGER   = 2,
2897 	MAC_AX_FT_PM_CAM    = 3
2898 };
2899 
2900 /**
2901  * @enum mac_ax_bd_trunc_mode
2902  *
2903  * @brief mac_ax_bd_trunc_mode
2904  *
2905  * @var mac_ax_bd_trunc_mode::MAC_AX_BD_NORM
2906  * Please Place Description here.
2907  * @var mac_ax_bd_trunc_mode::MAC_AX_BD_TRUNC
2908  * Please Place Description here.
2909  * @var mac_ax_bd_trunc_mode::MAC_AX_BD_DEF
2910  * Please Place Description here.
2911  */
2912 enum mac_ax_bd_trunc_mode {
2913 	MAC_AX_BD_NORM,
2914 	MAC_AX_BD_TRUNC,
2915 	MAC_AX_BD_DEF = 0xFE
2916 };
2917 
2918 /**
2919  * @enum mac_ax_rxbd_mode
2920  *
2921  * @brief mac_ax_rxbd_mode
2922  *
2923  * @var mac_ax_rxbd_mode::MAC_AX_RXBD_PKT
2924  * Please Place Description here.
2925  * @var mac_ax_rxbd_mode::MAC_AX_RXBD_SEP
2926  * Please Place Description here.
2927  * @var mac_ax_rxbd_mode::MAC_AX_RXBD_DEF
2928  * Please Place Description here.
2929  */
2930 enum mac_ax_rxbd_mode {
2931 	MAC_AX_RXBD_PKT,
2932 	MAC_AX_RXBD_SEP,
2933 	MAC_AX_RXBD_DEF = 0xFE
2934 };
2935 
2936 /**
2937  * @enum mac_ax_tag_mode
2938  *
2939  * @brief mac_ax_tag_mode
2940  *
2941  * @var mac_ax_tag_mode::MAC_AX_TAG_SGL
2942  * Please Place Description here.
2943  * @var mac_ax_tag_mode::MAC_AX_TAG_MULTI
2944  * Please Place Description here.
2945  * @var mac_ax_tag_mode::MAC_AX_TAG_DEF
2946  * Please Place Description here.
2947  */
2948 enum mac_ax_tag_mode {
2949 	MAC_AX_TAG_SGL,
2950 	MAC_AX_TAG_MULTI,
2951 	MAC_AX_TAG_DEF = 0xFE
2952 };
2953 
2954 /**
2955  * @enum mac_ax_rx_fecth
2956  *
2957  * @brief mac_ax_rx_fecth
2958  *
2959  * @var mac_ax_rx_fecth::MAC_AX_RX_NORM_FETCH
2960  * Please Place Description here.
2961  * @var mac_ax_rx_fecth::MAC_AX_RX_PRE_FETCH
2962  * Please Place Description here.
2963  * @var mac_ax_rx_fecth::MAC_AX_RX_FETCH_DEF
2964  * Please Place Description here.
2965  */
2966 enum mac_ax_rx_fecth {
2967 	MAC_AX_RX_NORM_FETCH,
2968 	MAC_AX_RX_PRE_FETCH,
2969 	MAC_AX_RX_FETCH_DEF = 0xFE
2970 };
2971 
2972 /**
2973  * @enum mac_ax_tx_burst
2974  *
2975  * @brief mac_ax_tx_burst
2976  *
2977  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_16B
2978  * Please Place Description here.
2979  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_32B
2980  * Please Place Description here.
2981  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_64B
2982  * Please Place Description here.
2983  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_128B
2984  * Please Place Description here.
2985  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_256B
2986  * Please Place Description here.
2987  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_512B
2988  * Please Place Description here.
2989  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_1024B
2990  * Please Place Description here.
2991  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_2048B
2992  * Please Place Description here.
2993  * @var mac_ax_tx_burst::MAC_AX_TX_BURST_DEF
2994  * Please Place Description here.
2995  */
2996 enum mac_ax_tx_burst {
2997 	MAC_AX_TX_BURST_16B = 0,
2998 	MAC_AX_TX_BURST_32B = 1,
2999 	MAC_AX_TX_BURST_64B = 2,
3000 	MAC_AX_TX_BURST_V1_64B = 0,
3001 	MAC_AX_TX_BURST_128B = 3,
3002 	MAC_AX_TX_BURST_V1_128B = 1,
3003 	MAC_AX_TX_BURST_256B = 4,
3004 	MAC_AX_TX_BURST_V1_256B = 2,
3005 	MAC_AX_TX_BURST_512B = 5,
3006 	MAC_AX_TX_BURST_1024B = 6,
3007 	MAC_AX_TX_BURST_2048B = 7,
3008 	MAC_AX_TX_BURST_DEF = 0xFE
3009 };
3010 
3011 /**
3012  * @enum mac_ax_rx_burst
3013  *
3014  * @brief mac_ax_rx_burst
3015  *
3016  * @var mac_ax_rx_burst::MAC_AX_RX_BURST_16B
3017  * Please Place Description here.
3018  * @var mac_ax_rx_burst::MAC_AX_RX_BURST_32B
3019  * Please Place Description here.
3020  * @var mac_ax_rx_burst::MAC_AX_RX_BURST_64B
3021  * Please Place Description here.
3022  * @var mac_ax_rx_burst::MAC_AX_RX_BURST_128B
3023  * Please Place Description here.
3024  * @var mac_ax_rx_burst::MAC_AX_RX_BURST_DEF
3025  * Please Place Description here.
3026  */
3027 enum mac_ax_rx_burst {
3028 	MAC_AX_RX_BURST_16B = 0,
3029 	MAC_AX_RX_BURST_32B = 1,
3030 	MAC_AX_RX_BURST_64B = 2,
3031 	MAC_AX_RX_BURST_V1_64B = 0,
3032 	MAC_AX_RX_BURST_128B = 3,
3033 	MAC_AX_RX_BURST_V1_128B = 1,
3034 	MAC_AX_RX_BURST_V1_256B = 0,
3035 	MAC_AX_RX_BURST_DEF = 0xFE
3036 };
3037 
3038 /**
3039  * @enum mac_ax_wd_dma_intvl
3040  *
3041  * @brief mac_ax_wd_dma_intvl
3042  *
3043  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_0S
3044  * Please Place Description here.
3045  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_256NS
3046  * Please Place Description here.
3047  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_512NS
3048  * Please Place Description here.
3049  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_768NS
3050  * Please Place Description here.
3051  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_1US
3052  * Please Place Description here.
3053  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_1_5US
3054  * Please Place Description here.
3055  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_2US
3056  * Please Place Description here.
3057  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_4US
3058  * Please Place Description here.
3059  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_8US
3060  * Please Place Description here.
3061  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_16US
3062  * Please Place Description here.
3063  * @var mac_ax_wd_dma_intvl::MAC_AX_WD_DMA_INTVL_DEF
3064  * Please Place Description here.
3065  */
3066 enum mac_ax_wd_dma_intvl {
3067 	MAC_AX_WD_DMA_INTVL_0S,
3068 	MAC_AX_WD_DMA_INTVL_256NS,
3069 	MAC_AX_WD_DMA_INTVL_512NS,
3070 	MAC_AX_WD_DMA_INTVL_768NS,
3071 	MAC_AX_WD_DMA_INTVL_1US,
3072 	MAC_AX_WD_DMA_INTVL_1_5US,
3073 	MAC_AX_WD_DMA_INTVL_2US,
3074 	MAC_AX_WD_DMA_INTVL_4US,
3075 	MAC_AX_WD_DMA_INTVL_8US,
3076 	MAC_AX_WD_DMA_INTVL_16US,
3077 	MAC_AX_WD_DMA_INTVL_DEF = 0xFE
3078 };
3079 
3080 /**
3081  * @enum mac_ax_multi_tag_num
3082  *
3083  * @brief mac_ax_multi_tag_num
3084  *
3085  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_1
3086  * Please Place Description here.
3087  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_2
3088  * Please Place Description here.
3089  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_3
3090  * Please Place Description here.
3091  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_4
3092  * Please Place Description here.
3093  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_5
3094  * Please Place Description here.
3095  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_6
3096  * Please Place Description here.
3097  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_7
3098  * Please Place Description here.
3099  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_8
3100  * Please Place Description here.
3101  * @var mac_ax_multi_tag_num::MAC_AX_TAG_NUM_DEF
3102  * Please Place Description here.
3103  */
3104 enum mac_ax_multi_tag_num {
3105 	MAC_AX_TAG_NUM_1,
3106 	MAC_AX_TAG_NUM_2,
3107 	MAC_AX_TAG_NUM_3,
3108 	MAC_AX_TAG_NUM_4,
3109 	MAC_AX_TAG_NUM_5,
3110 	MAC_AX_TAG_NUM_6,
3111 	MAC_AX_TAG_NUM_7,
3112 	MAC_AX_TAG_NUM_8,
3113 	MAC_AX_TAG_NUM_DEF = 0xFE
3114 };
3115 
3116 /**
3117  * @enum mac_ax_rx_adv_pref
3118  *
3119  * @brief mac_ax_rx_adv_pref
3120  *
3121  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_1BD
3122  * Please Place Description here.
3123  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_2BD
3124  * Please Place Description here.
3125  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_4BD
3126  * Please Place Description here.
3127  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_8BD
3128  * Please Place Description here.
3129  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_LAST
3130  * Please Place Description here.
3131  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_MAX
3132  * Please Place Description here.
3133  * @var mac_ax_rx_adv_pref::MAC_AX_RX_APREF_INVALID
3134  * Please Place Description here.
3135  */
3136 enum mac_ax_rx_adv_pref {
3137 	MAC_AX_RX_APREF_1BD = 0,
3138 	MAC_AX_RX_APREF_2BD,
3139 	MAC_AX_RX_APREF_4BD,
3140 	MAC_AX_RX_APREF_8BD,
3141 	/* keep last */
3142 	MAC_AX_RX_APREF_LAST,
3143 	MAC_AX_RX_APREF_MAX = MAC_AX_RX_APREF_LAST,
3144 	MAC_AX_RX_APREF_INVALID = MAC_AX_RX_APREF_LAST,
3145 };
3146 
3147 /**
3148  * @enum mac_ax_lbc_tmr
3149  *
3150  * @brief mac_ax_lbc_tmr
3151  *
3152  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_8US
3153  * Please Place Description here.
3154  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_16US
3155  * Please Place Description here.
3156  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_32US
3157  * Please Place Description here.
3158  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_64US
3159  * Please Place Description here.
3160  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_128US
3161  * Please Place Description here.
3162  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_256US
3163  * Please Place Description here.
3164  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_512US
3165  * Please Place Description here.
3166  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_1MS
3167  * Please Place Description here.
3168  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_2MS
3169  * Please Place Description here.
3170  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_4MS
3171  * Please Place Description here.
3172  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_8MS
3173  * Please Place Description here.
3174  * @var mac_ax_lbc_tmr::MAC_AX_LBC_TMR_DEF
3175  * Please Place Description here.
3176  */
3177 enum mac_ax_lbc_tmr {
3178 	MAC_AX_LBC_TMR_8US = 0,
3179 	MAC_AX_LBC_TMR_16US,
3180 	MAC_AX_LBC_TMR_32US,
3181 	MAC_AX_LBC_TMR_64US,
3182 	MAC_AX_LBC_TMR_128US,
3183 	MAC_AX_LBC_TMR_256US,
3184 	MAC_AX_LBC_TMR_512US,
3185 	MAC_AX_LBC_TMR_1MS,
3186 	MAC_AX_LBC_TMR_2MS,
3187 	MAC_AX_LBC_TMR_4MS,
3188 	MAC_AX_LBC_TMR_8MS,
3189 	MAC_AX_LBC_TMR_DEF = 0xFE
3190 };
3191 
3192 /**
3193  * @enum mac_ax_io_rcv_tmr
3194  *
3195  * @brief mac_ax_io_rcv_tmr
3196  *
3197  * @var mac_ax_lbc_tmr::MAC_AX_IO_RCV_ANA_TMR_200US
3198  * Please Place Description here.
3199  * @var mac_ax_lbc_tmr::MAC_AX_IO_RCV_ANA_TMR_300US
3200  * Please Place Description here.
3201  */
3202 enum mac_ax_io_rcy_tmr {
3203 	MAC_AX_IO_RCY_ANA_TMR_20US = 240,
3204 	MAC_AX_IO_RCY_ANA_TMR_40US = 480,
3205 	MAC_AX_IO_RCY_ANA_TMR_60US = 720,
3206 	MAC_AX_IO_RCY_ANA_TMR_DEF = 0xFE
3207 };
3208 
3209 /*END need to check and move to other */
3210 
3211 /**
3212  * @enum mac_ax_edcca_sel
3213  *
3214  * @brief mac_ax_edcca_sel
3215  *
3216  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_IN_TB_CHK
3217  * Please Place Description here.
3218  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_IN_SIFS_CHK
3219  * Please Place Description here.
3220  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_IN_CTN_CHK
3221  * Please Place Description here.
3222  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_SEL_LAST
3223  * Please Place Description here.
3224  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_SEL_MAX
3225  * Please Place Description here.
3226  * @var mac_ax_edcca_sel::MAC_AX_EDCCA_SEL_INVALID
3227  * Please Place Description here.
3228  */
3229 enum mac_ax_edcca_sel {
3230 	MAC_AX_EDCCA_IN_TB_CHK,
3231 	MAC_AX_EDCCA_IN_SIFS_CHK,
3232 	MAC_AX_EDCCA_IN_CTN_CHK,
3233 
3234 	/* keep last */
3235 	MAC_AX_EDCCA_SEL_LAST,
3236 	MAC_AX_EDCCA_SEL_MAX = MAC_AX_EDCCA_SEL_LAST,
3237 	MAC_AX_EDCCA_SEL_INVALID = MAC_AX_EDCCA_SEL_LAST,
3238 };
3239 
3240 /**
3241  * @enum mac_ax_chip_id
3242  *
3243  * @brief mac_ax_chip_id
3244  *
3245  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_8852A
3246  * Please Place Description here.
3247  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_8852B
3248  * Please Place Description here.
3249  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_8852C
3250  * Please Place Description here.
3251  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_LAST
3252  * Please Place Description here.
3253  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_MAX
3254  * Please Place Description here.
3255  * @var mac_ax_chip_id::MAC_AX_CHIP_ID_INVALID
3256  * Please Place Description here.
3257  */
3258 enum mac_ax_chip_id {
3259 	MAC_AX_CHIP_ID_8852A = 0,
3260 	MAC_AX_CHIP_ID_8852B,
3261 	MAC_AX_CHIP_ID_8852C,
3262 	MAC_AX_CHIP_ID_8192XB,
3263 
3264 	/* keep last */
3265 	MAC_AX_CHIP_ID_LAST,
3266 	MAC_AX_CHIP_ID_MAX = MAC_AX_CHIP_ID_LAST,
3267 	MAC_AX_CHIP_ID_INVALID = MAC_AX_CHIP_ID_LAST,
3268 };
3269 
3270 /**
3271  * @enum mac_ax_wdbk_mode
3272  *
3273  * @brief mac_ax_wdbk_mode
3274  *
3275  * @var mac_ax_wdbk_mode::MAC_AX_WDBK_MODE_SINGLE_BK
3276  * Please Place Description here.
3277  * @var mac_ax_wdbk_mode::MAC_AX_WDBK_MODE_GRP_BK
3278  * Please Place Description here.
3279  * @var mac_ax_wdbk_mode::MAC_AX_WDBK_MODE_LAST
3280  * Please Place Description here.
3281  * @var mac_ax_wdbk_mode::MAC_AX_WDBK_MODE_MAX
3282  * Please Place Description here.
3283  * @var mac_ax_wdbk_mode::MAC_AX_WDBK_MODE_INVALID
3284  * Please Place Description here.
3285  */
3286 enum mac_ax_wdbk_mode {
3287 	MAC_AX_WDBK_MODE_SINGLE_BK = 0,
3288 	MAC_AX_WDBK_MODE_GRP_BK = 1,
3289 
3290 	/* keep last */
3291 	MAC_AX_WDBK_MODE_LAST,
3292 	MAC_AX_WDBK_MODE_MAX = MAC_AX_WDBK_MODE_LAST,
3293 	MAC_AX_WDBK_MODE_INVALID = MAC_AX_WDBK_MODE_LAST,
3294 };
3295 
3296 /**
3297  * @enum mac_ax_rty_bk_mode
3298  *
3299  * @brief mac_ax_rty_bk_mode
3300  *
3301  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_AGG
3302  * Please Place Description here.
3303  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_RATE_FB
3304  * Please Place Description here.
3305  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_BK
3306  * Please Place Description here.
3307  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_LAST
3308  * Please Place Description here.
3309  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_MAX
3310  * Please Place Description here.
3311  * @var mac_ax_rty_bk_mode::MAC_AX_RTY_BK_MODE_INVALID
3312  * Please Place Description here.
3313  */
3314 enum mac_ax_rty_bk_mode {
3315 	MAC_AX_RTY_BK_MODE_AGG = 0x0,
3316 	MAC_AX_RTY_BK_MODE_RATE_FB = 0x1,
3317 	MAC_AX_RTY_BK_MODE_BK = 0x2,
3318 
3319 	/* keep last */
3320 	MAC_AX_RTY_BK_MODE_LAST,
3321 	MAC_AX_RTY_BK_MODE_MAX = MAC_AX_RTY_BK_MODE_LAST,
3322 	MAC_AX_RTY_BK_MODE_INVALID = MAC_AX_RTY_BK_MODE_LAST,
3323 };
3324 
3325 /**
3326  * @enum mac_ax_ch_busy_cnt_ctrl
3327  *
3328  * @brief mac_ax_ch_busy_cnt_ctrl
3329  *
3330  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_CNT_REF
3331  * Please Place Description here.
3332  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_CNT_BUSY_RST
3333  * Please Place Description here.
3334  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_CNT_IDLE_RST
3335  * Please Place Description here.
3336  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_CNT_EN
3337  * Please Place Description here.
3338  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_CNT_DIS
3339  * Please Place Description here.
3340  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_LAST
3341  * Please Place Description here.
3342  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_MAX
3343  * Please Place Description here.
3344  * @var mac_ax_ch_busy_cnt_ctrl::MAC_AX_CH_BUSY_CNT_CTRL_INVALID
3345  * Please Place Description here.
3346  */
3347 enum mac_ax_ch_busy_cnt_ctrl {
3348 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_REF,
3349 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_BUSY_RST,
3350 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_IDLE_RST,
3351 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_RST,
3352 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_EN,
3353 	MAC_AX_CH_BUSY_CNT_CTRL_CNT_DIS,
3354 
3355 	/* keep last */
3356 	MAC_AX_CH_BUSY_CNT_CTRL_LAST,
3357 	MAC_AX_CH_BUSY_CNT_CTRL_MAX = MAC_AX_CH_BUSY_CNT_CTRL_LAST,
3358 	MAC_AX_CH_BUSY_CNT_CTRL_INVALID = MAC_AX_CH_BUSY_CNT_CTRL_LAST,
3359 };
3360 
3361 /**
3362  * @enum mac_ax_func_sw
3363  *
3364  * @brief mac_ax_func_sw
3365  *
3366  * @var mac_ax_func_sw::MAC_AX_FUNC_DIS
3367  * Please Place Description here.
3368  * @var mac_ax_func_sw::MAC_AX_FUNC_EN
3369  * Please Place Description here.
3370  * @var mac_ax_func_sw::MAC_AX_FUNC_DEF
3371  * Please Place Description here.
3372  */
3373 enum mac_ax_func_sw {
3374 	MAC_AX_FUNC_DIS = 0,
3375 	MAC_AX_FUNC_EN,
3376 	MAC_AX_FUNC_DEF
3377 };
3378 
3379 /**
3380  * @enum mac_ax_twt_nego_tp
3381  *
3382  * @brief mac_ax_twt_nego_tp
3383  *
3384  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_IND
3385  * Please Place Description here.
3386  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_WAKE
3387  * Please Place Description here.
3388  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_BRC
3389  * Please Place Description here.
3390  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_LAST
3391  * Please Place Description here.
3392  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_MAX
3393  * Please Place Description here.
3394  * @var mac_ax_twt_nego_tp::MAC_AX_TWT_NEGO_TP_INVALID
3395  * Please Place Description here.
3396  */
3397 enum mac_ax_twt_nego_tp {
3398 	MAC_AX_TWT_NEGO_TP_IND,
3399 	MAC_AX_TWT_NEGO_TP_WAKE,
3400 	MAC_AX_TWT_NEGO_TP_BRC,
3401 
3402 	/* keep last */
3403 	MAC_AX_TWT_NEGO_TP_LAST,
3404 	MAC_AX_TWT_NEGO_TP_MAX = MAC_AX_TWT_NEGO_TP_LAST,
3405 	MAC_AX_TWT_NEGO_TP_INVALID = MAC_AX_TWT_NEGO_TP_LAST,
3406 };
3407 
3408 /**
3409  * @enum mac_ax_twt_act_tp
3410  *
3411  * @brief mac_ax_twt_act_tp
3412  *
3413  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_ADD
3414  * Please Place Description here.
3415  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_DEL
3416  * Please Place Description here.
3417  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_MOD
3418  * Please Place Description here.
3419  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_LAST
3420  * Please Place Description here.
3421  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_MAX
3422  * Please Place Description here.
3423  * @var mac_ax_twt_act_tp::MAC_AX_TWT_ACT_TP_INVALID
3424  * Please Place Description here.
3425  */
3426 enum mac_ax_twt_act_tp {
3427 	MAC_AX_TWT_ACT_TP_ADD,
3428 	MAC_AX_TWT_ACT_TP_DEL,
3429 	MAC_AX_TWT_ACT_TP_MOD,
3430 
3431 	/* keep last */
3432 	MAC_AX_TWT_ACT_TP_LAST,
3433 	MAC_AX_TWT_ACT_TP_MAX = MAC_AX_TWT_ACT_TP_LAST,
3434 	MAC_AX_TWT_ACT_TP_INVALID = MAC_AX_TWT_ACT_TP_LAST,
3435 };
3436 
3437 /**
3438  * @enum mac_ax_twtact_act_tp
3439  *
3440  * @brief mac_ax_twtact_act_tp
3441  *
3442  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_ADD
3443  * Please Place Description here.
3444  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_DEL
3445  * Please Place Description here.
3446  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_TRMNT
3447  * Please Place Description here.
3448  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_SUS
3449  * Please Place Description here.
3450  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_RSUM
3451  * Please Place Description here.
3452  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_LAST
3453  * Please Place Description here.
3454  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_MAX
3455  * Please Place Description here.
3456  * @var mac_ax_twtact_act_tp::MAC_AX_TWTACT_ACT_TP_INVALID
3457  * Please Place Description here.
3458  */
3459 enum mac_ax_twtact_act_tp {
3460 	MAC_AX_TWTACT_ACT_TP_ADD,
3461 	MAC_AX_TWTACT_ACT_TP_DEL,
3462 	MAC_AX_TWTACT_ACT_TP_TRMNT,
3463 	MAC_AX_TWTACT_ACT_TP_SUS,
3464 	MAC_AX_TWTACT_ACT_TP_RSUM,
3465 
3466 	/* keep last */
3467 	MAC_AX_TWTACT_ACT_TP_LAST,
3468 	MAC_AX_TWTACT_ACT_TP_MAX = MAC_AX_TWTACT_ACT_TP_LAST,
3469 	MAC_AX_TWTACT_ACT_TP_INVALID = MAC_AX_TWTACT_ACT_TP_LAST,
3470 };
3471 
3472 /**
3473  * @enum mac_ax_twt_waitanno_tp
3474  *
3475  * @brief mac_ax_twt_waitanno_tp
3476  *
3477  * @var mac_ax_twt_waitanno_tp::MAC_AX_TWT_ANNOWAIT_DIS_MACID
3478  * Please Place Description here.
3479  * @var mac_ax_twt_waitanno_tp::MAC_AX_TWT_ANNOWAIT_EN_MACID
3480  * Please Place Description here.
3481  */
3482 enum mac_ax_twt_waitanno_tp {
3483 	MAC_AX_TWT_ANNOWAIT_DIS_MACID,
3484 	MAC_AX_TWT_ANNOWAIT_EN_MACID,
3485 };
3486 
3487 /**
3488  * @enum mac_ax_tsf_sync_act
3489  *
3490  * @brief mac_ax_tsf_sync_act
3491  *
3492  * @var mac_ax_tsf_sync_act::MAC_AX_TSF_SYNC_NOW_ONCE
3493  * Please Place Description here.
3494  * @var mac_ax_tsf_sync_act::MAC_AX_TSF_EN_SYNC_AUTO
3495  * Please Place Description here.
3496  * @var mac_ax_tsf_sync_act::MAC_AX_TSF_DIS_SYNC_AUTO
3497  * Please Place Description here.
3498  */
3499 enum mac_ax_tsf_sync_act {
3500 	MAC_AX_TSF_SYNC_NOW_ONCE,
3501 	MAC_AX_TSF_EN_SYNC_AUTO,
3502 	MAC_AX_TSF_DIS_SYNC_AUTO
3503 };
3504 
3505 /**
3506  * @enum mac_ax_slot_time
3507  *
3508  * @brief mac_ax_slot_time
3509  *
3510  * @var mac_ax_slot_time::MAC_AX_SLOT_TIME_BAND0_9US
3511  * Please Place Description here.
3512  * @var mac_ax_slot_time::MAC_AX_SLOT_TIME_BAND0_20US
3513  * Please Place Description here.
3514  * @var mac_ax_slot_time::MAC_AX_SLOT_TIME_BAND1_9US
3515  * Please Place Description here.
3516  * @var mac_ax_slot_time::MAC_AX_SLOT_TIME_BAND1_20US
3517  * Please Place Description here.
3518  */
3519 enum mac_ax_slot_time {
3520 	MAC_AX_SLOT_TIME_BAND0_9US,
3521 	MAC_AX_SLOT_TIME_BAND0_20US,
3522 	MAC_AX_SLOT_TIME_BAND1_9US,
3523 	MAC_AX_SLOT_TIME_BAND1_20US,
3524 };
3525 
3526 /*------------------------Define HCI related enum ----------------------------*/
3527 
3528 /**
3529  * @enum mac_ax_pcie_func_ctrl
3530  *
3531  * @brief mac_ax_pcie_func_ctrl
3532  *
3533  * @var mac_ax_pcie_func_ctrl::MAC_AX_PCIE_DISABLE
3534  * Please Place Description here.
3535  * @var mac_ax_pcie_func_ctrl::MAC_AX_PCIE_ENABLE
3536  * Please Place Description here.
3537  * @var mac_ax_pcie_func_ctrl::MAC_AX_PCIE_DEFAULT
3538  * Please Place Description here.
3539  * @var mac_ax_pcie_func_ctrl::MAC_AX_PCIE_IGNORE
3540  * Please Place Description here.
3541  */
3542 enum mac_ax_pcie_func_ctrl {
3543 	MAC_AX_PCIE_DISABLE = 0,
3544 	MAC_AX_PCIE_ENABLE = 1,
3545 	MAC_AX_PCIE_DEFAULT = 0xFE,
3546 	MAC_AX_PCIE_IGNORE = 0xFF
3547 };
3548 
3549 /**
3550  * @enum mac_ax_pcie_clkdly
3551  *
3552  * @brief mac_ax_pcie_clkdly
3553  *
3554  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_0
3555  * Please Place Description here.
3556  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_5US
3557  * Please Place Description here.
3558  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_6US
3559  * Please Place Description here.
3560  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_11US
3561  * Please Place Description here.
3562  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_15US
3563  * Please Place Description here.
3564  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_19US
3565  * Please Place Description here.
3566  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_25US
3567  * Please Place Description here.
3568  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_30US
3569  * Please Place Description here.
3570  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_38US
3571  * Please Place Description here.
3572  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_50US
3573  * Please Place Description here.
3574  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_64US
3575  * Please Place Description here.
3576  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_100US
3577  * Please Place Description here.
3578  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_128US
3579  * Please Place Description here.
3580  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_150US
3581  * Please Place Description here.
3582  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_192US
3583  * Please Place Description here.
3584  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_200US
3585  * Please Place Description here.
3586  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_300US
3587  * Please Place Description here.
3588  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_400US
3589  * Please Place Description here.
3590  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_500US
3591  * Please Place Description here.
3592  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_1MS
3593  * Please Place Description here.
3594  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_3MS
3595  * Please Place Description here.
3596  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_5MS
3597  * Please Place Description here.
3598  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_10MS
3599  * Please Place Description here.
3600  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_R_ERR
3601  * Please Place Description here.
3602  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_DEF
3603  * Please Place Description here.
3604  * @var mac_ax_pcie_clkdly::MAC_AX_PCIE_CLKDLY_IGNORE
3605  * Please Place Description here.
3606  */
3607 enum mac_ax_pcie_clkdly {
3608 	MAC_AX_PCIE_CLKDLY_0 = 0,
3609 	MAC_AX_PCIE_CLKDLY_5US = 1,
3610 	MAC_AX_PCIE_CLKDLY_6US = 2,
3611 	MAC_AX_PCIE_CLKDLY_11US = 3,
3612 	MAC_AX_PCIE_CLKDLY_15US = 4,
3613 	MAC_AX_PCIE_CLKDLY_19US = 5,
3614 	MAC_AX_PCIE_CLKDLY_25US = 6,
3615 	MAC_AX_PCIE_CLKDLY_30US = 7,
3616 	MAC_AX_PCIE_CLKDLY_38US = 8,
3617 	MAC_AX_PCIE_CLKDLY_50US = 9,
3618 	MAC_AX_PCIE_CLKDLY_64US = 10,
3619 	MAC_AX_PCIE_CLKDLY_100US = 11,
3620 	MAC_AX_PCIE_CLKDLY_128US = 12,
3621 	MAC_AX_PCIE_CLKDLY_150US = 13,
3622 	MAC_AX_PCIE_CLKDLY_192US = 14,
3623 	MAC_AX_PCIE_CLKDLY_200US = 15,
3624 	MAC_AX_PCIE_CLKDLY_300US = 16,
3625 	MAC_AX_PCIE_CLKDLY_400US = 17,
3626 	MAC_AX_PCIE_CLKDLY_500US = 18,
3627 	MAC_AX_PCIE_CLKDLY_1MS = 19,
3628 	MAC_AX_PCIE_CLKDLY_3MS = 20,
3629 	MAC_AX_PCIE_CLKDLY_5MS = 21,
3630 	MAC_AX_PCIE_CLKDLY_10MS = 22,
3631 	MAC_AX_PCIE_CLKDLY_R_ERR = 0xFD,
3632 	MAC_AX_PCIE_CLKDLY_DEF = 0xFE,
3633 	MAC_AX_PCIE_CLKDLY_IGNORE = 0xFF
3634 };
3635 
3636 /**
3637  * @enum mac_ax_rx_ch
3638  *
3639  * @brief mac_ax_rx_ch
3640  *
3641  * @var mac_ax_rx_ch::MAC_AX_RX_CH_RXQ
3642  * Please Place Description here.
3643  * @var mac_ax_rx_ch::MAC_AX_RX_CH_RPQ
3644  * Please Place Description here.
3645  * @var mac_ax_rx_ch::MAC_AX_RX_CH_NUM
3646  * Please Place Description here.
3647  */
3648 enum mac_ax_rx_ch {
3649 	MAC_AX_RX_CH_RXQ = 0,
3650 	MAC_AX_RX_CH_RPQ,
3651 	MAC_AX_RX_CH_NUM
3652 };
3653 
3654 /**
3655  * @enum mac_ax_pcie_l1dly
3656  *
3657  * @brief mac_ax_pcie_l1dly
3658  *
3659  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_16US
3660  * Please Place Description here.
3661  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_32US
3662  * Please Place Description here.
3663  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_64US
3664  * Please Place Description here.
3665  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_INFI
3666  * Please Place Description here.
3667  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_R_ERR
3668  * Please Place Description here.
3669  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_DEF
3670  * Please Place Description here.
3671  * @var mac_ax_pcie_l1dly::MAC_AX_PCIE_L1DLY_IGNORE
3672  * Please Place Description here.
3673  */
3674 enum mac_ax_pcie_l1dly {
3675 	MAC_AX_PCIE_L1DLY_16US = 0,
3676 	MAC_AX_PCIE_L1DLY_32US = 1,
3677 	MAC_AX_PCIE_L1DLY_64US = 2,
3678 	MAC_AX_PCIE_L1DLY_INFI = 3,
3679 	MAC_AX_PCIE_L1DLY_R_ERR = 0xFD,
3680 	MAC_AX_PCIE_L1DLY_DEF = 0xFE,
3681 	MAC_AX_PCIE_L1DLY_IGNORE = 0xFF
3682 };
3683 
3684 /**
3685  * @enum mac_ax_pcie_l0sdly
3686  *
3687  * @brief mac_ax_pcie_l0sdly
3688  *
3689  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_1US
3690  * Please Place Description here.
3691  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_2US
3692  * Please Place Description here.
3693  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_3US
3694  * Please Place Description here.
3695  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_4US
3696  * Please Place Description here.
3697  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_5US
3698  * Please Place Description here.
3699  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_6US
3700  * Please Place Description here.
3701  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_7US
3702  * Please Place Description here.
3703  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_R_ERR
3704  * Please Place Description here.
3705  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_DEF
3706  * Please Place Description here.
3707  * @var mac_ax_pcie_l0sdly::MAC_AX_PCIE_L0SDLY_IGNORE
3708  * Please Place Description here.
3709  */
3710 enum mac_ax_pcie_l0sdly {
3711 	MAC_AX_PCIE_L0SDLY_1US = 0,
3712 	MAC_AX_PCIE_L0SDLY_2US = 1,
3713 	MAC_AX_PCIE_L0SDLY_3US = 2,
3714 	MAC_AX_PCIE_L0SDLY_4US = 3,
3715 	MAC_AX_PCIE_L0SDLY_5US = 4,
3716 	MAC_AX_PCIE_L0SDLY_6US = 5,
3717 	MAC_AX_PCIE_L0SDLY_7US = 6,
3718 	MAC_AX_PCIE_L0SDLY_R_ERR = 0xFD,
3719 	MAC_AX_PCIE_L0SDLY_DEF = 0xFE,
3720 	MAC_AX_PCIE_L0SDLY_IGNORE = 0xFF
3721 };
3722 
3723 /**
3724  * @enum mac_ax_pcie_ltr_spc
3725  *
3726  * @brief mac_ax_pcie_ltr_spc
3727  *
3728  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_10US
3729  * Please Place Description here.
3730  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_100US
3731  * Please Place Description here.
3732  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_500US
3733  * Please Place Description here.
3734  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_1MS
3735  * Please Place Description here.
3736  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_R_ERR
3737  * Please Place Description here.
3738  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_DEF
3739  * Please Place Description here.
3740  * @var mac_ax_pcie_ltr_spc::MAC_AX_PCIE_LTR_SPC_IGNORE
3741  * Please Place Description here.
3742  */
3743 enum mac_ax_pcie_ltr_spc {
3744 	MAC_AX_PCIE_LTR_SPC_10US = 0,
3745 	MAC_AX_PCIE_LTR_SPC_100US = 1,
3746 	MAC_AX_PCIE_LTR_SPC_500US = 2,
3747 	MAC_AX_PCIE_LTR_SPC_1MS = 3,
3748 	MAC_AX_PCIE_LTR_SPC_R_ERR = 0xFD,
3749 	MAC_AX_PCIE_LTR_SPC_DEF = 0xFE,
3750 	MAC_AX_PCIE_LTR_SPC_IGNORE = 0xFF
3751 };
3752 
3753 /**
3754  * @enum mac_ax_pcie_ltr_idle_timer
3755  *
3756  * @brief mac_ax_pcie_ltr_idle_timer
3757  *
3758  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_1US
3759  * Please Place Description here.
3760  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_10US
3761  * Please Place Description here.
3762  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_100US
3763  * Please Place Description here.
3764  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_200US
3765  * Please Place Description here.
3766  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_400US
3767  * Please Place Description here.
3768  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_800US
3769  * Please Place Description here.
3770  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_1_6MS
3771  * Please Place Description here.
3772  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_3_2MS
3773  * Please Place Description here.
3774  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_R_ERR
3775  * Please Place Description here.
3776  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_DEF
3777  * Please Place Description here.
3778  * @var mac_ax_pcie_ltr_idle_timer::MAC_AX_PCIE_LTR_IDLE_TIMER_IGNORE
3779  * Please Place Description here.
3780  */
3781 enum mac_ax_pcie_ltr_idle_timer {
3782 	MAC_AX_PCIE_LTR_IDLE_TIMER_1US = 0,
3783 	MAC_AX_PCIE_LTR_IDLE_TIMER_10US = 1,
3784 	MAC_AX_PCIE_LTR_IDLE_TIMER_100US = 2,
3785 	MAC_AX_PCIE_LTR_IDLE_TIMER_200US = 3,
3786 	MAC_AX_PCIE_LTR_IDLE_TIMER_400US = 4,
3787 	MAC_AX_PCIE_LTR_IDLE_TIMER_800US = 5,
3788 	MAC_AX_PCIE_LTR_IDLE_TIMER_1_6MS = 6,
3789 	MAC_AX_PCIE_LTR_IDLE_TIMER_3_2MS = 7,
3790 	MAC_AX_PCIE_LTR_IDLE_TIMER_R_ERR = 0xFD,
3791 	MAC_AX_PCIE_LTR_IDLE_TIMER_DEF = 0xFE,
3792 	MAC_AX_PCIE_LTR_IDLE_TIMER_IGNORE = 0xFF
3793 };
3794 
3795 /**
3796  * @enum mac_ax_pcie_ltr_sw_ctrl
3797  *
3798  * @brief mac_ax_pcie_ltr_sw_ctrl
3799  *
3800  * @var mac_ax_pcie_ltr_sw_ctrl::MAC_AX_PCIE_LTR_SW_ACT
3801  * Please Place Description here.
3802  * @var mac_ax_pcie_ltr_sw_ctrl::MAC_AX_PCIE_LTR_SW_IDLE
3803  * Please Place Description here.
3804  */
3805 enum mac_ax_pcie_ltr_sw_ctrl {
3806 	MAC_AX_PCIE_LTR_SW_ACT,
3807 	MAC_AX_PCIE_LTR_SW_IDLE
3808 };
3809 
3810 /**
3811  * @enum mac_ax_sdio_clk_mon
3812  *
3813  * @brief mac_ax_sdio_clk_mon
3814  *
3815  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_SHORT
3816  * Please Place Description here.
3817  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_LONG
3818  * Please Place Description here.
3819  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_USER_DEFINE
3820  * Please Place Description here.
3821  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_LAST
3822  * Please Place Description here.
3823  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_MAX
3824  * Please Place Description here.
3825  * @var mac_ax_sdio_clk_mon::MAC_AX_SDIO_CLK_MON_INVALID
3826  * Please Place Description here.
3827  */
3828 enum mac_ax_sdio_clk_mon {
3829 	MAC_AX_SDIO_CLK_MON_SHORT,
3830 	MAC_AX_SDIO_CLK_MON_LONG,
3831 	MAC_AX_SDIO_CLK_MON_USER_DEFINE,
3832 
3833 	/* keep last */
3834 	MAC_AX_SDIO_CLK_MON_LAST,
3835 	MAC_AX_SDIO_CLK_MON_MAX = MAC_AX_SDIO_CLK_MON_LAST,
3836 	MAC_AX_SDIO_CLK_MON_INVALID = MAC_AX_SDIO_CLK_MON_LAST,
3837 };
3838 
3839 /**
3840  * @enum mac_ax_rx_ppdu_type
3841  *
3842  * @brief mac_ax_rx_ppdu_type
3843  *
3844  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_CCK
3845  * Please Place Description here.
3846  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_OFDM
3847  * Please Place Description here.
3848  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_HT
3849  * Please Place Description here.
3850  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_VHT_SU
3851  * Please Place Description here.
3852  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_VHT_MU
3853  * Please Place Description here.
3854  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_HE_SU
3855  * Please Place Description here.
3856  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_HE_MU
3857  * Please Place Description here.
3858  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_HE_TB
3859  * Please Place Description here.
3860  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_PPDU_LAST
3861  * Please Place Description here.
3862  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_PPDU_MAX
3863  * Please Place Description here.
3864  * @var mac_ax_rx_ppdu_type::MAC_AX_RX_PPDU_INVLAID
3865  * Please Place Description here.
3866  */
3867 enum mac_ax_rx_ppdu_type {
3868 	MAC_AX_RX_CCK,
3869 	MAC_AX_RX_OFDM,
3870 	MAC_AX_RX_HT,
3871 	MAC_AX_RX_VHT_SU,
3872 	MAC_AX_RX_VHT_MU,
3873 	MAC_AX_RX_HE_SU,
3874 	MAC_AX_RX_HE_MU,
3875 	MAC_AX_RX_HE_TB,
3876 
3877 	MAC_AX_RX_PPDU_LAST,
3878 	MAC_AX_RX_PPDU_MAX = MAC_AX_RX_PPDU_LAST,
3879 	MAC_AX_RX_PPDU_INVLAID = MAC_AX_RX_PPDU_LAST,
3880 };
3881 
3882 /**
3883  * @enum mac_ax_net_type
3884  *
3885  * @brief mac_ax_net_type
3886  *
3887  * @var mac_ax_net_type::MAC_AX_NET_TYPE_NO_LINK
3888  * Please Place Description here.
3889  * @var mac_ax_net_type::MAC_AX_NET_TYPE_ADHOC
3890  * Please Place Description here.
3891  * @var mac_ax_net_type::MAC_AX_NET_TYPE_INFRA
3892  * Please Place Description here.
3893  * @var mac_ax_net_type::MAC_AX_NET_TYPE_AP
3894  * Please Place Description here.
3895  */
3896 enum mac_ax_net_type {
3897 	MAC_AX_NET_TYPE_NO_LINK,
3898 	MAC_AX_NET_TYPE_ADHOC,
3899 	MAC_AX_NET_TYPE_INFRA,
3900 	MAC_AX_NET_TYPE_AP,
3901 
3902 	MAC_AX_NET_TYPE_LAST,
3903 	MAC_AX_NET_TYPE_MAX = MAC_AX_NET_TYPE_LAST,
3904 	MAC_AX_NET_TYPE_INVLAID = MAC_AX_NET_TYPE_LAST,
3905 };
3906 
3907 /**
3908  * @enum mac_ax_disable_rf_func
3909  *
3910  * @brief mac_ax_disable_rf_func
3911  *
3912  * @var mac_ax_disable_rf_func::MAC_AX_DISABLE_RF_FUNC_FBVR
3913  * Please Place Description here.
3914  * @var mac_ax_disable_rf_func::MAC_AX_DISABLE_RF_FUNC_MAX
3915  * Please Place Description here.
3916  */
3917 enum mac_ax_disable_rf_func {
3918 	MAC_AX_DISABLE_RF_FUNC_FBVR,
3919 	MAC_AX_DISABLE_RF_FUNC_MAX
3920 };
3921 
3922 /**
3923  * @enum mac_ax_self_role
3924  *
3925  * @brief mac_ax_self_role
3926  *
3927  * @var mac_ax_self_role::MAC_AX_SELF_ROLE_CLIENT
3928  * Please Place Description here.
3929  * @var mac_ax_self_role::MAC_AX_SELF_ROLE_AP
3930  * Please Place Description here.
3931  * @var mac_ax_self_role::MAC_AX_SELF_ROLE_AP_CLIENT
3932  * Please Place Description here.
3933  */
3934 enum mac_ax_self_role {
3935 	MAC_AX_SELF_ROLE_CLIENT,
3936 	MAC_AX_SELF_ROLE_AP,
3937 	MAC_AX_SELF_ROLE_AP_CLIENT
3938 };
3939 
3940 /**
3941  * @enum mac_ax_wifi_role
3942  *
3943  * @brief mac_ax_wifi_role
3944  *
3945  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_NONE
3946  * Please Place Description here.
3947  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_STATION
3948  * Please Place Description here.
3949  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_AP
3950  * Please Place Description here.
3951  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_VAP
3952  * Please Place Description here.
3953  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_ADHOC
3954  * Please Place Description here.
3955  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_ADHOC_MASTER
3956  * Please Place Description here.
3957  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_MESH
3958  * Please Place Description here.
3959  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_MONITOR
3960  * Please Place Description here.
3961  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_P2P_DEVICE
3962  * Please Place Description here.
3963  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_P2P_GC
3964  * Please Place Description here.
3965  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_P2P_GO
3966  * Please Place Description here.
3967  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_NAN
3968  * Please Place Description here.
3969  * @var mac_ax_wifi_role::MAC_AX_WIFI_ROLE_MLME_MAX
3970  * Please Place Description here.
3971  */
3972 enum mac_ax_wifi_role {
3973 	MAC_AX_WIFI_ROLE_NONE,
3974 	MAC_AX_WIFI_ROLE_STATION,
3975 	MAC_AX_WIFI_ROLE_AP,
3976 	MAC_AX_WIFI_ROLE_VAP,
3977 	MAC_AX_WIFI_ROLE_ADHOC,
3978 	MAC_AX_WIFI_ROLE_ADHOC_MASTER,
3979 	MAC_AX_WIFI_ROLE_MESH,
3980 	MAC_AX_WIFI_ROLE_MONITOR,
3981 	MAC_AX_WIFI_ROLE_P2P_DEVICE,
3982 	MAC_AX_WIFI_ROLE_P2P_GC,
3983 	MAC_AX_WIFI_ROLE_P2P_GO,
3984 	MAC_AX_WIFI_ROLE_NAN,
3985 	MAC_AX_WIFI_ROLE_MLME_MAX
3986 };
3987 
3988 /**
3989  * @enum mac_ax_opmode
3990  *
3991  * @brief mac_ax_opmode
3992  *
3993  * @var mac_ax_opmode::MAC_AX_ROLE_CONNECT
3994  * Please Place Description here.
3995  * @var mac_ax_opmode::MAC_AX_ROLE_DISCONN
3996  * Please Place Description here.
3997  */
3998 enum mac_ax_opmode {
3999 	MAC_AX_ROLE_CONNECT,
4000 	MAC_AX_ROLE_DISCONN
4001 };
4002 
4003 /**
4004  * @enum mac_ax_upd_mode
4005  *
4006  * @brief mac_ax_upd_mode
4007  *
4008  * @var mac_ax_upd_mode::MAC_AX_ROLE_CREATE
4009  * Please Place Description here.
4010  * @var mac_ax_upd_mode::MAC_AX_ROLE_REMOVE
4011  * Please Place Description here.
4012  * @var mac_ax_upd_mode::MAC_AX_ROLE_TYPE_CHANGE
4013  * Please Place Description here.
4014  * @var mac_ax_upd_mode::MAC_AX_ROLE_INFO_CHANGE
4015  * Please Place Description here.
4016  * @var mac_ax_upd_mode::MAC_AX_ROLE_CON_DISCONN
4017  * Please Place Description here.
4018  * @var mac_ax_upd_mode::MAC_AX_ROLE_BAND_SW
4019  * Please Place Description here.
4020  * @var mac_ax_upd_mode::MAC_AX_ROLE_FW_RESTORE
4021  * Please Place Description here.
4022  */
4023 enum mac_ax_upd_mode {
4024 	MAC_AX_ROLE_CREATE,
4025 	MAC_AX_ROLE_REMOVE,
4026 	MAC_AX_ROLE_TYPE_CHANGE,
4027 	MAC_AX_ROLE_INFO_CHANGE,
4028 	MAC_AX_ROLE_CON_DISCONN,
4029 	MAC_AX_ROLE_BAND_SW,
4030 	MAC_AX_ROLE_FW_RESTORE,
4031 };
4032 
4033 /**
4034  * @enum mac_ax_host_rpr_mode
4035  *
4036  * @brief mac_ax_host_rpr_mode
4037  *
4038  * @var mac_ax_host_rpr_mode::MAC_AX_RPR_MODE_POH
4039  * Please Place Description here.
4040  * @var mac_ax_host_rpr_mode::MAC_AX_RPR_MODE_STF
4041  * Please Place Description here.
4042  */
4043 enum mac_ax_host_rpr_mode {
4044 	MAC_AX_RPR_MODE_POH = 0,
4045 	MAC_AX_RPR_MODE_STF
4046 };
4047 
4048 #ifndef CONFIG_FW_IO_OFLD_SUPPORT
4049 /**
4050  * @enum rtw_mac_src_cmd_ofld
4051  *
4052  * @brief rtw_mac_src_cmd_ofld
4053  *
4054  * @var rtw_mac_src_cmd_ofld::MAC_AX_BB_CMD_OFLD
4055  * Please Place Description here.
4056  * @var rtw_mac_src_cmd_ofld::MAC_AX_RF_CMD_OFLD
4057  * Please Place Description here.
4058  * @var rtw_mac_src_cmd_ofld::MAC_AX_MAC_CMD_OFLD
4059  * Please Place Description here.
4060  * @var rtw_mac_src_cmd_ofld::MAC_AX_OTHER_CMD_OFLD
4061  * Please Place Description here.
4062  */
4063 enum rtw_mac_src_cmd_ofld {
4064 	RTW_MAC_BB_CMD_OFLD = 0,
4065 	RTW_MAC_RF_CMD_OFLD,
4066 	RTW_MAC_MAC_CMD_OFLD,
4067 	RTW_MAC_OTHER_CMD_OFLD
4068 };
4069 
4070 /**
4071  * @enum rtw_mac_cmd_type_ofld
4072  *
4073  * @brief rtw_mac_cmd_type_ofld
4074  *
4075  * @var rtw_mac_cmd_type_ofld::MAC_AX_WRITE_OFLD
4076  * Please Place Description here.
4077  * @var rtw_mac_cmd_type_ofld::MAC_AX_POLLING_OFLD
4078  * Please Place Description here.
4079  * @var rtw_mac_cmd_type_ofld::MAC_AX_DELAY_OFLD
4080  * Please Place Description here.
4081  */
4082 enum rtw_mac_cmd_type_ofld {
4083 	RTW_MAC_WRITE_OFLD = 0,
4084 	RTW_MAC_COMPARE_OFLD,
4085 	RTW_MAC_DELAY_OFLD
4086 };
4087 
4088 /**
4089  * @enum mac_ax_cmd_id
4090  *
4091  * @brief mac_ax_cmd_id
4092  *
4093  * @var mac_ax_host_rpr_mode::MAC_AX_ID_0
4094  * Please Place Description here.
4095  * @var mac_ax_host_rpr_mode::MAC_AX_ID_1
4096  * Please Place Description here.
4097  */
4098 enum mac_ax_cmd_id {
4099 	MAC_AX_ID_0 = 0,
4100 	MAC_AX_ID_1
4101 };
4102 
4103 /**
4104  * @enum rtw_mac_rf_path
4105  *
4106  * @brief rtw_mac_rf_path
4107  *
4108  * @var rtw_mac_rf_path::RF_PATH_A
4109  * Please Place Description here.
4110  * @var rtw_mac_rf_path::RF_PATH_B
4111  * Please Place Description here.
4112  * @var rtw_mac_rf_path::RF_PATH_C
4113  * Please Place Description here.
4114  * @var rtw_mac_rf_path::RF_PATH_D
4115  * Please Place Description here.
4116  */
4117 enum rtw_mac_rf_path {
4118 	RTW_MAC_RF_PATH_A = 0,   //Radio Path A
4119 	RTW_MAC_RF_PATH_B,	//Radio Path B
4120 	RTW_MAC_RF_PATH_C,	//Radio Path C
4121 	RTW_MAC_RF_PATH_D,	//Radio Path D
4122 };
4123 
4124 enum rtw_fw_cap {
4125 	FW_CAP_IO_OFLD = BIT(0),
4126 };
4127 
4128 #endif
4129 
4130 /**
4131  * @struct mac_ax_role_opmode
4132  * @brief mac_ax_role_opmode
4133  *
4134  * @var mac_ax_role_opmode::ADD
4135  * Please Place Description here.
4136  * @var mac_ax_role_opmode::CHG
4137  * Please Place Description here.
4138  * @var mac_ax_role_opmode::RMV
4139  * Please Place Description here.
4140  */
4141 enum mac_ax_role_opmode {
4142 	ADD = 0,
4143 	CHG,
4144 	RMV
4145 };
4146 
4147 /**
4148  * @enum mac_ax_dbcc_wmm
4149  *
4150  * @brief mac_ax_dbcc_wmm
4151  *
4152  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM0
4153  * Please Place Description here.
4154  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM1
4155  * Please Place Description here.
4156  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM2
4157  * Please Place Description here.
4158  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM3
4159  * Please Place Description here.
4160  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM_LAST
4161  * Please Place Description here.
4162  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM_MAX
4163  * Please Place Description here.
4164  * @var mac_ax_dbcc_wmm::MAC_AX_DBCC_WMM_INVALID
4165  * Please Place Description here.
4166  */
4167 enum mac_ax_dbcc_wmm {
4168 	MAC_AX_DBCC_WMM0 = 0,
4169 	MAC_AX_DBCC_WMM1,
4170 	MAC_AX_DBCC_WMM2,
4171 	MAC_AX_DBCC_WMM3,
4172 
4173 	MAC_AX_DBCC_WMM_LAST,
4174 	MAC_AX_DBCC_WMM_MAX = MAC_AX_DBCC_WMM_LAST,
4175 	MAC_AX_DBCC_WMM_INVALID = MAC_AX_DBCC_WMM_LAST,
4176 };
4177 
4178 /*--------------------Define FAST_CH_SW related enum-------------------------------------*/
4179 /**
4180  * @struct mac_ax_fast_ch_sw_status_code
4181  * @brief mac_ax_fast_ch_sw_status_code
4182  *
4183  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_OK
4184  * FAST_CH_SW done without error
4185  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_PART_MALLOC_FAIL
4186  * fail when malloc pkt for part of stas
4187  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_ALL_MALLOC_FAIL
4188  * fail when malloc pkt for all of stas
4189  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_PART_READOFLD_FAIL
4190  * fail when reading offloaded pkt for part of stas
4191  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_ALL_READOFLD_FAIL
4192  * fail when reading offloaded pkt for all of stas
4193  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_PART_SENDPKT_FAIL
4194  * fail when sending pkt to part of stas
4195  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_ALL_SENDPKT_FAIL
4196  * fail when sending pkt to all of stas
4197  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_PART_NO_ACK
4198  * not receiving ack from part of stas
4199  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_ALL_NO_ACK
4200  * not receiving ack from all of stas
4201  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_SWITCH_CH_FAIL
4202  * AP fail to switch channel
4203  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_RF_PARAM_ERR
4204  * AP fail to restore RF params
4205  * @var mac_ax_fast_ch_sw_status_code::MAC_AX_FAST_CH_SW_STATUS_MAX
4206  * Please Place Description here.
4207  */
4208 enum mac_ax_fast_ch_sw_status_code {
4209 	MAC_AX_FAST_CH_SW_STATUS_OK = 0,
4210 	MAC_AX_FAST_CH_SW_STATUS_PART_MALLOC_FAIL = 1,
4211 	MAC_AX_FAST_CH_SW_STATUS_ALL_MALLOC_FAIL = 2,
4212 	MAC_AX_FAST_CH_SW_STATUS_PART_READOFLD_FAIL = 3,
4213 	MAC_AX_FAST_CH_SW_STATUS_ALL_READOFLD_FAIL = 4,
4214 	MAC_AX_FAST_CH_SW_STATUS_PART_SENDPKT_FAIL = 5,
4215 	MAC_AX_FAST_CH_SW_STATUS_ALL_SENDPKT_FAIL = 6,
4216 	MAC_AX_FAST_CH_SW_STATUS_PART_NO_ACK = 7,
4217 	MAC_AX_FAST_CH_SW_STATUS_ALL_NO_ACK = 8,
4218 	MAC_AX_FAST_CH_SW_STATUS_SWITCH_CH_FAIL = 9,
4219 	MAC_AX_FAST_CH_SW_STATUS_RF_PARAM_ERR = 10,
4220 	MAC_AX_FAST_CH_SW_STATUS_MAX
4221 };
4222 
4223 enum mac_ax_fw_state {
4224 	FS_SLEEP_IN       = 0x10,
4225 	FS_ERRHDL_IN      = 0x11,
4226 	FS_ASSERT_IN      = 0x12,
4227 	FS_EXCEP_IN       = 0x13,
4228 	FS_L2ERR_IN       = 0x14,
4229 	FS_L2ERR_CPU_IN   = 0x15,//CPU address hole
4230 	FS_L2ERR_HCI_IN   = 0x16,//HCI timeout
4231 	FS_L2ERR_ELSE_IN  = 0x17,
4232 	FS_WOW_FWDL_IN    = 0x18,
4233 
4234 	FS_SLEEP_OUT      = 0x80,
4235 	FS_ERRHDL_OUT     = 0x81,
4236 	FS_ASSERT_OUT     = 0x82,
4237 	//rsvd: 0xFFFFFF83
4238 	FS_L2ERR_OUT      = 0x84,
4239 
4240 	// Defeature
4241 	FS_DEFEA_RXNSS    = 0xEA01,
4242 	FS_DEFEA_BW5      = 0xEA02,
4243 	FS_DEFEA_BW10     = 0xEA03,
4244 	FS_DEFEA_BW20     = 0xEA04,
4245 	FS_DEFEA_BW40     = 0xEA05,
4246 	FS_DEFEA_BW80     = 0xEA06,
4247 	FS_DEFEA_BW160    = 0xEA07,
4248 	FS_DEFEA_TXNSS    = 0xEA08,
4249 	FS_DEFEA_PTCL     = 0xEA09,
4250 	FS_DEFEA_DBLABORT = 0xEA0A,
4251 };
4252 
4253 enum mac_ax_dev2hst_gpio {
4254 	MAC_AX_DEV2HST_GPIO_OUTPUT = 0,
4255 	MAC_AX_DEV2HST_GPIO_INPUT = 1,
4256 	MAC_AX_DEV2HST_GPIO_MAX
4257 };
4258 
4259 enum mac_ax_dev2hst_active {
4260 	MAC_AX_DEV2HST_LOW_ACTIVE = 0,
4261 	MAC_AX_DEV2HST_HIGH_ACTIVE = 1,
4262 	MAC_AX_DEV2HST_ACTIVE_MAX
4263 };
4264 
4265 enum mac_ax_dev2hst_toggle_pulse {
4266 	MAC_AX_DEV2HST_TOGGLE = 0,
4267 	MAC_AX_DEV2HST_PULSE = 1,
4268 	MAC_AX_DEV2HST_TOGGLE_PULSE_MAX
4269 };
4270 
4271 enum mac_ax_dev2hst_time_unit {
4272 	MAC_AX_DEV2HST_US = 0,
4273 	MAC_AX_DEV2HST_MS = 1,
4274 	MAC_AX_DEV2HST_TIME_UNIT_MAX
4275 };
4276 
4277 /**
4278  * @enum h2c_buf_class
4279  *
4280  * @brief h2c_buf_class
4281  *
4282  * @var h2c_buf_class::H2CB_CLASS_CMD
4283  * Please Place Description here.
4284  * @var h2c_buf_class::H2CB_CLASS_DATA
4285  * Please Place Description here.
4286  * @var h2c_buf_class::H2CB_CLASS_LONG_DATA
4287  * Please Place Description here.
4288  * @var h2c_buf_class::H2CB_CLASS_LAST
4289  * Please Place Description here.
4290  * @var h2c_buf_class::H2CB_CLASS_MAX
4291  * Please Place Description here.
4292  * @var h2c_buf_class::H2CB_CLASS_INVALID
4293  * Please Place Description here.
4294  */
4295 enum h2c_buf_class {
4296 	H2CB_CLASS_CMD,		/* FW command */
4297 	H2CB_CLASS_DATA,	/* FW command + data */
4298 	H2CB_CLASS_LONG_DATA,	/* FW command + long data */
4299 
4300 	/* keep last */
4301 	H2CB_CLASS_LAST,
4302 	H2CB_CLASS_MAX = H2CB_CLASS_LAST,
4303 	H2CB_CLASS_INVALID = H2CB_CLASS_LAST,
4304 };
4305 
4306 /*--------------------Define Power Saving related enum-------------------------------------*/
4307 /**
4308  * @enum mac_ax_listern_bcn_mode
4309  *
4310  * @brief mac_ax_listern_bcn_mode
4311  *
4312  * @var mac_ax_listern_bcn_mode::MAC_AX_RLBM_MIN
4313  * Please Place Description here.
4314  * @var mac_ax_listern_bcn_mode::MAC_AX_RLBM_MAX
4315  * Please Place Description here.
4316  * @var mac_ax_listern_bcn_mode::MAC_AX_RLBM_USERDEFINE
4317  * Please Place Description here.
4318  */
4319 enum mac_ax_listern_bcn_mode {
4320 	MAC_AX_RLBM_MIN         = 0,
4321 	MAC_AX_RLBM_MAX         = 1,
4322 	MAC_AX_RLBM_USERDEFINE  = 2,
4323 };
4324 
4325 /**
4326  * @enum mac_ax_smart_ps_mode
4327  *
4328  * @brief mac_ax_smart_ps_mode
4329  *
4330  * @var mac_ax_smart_ps_mode::MAC_AX_SMART_PS_MODE_LEGACY_PWR1
4331  * Please Place Description here.
4332  * @var mac_ax_smart_ps_mode::MAC_AX_SMART_PS_MODE_TRX_PWR0
4333  * Please Place Description here.
4334  */
4335 enum mac_ax_smart_ps_mode {
4336 	MAC_AX_SMART_PS_MODE_LEGACY_PWR1 = 0,
4337 	MAC_AX_SMART_PS_MODE_TRX_PWR0 = 1,
4338 };
4339 
4340 /**
4341  * @enum mac_ax_ps_advance_parm_op
4342  *
4343  * @brief mac_ax_ps_advance_parm_op
4344  *
4345  * @var mac_ax_ps_advance_parm_op::PS_ADVANCE_PARM_OP_NO_CHANGE
4346  * Please Place Description here.
4347  * @var mac_ax_ps_advance_parm_op::PS_ADVANCE_PARM_OP_SET
4348  * Please Place Description here.
4349  * @var mac_ax_ps_advance_parm_op::PS_ADVANCE_PARM_OP_DEFAULT
4350  * Please Place Description here.
4351  */
4352 enum mac_ax_ps_advance_parm_op{
4353 	PS_ADVANCE_PARM_OP_NO_CHANGE = 0,
4354 	PS_ADVANCE_PARM_OP_SET = 1,
4355 	PS_ADVANCE_PARM_OP_DEFAULT = 2,
4356 };
4357 
4358 /**
4359  * @struct mac_ax_scanofld_notify_reason
4360  * @brief mac_ax_scanofld_notify_reason
4361  *
4362  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_DWELL_NOTIFY
4363  * channel dwell due to rcv bcn
4364  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_PRE_TX_NOTIFY
4365  * before tx pkt
4366  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_POST_TX_NOTIFY
4367  * after tx pkt
4368  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_ENTER_CH_NOTIFY
4369  * enter ch
4370  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_LEAVE_CH_NOTIFY
4371  * leace ch
4372  * @var mac_ax_scanofld_notify_reason::MAC_AX_SCAN_END_SCAN_NOTIFY
4373  * scan stop
4374  */
4375 enum mac_ax_scanofld_notify_reason {
4376 	MAC_AX_SCAN_DWELL_NOTIFY = 0,
4377 	MAC_AX_SCAN_PRE_TX_NOTIFY = 1,
4378 	MAC_AX_SCAN_POST_TX_NOTIFY = 2,
4379 	MAC_AX_SCAN_ENTER_CH_NOTIFY = 3,
4380 	MAC_AX_SCAN_LEAVE_CH_NOTIFY = 4,
4381 	MAC_AX_SCAN_END_SCAN_NOTIFY = 5,
4382 };
4383 
4384 /**
4385  * @struct mac_ax_scan_ofld_op
4386  * @brief mac_ax_scan_ofld_op
4387  *
4388  * @var mac_ax_scan_ofld_op::MAC_AX_SCAN_OP_STOP
4389  * stop scan
4390  * @var mac_ax_scan_ofld_op::MAC_AX_SCAN_OP_START
4391  * start scan
4392  * @var mac_ax_scan_ofld_op::MAC_AX_SCAN_OP_SETPARM
4393  * set parameter only
4394  * @var mac_ax_scan_ofld_op::MAC_AX_SCAN_OP_MAX
4395  * max
4396  */
4397 enum mac_ax_scan_ofld_op {
4398 	MAC_AX_SCAN_OP_STOP = 0,
4399 	MAC_AX_SCAN_OP_START = 1,
4400 	MAC_AX_SCAN_OP_SETPARM = 2,
4401 	MAC_AX_SCAN_OP_MAX
4402 };
4403 
4404 /**
4405  * @struct mac_ax_scan_ofld_scantype
4406  * @brief mac_ax_scan_ofld_scantype
4407  *
4408  * @var mac_ax_scan_ofld_scantype::MAC_AX_SCAN_TYPE_SCANONCE
4409  * scan once
4410  * @var mac_ax_scan_ofld_scantype::MAC_AX_SCAN_TYPE_NORMAL
4411  * repeat. period=normal pd
4412  * @var mac_ax_scan_ofld_scantype::MAC_AX_SCAN_TYPE_NORMAL_SLOW
4413  * repeat. normal pd * normal cycle + slow pd
4414  * @var mac_ax_scan_ofld_scantype::MAC_AX_SCAN_TYPE_SEAMLESS
4415  * repeat seamless
4416  * @var mac_ax_scan_ofld_scantype::MAC_AX_SCAN_TYPE_MAX
4417  * max
4418  */
4419 enum mac_ax_scan_ofld_scantype {
4420 	MAC_AX_SCAN_TYPE_SCANONCE = 0,
4421 	MAC_AX_SCAN_TYPE_NORMAL = 1,
4422 	MAC_AX_SCAN_TYPE_NORMAL_SLOW = 2,
4423 	MAC_AX_SCAN_TYPE_SEAMLESS = 3,
4424 	MAC_AX_SCAN_TYPE_MAX
4425 };
4426 
4427 /**
4428  * @struct mac_ax_scanofld_start_mode
4429  * @brief mac_ax_scanofld_start_mode
4430  *
4431  * @var mac_ax_scanofld_start_mode::MAC_AX_SCAN_START_NOW
4432  * start now
4433  * @var mac_ax_scanofld_start_mode::MAC_AX_SCAN_START_TSF
4434  * start at assigned tsf
4435  * @var mac_ax_scanofld_start_mode::MAC_AX_SCAN_START_MAX
4436  * max
4437  */
4438 enum mac_ax_scanofld_start_mode {
4439 	MAC_AX_SCAN_START_NOW = 0,
4440 	MAC_AX_SCAN_START_TSF = 1,
4441 	MAC_AX_SCAN_START_MAX
4442 };
4443 
4444 /**
4445  * @enum mac_ax_dma_ch
4446  *
4447  * @brief mac_ax_dma_ch
4448  *
4449  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH0
4450  * Please Place Description here.
4451  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH1
4452  * Please Place Description here.
4453  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH2
4454  * Please Place Description here.
4455  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH3
4456  * Please Place Description here.
4457  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH4
4458  * Please Place Description here.
4459  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH5
4460  * Please Place Description here.
4461  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH6
4462  * Please Place Description here.
4463  * @var mac_ax_dma_ch::MAC_AX_DMA_ACH7
4464  * Please Place Description here.
4465  * @var mac_ax_dma_ch::MAC_AX_DMA_B0MG
4466  * Please Place Description here.
4467  * @var mac_ax_dma_ch::MAC_AX_DMA_B0HI
4468  * Please Place Description here.
4469  * @var mac_ax_dma_ch::MAC_AX_DMA_B1MG
4470  * Please Place Description here.
4471  * @var mac_ax_dma_ch::MAC_AX_DMA_B1HI
4472  * Please Place Description here.
4473  * @var mac_ax_dma_ch::MAC_AX_DMA_H2C
4474  * Please Place Description here.
4475  * @var mac_ax_dma_ch::MAC_AX_DMA_CH_NUM
4476  * Please Place Description here.
4477  */
4478 enum mac_ax_dma_ch {
4479 	MAC_AX_DMA_ACH0 = 0,
4480 	MAC_AX_DMA_ACH1,
4481 	MAC_AX_DMA_ACH2,
4482 	MAC_AX_DMA_ACH3,
4483 	MAC_AX_DMA_ACH4,
4484 	MAC_AX_DMA_ACH5,
4485 	MAC_AX_DMA_ACH6,
4486 	MAC_AX_DMA_ACH7,
4487 	MAC_AX_DMA_B0MG,
4488 	MAC_AX_DMA_B0HI,
4489 	MAC_AX_DMA_B1MG,
4490 	MAC_AX_DMA_B1HI,
4491 	MAC_AX_DMA_H2C,
4492 	MAC_AX_DMA_CH_NUM
4493 };
4494 
4495 /**
4496  * @enum mac_ax_bcn_fltr_notify
4497  *
4498  * @brief mac_ax_bcn_fltr_notify
4499  *
4500  * @var mac_ax_bcn_fltr_notify::BCNFLTR_NOTI_BCN_LOSS
4501  * Please Place Description here.
4502  * @var mac_ax_bcn_fltr_notify::BCNFLTR_NOTI_RSSI
4503  * Please Place Description here.
4504  * @var mac_ax_bcn_fltr_notify::BCNFLTR_NOTI_DENY_SCAN
4505  * Please Place Description here.
4506  */
4507 enum mac_ax_bcn_fltr_notify {
4508 	BCNFLTR_NOTI_BCN_LOSS = 0,
4509 	BCNFLTR_NOTI_RSSI,
4510 	BCNFLTR_NOTI_DENY_SCAN,
4511 	BCNFLTR_NOTI_MAX,
4512 };
4513 
4514 /**
4515  * @enum mac_ax_bcn_fltr_rssi_evt
4516  *
4517  * @brief mac_ax_bcn_fltr_rssi_evt
4518  *
4519  * @var mac_ax_bcn_fltr_rssi_evt::BCNFLTR_RSSI_EVT_NOT_CHANGED
4520  * Please Place Description here.
4521  * @var mac_ax_bcn_fltr_rssi_evt::BCNFLTR_RSSI_EVT_HIGH
4522  * Please Place Description here.
4523  * @var mac_ax_bcn_fltr_rssi_evt::BCNFLTR_RSSI_EVT_LOW
4524  * Please Place Description here.
4525  */
4526 enum mac_ax_bcn_fltr_rssi_evt {
4527 	BCNFLTR_RSSI_EVT_NOT_CHANGED = 0,
4528 	BCNFLTR_RSSI_EVT_HIGH,
4529 	BCNFLTR_RSSI_EVT_LOW,
4530 	BCNFLTR_RSSI_EVT_MAX,
4531 };
4532 
4533 /**
4534  * @enum mac_ax_bcn_fltr_tp_thld
4535  *
4536  * @brief mac_ax_bcn_fltr_tp_thld
4537  *
4538  * @var mac_ax_bcn_fltr_tp_thld::BCNFLTR_TP_THLD_1M
4539  * Please Place Description here.
4540  * @var mac_ax_bcn_fltr_tp_thld::BCNFLTR_TP_THLD_3M
4541  * Please Place Description here.
4542  * @var mac_ax_bcn_fltr_tp_thld::BCNFLTR_TP_THLD_10M
4543  * Please Place Description here.
4544  * @var mac_ax_bcn_fltr_tp_thld::BCNFLTR_TP_THLD_50M
4545  * Please Place Description here.
4546  */
4547 enum mac_ax_bcn_fltr_tp_thld {
4548 	BCNFLTR_TP_THLD_1M = 0,
4549 	BCNFLTR_TP_THLD_3M,
4550 	BCNFLTR_TP_THLD_10M,
4551 	BCNFLTR_TP_THLD_50M,
4552 	BCNFLTR_TP_THLD_MAX
4553 };
4554 
4555 /*--------------------Define Struct-------------------------------------*/
4556 
4557 /**
4558  * @struct mac_ax_sch_tx_en
4559  * @brief mac_ax_sch_tx_en
4560  *
4561  * @var mac_ax_sch_tx_en::be0
4562  * Please Place Description here.
4563  * @var mac_ax_sch_tx_en::bk0
4564  * Please Place Description here.
4565  * @var mac_ax_sch_tx_en::vi0
4566  * Please Place Description here.
4567  * @var mac_ax_sch_tx_en::vo0
4568  * Please Place Description here.
4569  * @var mac_ax_sch_tx_en::be1
4570  * Please Place Description here.
4571  * @var mac_ax_sch_tx_en::bk1
4572  * Please Place Description here.
4573  * @var mac_ax_sch_tx_en::vi1
4574  * Please Place Description here.
4575  * @var mac_ax_sch_tx_en::vo1
4576  * Please Place Description here.
4577  * @var mac_ax_sch_tx_en::mg0
4578  * Please Place Description here.
4579  * @var mac_ax_sch_tx_en::mg1
4580  * Please Place Description here.
4581  * @var mac_ax_sch_tx_en::mg2
4582  * Please Place Description here.
4583  * @var mac_ax_sch_tx_en::hi
4584  * Please Place Description here.
4585  * @var mac_ax_sch_tx_en::bcn
4586  * Please Place Description here.
4587  * @var mac_ax_sch_tx_en::ul
4588  * Please Place Description here.
4589  * @var mac_ax_sch_tx_en::twt0
4590  * Please Place Description here.
4591  * @var mac_ax_sch_tx_en::twt1
4592  * Please Place Description here.
4593  */
4594 struct mac_ax_sch_tx_en {
4595 	u8 be0:1;
4596 	u8 bk0:1;
4597 	u8 vi0:1;
4598 	u8 vo0:1;
4599 	u8 be1:1;
4600 	u8 bk1:1;
4601 	u8 vi1:1;
4602 	u8 vo1:1;
4603 	u8 mg0:1;
4604 	u8 mg1:1;
4605 	u8 mg2:1;
4606 	u8 hi:1;
4607 	u8 bcn:1;
4608 	u8 ul:1;
4609 	u8 twt0:1;
4610 	u8 twt1:1;
4611 };
4612 
4613 /**
4614  * @struct mac_ax_hw_info
4615  * @brief mac_ax_hw_info
4616  *
4617  * @var mac_ax_hw_info::done
4618  * Please Place Description here.
4619  * @var mac_ax_hw_info::chip_id
4620  * Please Place Description here.
4621  * @var mac_ax_hw_info::cv
4622  * Please Place Description here.
4623  * @var mac_ax_hw_info::intf
4624  * Please Place Description here.
4625  * @var mac_ax_hw_info::tx_ch_num
4626  * Please Place Description here.
4627  * @var mac_ax_hw_info::tx_data_ch_num
4628  * Please Place Description here.
4629  * @var mac_ax_hw_info::wd_body_len
4630  * Please Place Description here.
4631  * @var mac_ax_hw_info::wd_info_len
4632  * Please Place Description here.
4633  * @var mac_ax_hw_info::pwr_on_seq
4634  * Please Place Description here.
4635  * @var mac_ax_hw_info::pwr_off_seq
4636  * Please Place Description here.
4637  * @var mac_ax_hw_info::pwr_seq_ver
4638  * Please Place Description here.
4639  * @var mac_ax_hw_info::fifo_size
4640  * Please Place Description here.
4641  * @var mac_ax_hw_info::macid_num
4642  * Please Place Description here.
4643  * @var mac_ax_hw_info::bssid_num
4644  * Please Place Description here.
4645  * @var mac_ax_hw_info::wl_efuse_size
4646  * Please Place Description here.
4647  * @var mac_ax_hw_info::efuse_size
4648  * Please Place Description here.
4649  * @var mac_ax_hw_info::log_efuse_size
4650  * Please Place Description here.
4651  * @var mac_ax_hw_info::limit_efuse_size_pcie
4652  * Please Place Description here.
4653  * @var mac_ax_hw_info::limit_efuse_size_usb
4654  * Please Place Description here.
4655  * @var mac_ax_hw_info::limit_efuse_size_sdio
4656  * Please Place Description here.
4657  * @var mac_ax_hw_info::bt_efuse_size
4658  * Please Place Description here.
4659  * @var mac_ax_hw_info::bt_log_efuse_size
4660  * Please Place Description here.
4661  * @var mac_ax_hw_info::hidden_efuse_size
4662  * Please Place Description here.
4663  * @var mac_ax_hw_info::sec_ctrl_efuse_size
4664  * Please Place Description here.
4665  * @var mac_ax_hw_info::sec_data_efuse_size
4666  * Please Place Description here.
4667  * @var mac_ax_hw_info::sec_cam_table
4668  * Please Place Description here.
4669  * @var mac_ax_hw_info::ple_rsvd_space
4670  * Please Place Description here.
4671  * @var mac_ax_hw_info::payload_desc_size
4672  * Please Place Description here.
4673  * @var mac_ax_hw_info::wd_checksum_en
4674  * Please Place Description here.
4675  * @var mac_ax_hw_info::sw_amsdu_max_size
4676  * Please Place Description here.
4677  * @var mac_ax_hw_info::core_swr_volt
4678  * Please Place Description here.
4679  * @var mac_ax_hw_info::core_swr_volt_sel
4680  * Please Place Description here.
4681  */
4682 struct mac_ax_hw_info {
4683 	u8 done;
4684 	u8 chip_id;
4685 	u8 cv;
4686 	enum mac_ax_intf intf;
4687 	u8 tx_ch_num;
4688 	u8 tx_data_ch_num;
4689 	u8 wd_body_len;
4690 	u8 wd_info_len;
4691 	struct mac_pwr_cfg **pwr_on_seq;
4692 	struct mac_pwr_cfg **pwr_off_seq;
4693 	u8 pwr_seq_ver;
4694 	u32 fifo_size;
4695 	u16 macid_num;
4696 	u8 port_num;
4697 	u8 mbssid_num;
4698 	u8 bssid_num;
4699 	u32 wl_efuse_size;
4700 	u32 efuse_size;
4701 	u32 log_efuse_size;
4702 	u32 limit_efuse_size_pcie;
4703 	u32 limit_efuse_size_usb;
4704 	u32 limit_efuse_size_sdio;
4705 	u32 bt_efuse_size;
4706 	u32 bt_log_efuse_size;
4707 	u8 hidden_efuse_size;
4708 	u32 sec_ctrl_efuse_size;
4709 	u32 sec_data_efuse_size;
4710 	struct sec_cam_table_t *sec_cam_table;
4711 	struct sec_cam_table_t *sec_cam_table_bk;
4712 	u8 ple_rsvd_space;
4713 	u8 payload_desc_size;
4714 	u8 efuse_version_size;
4715 	u32 dav_full_efuse_size;
4716 	u32 dav_efuse_size;
4717 	u32 dav_hidden_efuse_size;
4718 	u32 dav_log_efuse_size;
4719 	u32 wl_efuse_start_addr;
4720 	u32 dav_efuse_start_addr;
4721 	u32 bt_efuse_start_addr;
4722 	u8 wd_checksum_en;
4723 	u32 sw_amsdu_max_size;
4724 	u32 (*pwr_on)(void *vadapter);
4725 	u32 (*pwr_off)(void *vadapter);
4726 	u32 ind_aces_cnt;
4727 	u32 dbg_port_cnt;
4728 	u8 core_swr_volt;
4729 	enum mac_ax_core_swr_volt core_swr_volt_sel;
4730 	mac_ax_mutex ind_access_lock;
4731 	mac_ax_mutex lte_rlock;
4732 	mac_ax_mutex lte_wlock;
4733 	mac_ax_mutex dbg_port_lock;
4734 	mac_ax_mutex err_set_lock;
4735 	mac_ax_mutex err_get_lock;
4736 	mac_ax_mutex dbi_lock;
4737 	mac_ax_mutex mdio_lock;
4738 };
4739 
4740 /**
4741  * @struct mac_ax_fw_info
4742  * @brief mac_ax_fw_info
4743  *
4744  * @var mac_ax_fw_info::major_ver
4745  * Please Place Description here.
4746  * @var mac_ax_fw_info::minor_ver
4747  * Please Place Description here.
4748  * @var mac_ax_fw_info::sub_ver
4749  * Please Place Description here.
4750  * @var mac_ax_fw_info::sub_idx
4751  * Please Place Description here.
4752  * @var mac_ax_fw_info::build_year
4753  * Please Place Description here.
4754  * @var mac_ax_fw_info::build_mon
4755  * Please Place Description here.
4756  * @var mac_ax_fw_info::build_date
4757  * Please Place Description here.
4758  * @var mac_ax_fw_info::build_hour
4759  * Please Place Description here.
4760  * @var mac_ax_fw_info::build_min
4761  * Please Place Description here.
4762  * @var mac_ax_fw_info::h2c_seq
4763  * Please Place Description here.
4764  * @var mac_ax_fw_info::rec_seq
4765  * Please Place Description here.
4766  * @var mac_ax_fw_info::seq_lock
4767  * Please Place Description here.
4768  */
4769 struct mac_ax_fw_info {
4770 	u8 major_ver;
4771 	u8 minor_ver;
4772 	u8 sub_ver;
4773 	u8 sub_idx;
4774 	u16 build_year;
4775 	u16 build_mon;
4776 	u16 build_date;
4777 	u16 build_hour;
4778 	u16 build_min;
4779 	u8 h2c_seq;
4780 	u8 rec_seq;
4781 	mac_ax_mutex seq_lock;
4782 	mac_ax_mutex msg_reg;
4783 };
4784 
4785 /**
4786  * @struct mac_ax_h2c_agg_node
4787  * @brief mac_ax_h2c_agg_node
4788  *
4789  * @var mac_ax_h2c_agg_node::next
4790  * Please Place Description here.
4791  * @var mac_ax_h2c_agg_node::h2c_pkt
4792  * Please Place Description here.
4793  */
4794 struct mac_ax_h2c_agg_node {
4795 	struct mac_ax_h2c_agg_node *next;
4796 	u8 *h2c_pkt;
4797 };
4798 
4799 /**
4800  * @struct mac_ax_h2c_agg_info
4801  * @brief mac_ax_h2c_agg_info
4802  *
4803  * @var mac_ax_h2c_agg_info::h2c_agg_en
4804  * Please Place Description here.
4805  * @var mac_ax_h2c_agg_info::h2c_agg_pkt_num
4806  * Please Place Description here.
4807  * @var mac_ax_h2c_agg_info::h2c_agg_queue_head
4808  * Please Place Description here.
4809  * @var mac_ax_h2c_agg_info::h2c_agg_queue_last
4810  * Please Place Description here.
4811  * @var mac_ax_h2c_agg_info::h2c_agg_lock
4812  * Please Place Description here.
4813  */
4814 struct mac_ax_h2c_agg_info {
4815 	u8 h2c_agg_en;
4816 	u32 h2c_agg_pkt_num;
4817 	struct mac_ax_h2c_agg_node *h2c_agg_queue_head;
4818 	struct mac_ax_h2c_agg_node *h2c_agg_queue_last;
4819 	mac_ax_mutex h2c_agg_lock;
4820 };
4821 
4822 /**
4823  * @struct mac_ax_mac_pwr_info
4824  * @brief mac_ax_mac_pwr_info
4825  *
4826  * @var mac_ax_mac_pwr_info::pwr_seq_proc
4827  * Please Place Description here.
4828  * @var mac_ax_mac_pwr_info::pwr_in_lps
4829  * Please Place Description here.
4830  * @var mac_ax_mac_pwr_info::intf_pwr_switch
4831  * Please Place Description here.
4832  */
4833 struct mac_ax_mac_pwr_info {
4834 	u8 pwr_seq_proc;
4835 	u8 pwr_in_lps;
4836 	u32 (*intf_pwr_switch)(void *vadapter,
4837 			       u8 pre_switch, u8 on);
4838 };
4839 
4840 /**
4841  * @struct mac_ax_ft_status
4842  * @brief mac_ax_ft_status
4843  *
4844  * @var mac_ax_ft_status::mac_ft
4845  * Please Place Description here.
4846  * @var mac_ax_ft_status::status
4847  * Please Place Description here.
4848  * @var mac_ax_ft_status::buf
4849  * Please Place Description here.
4850  * @var mac_ax_ft_status::size
4851  * Please Place Description here.
4852  */
4853 struct mac_ax_ft_status {
4854 	enum mac_ax_feature mac_ft;
4855 	enum mac_ax_status status;
4856 	u8 *buf;
4857 	u32 size;
4858 };
4859 
4860 /**
4861  * @struct mac_ax_dle_info
4862  * @brief mac_ax_dle_info
4863  *
4864  * @var mac_ax_dle_info::qta_mode
4865  * Please Place Description here.
4866  * @var mac_ax_dle_info::wde_pg_size
4867  * Please Place Description here.
4868  * @var mac_ax_dle_info::ple_pg_size
4869  * Please Place Description here.
4870  * @var mac_ax_dle_info::c0_rx_qta
4871  * Please Place Description here.
4872  * @var mac_ax_dle_info::c1_rx_qta
4873  * Please Place Description here.
4874  */
4875 struct mac_ax_dle_info {
4876 	enum mac_ax_qta_mode qta_mode;
4877 	u16 wde_pg_size;
4878 	u16 ple_pg_size;
4879 	u16 c0_rx_qta;
4880 	u16 c1_rx_qta;
4881 	u16 c0_ori_max;
4882 	u16 c1_ori_max;
4883 	u16 c0_tx_min;
4884 	u16 c1_tx_min;
4885 };
4886 
4887 /**
4888  * @struct mac_ax_gpio_info
4889  * @brief mac_ax_gpio_info
4890  *
4891  * @var mac_ax_gpio_info::sw_io_0
4892  * Please Place Description here.
4893  * @var mac_ax_gpio_info::sw_io_1
4894  * Please Place Description here.
4895  * @var mac_ax_gpio_info::sw_io_2
4896  * Please Place Description here.
4897  * @var mac_ax_gpio_info::sw_io_3
4898  * Please Place Description here.
4899  * @var mac_ax_gpio_info::sw_io_4
4900  * Please Place Description here.
4901  * @var mac_ax_gpio_info::sw_io_5
4902  * Please Place Description here.
4903  * @var mac_ax_gpio_info::sw_io_6
4904  * Please Place Description here.
4905  * @var mac_ax_gpio_info::sw_io_7
4906  * Please Place Description here.
4907  * @var mac_ax_gpio_info::sw_io_8
4908  * Please Place Description here.
4909  * @var mac_ax_gpio_info::sw_io_9
4910  * Please Place Description here.
4911  * @var mac_ax_gpio_info::sw_io_10
4912  * Please Place Description here.
4913  * @var mac_ax_gpio_info::sw_io_11
4914  * Please Place Description here.
4915  * @var mac_ax_gpio_info::sw_io_12
4916  * Please Place Description here.
4917  * @var mac_ax_gpio_info::sw_io_13
4918  * Please Place Description here.
4919  * @var mac_ax_gpio_info::sw_io_14
4920  * Please Place Description here.
4921  * @var mac_ax_gpio_info::sw_io_15
4922  * Please Place Description here.
4923  * @var mac_ax_gpio_info::uart_tx_gpio5
4924  * Please Place Description here.
4925  * @var mac_ax_gpio_info::uart_tx_gpio7
4926  * Please Place Description here.
4927  * @var mac_ax_gpio_info::uart_tx_gpio8
4928  * Please Place Description here.
4929  * @var mac_ax_gpio_info::uart_rx_gpio6
4930  * Please Place Description here.
4931  * @var mac_ax_gpio_info::uart_rx_gpio14
4932  * Please Place Description here.
4933  * @var mac_ax_gpio_info::status
4934  * Please Place Description here.
4935  * @var mac_ax_gpio_info::sw_io_output
4936  * Please Place Description here.
4937  */
4938 struct mac_ax_gpio_info {
4939 #define MAC_AX_GPIO_NUM 19
4940 	/* byte0 */
4941 	u8 sw_io_0:1;
4942 	u8 sw_io_1:1;
4943 	u8 sw_io_2:1;
4944 	u8 sw_io_3:1;
4945 	u8 sw_io_4:1;
4946 	u8 sw_io_5:1;
4947 	u8 sw_io_6:1;
4948 	u8 sw_io_7:1;
4949 	/* byte1 */
4950 	u8 sw_io_8:1;
4951 	u8 sw_io_9:1;
4952 	u8 sw_io_10:1;
4953 	u8 sw_io_11:1;
4954 	u8 sw_io_12:1;
4955 	u8 sw_io_13:1;
4956 	u8 sw_io_14:1;
4957 	u8 sw_io_15:1;
4958 	/* byte2 */
4959 	u8 uart_tx_gpio5:1;
4960 	u8 uart_tx_gpio7:1;
4961 	u8 uart_tx_gpio8:1;
4962 	u8 uart_rx_gpio6:1;
4963 	u8 uart_rx_gpio14:1;
4964 	enum rtw_mac_gfunc status[MAC_AX_GPIO_NUM];
4965 #define MAC_AX_SW_IO_OUT_PP 0
4966 #define MAC_AX_SW_IO_OUT_OD 1
4967 	u8 sw_io_output[MAC_AX_GPIO_NUM];
4968 };
4969 
4970 /**
4971  * @struct mac_ax_trx_info
4972  * @brief mac_ax_trx_info
4973  *
4974  * @var mac_ax_trx_info::trx_mode
4975  * Please Place Description here.
4976  * @var mac_ax_trx_info::qta_mode
4977  * Please Place Description here.
4978  * @var mac_ax_trx_info::rpr_cfg
4979  * Please Place Description here.
4980  */
4981 struct mac_ax_trx_info {
4982 	enum mac_ax_trx_mode trx_mode;
4983 	enum mac_ax_qta_mode qta_mode;
4984 	struct mac_ax_host_rpr_cfg *rpr_cfg;
4985 };
4986 
4987 /**
4988  * @struct mac_ax_fwdl_info
4989  * @brief mac_ax_fwdl_info
4990  *
4991  * @var mac_ax_fwdl_info::fw_en
4992  * Please Place Description here.
4993  * @var mac_ax_fwdl_info::dlrom_en
4994  * Please Place Description here.
4995  * @var mac_ax_fwdl_info::dlram_en
4996  * Please Place Description here.
4997  * @var mac_ax_fwdl_info::fw_from_hdr
4998  * Please Place Description here.
4999  * @var mac_ax_fwdl_info::fw_cat
5000  * Please Place Description here.
5001  * @var mac_ax_fwdl_info::rom_buff
5002  * Please Place Description here.
5003  * @var mac_ax_fwdl_info::rom_size
5004  * Please Place Description here.
5005  * @var mac_ax_fwdl_info::ram_buff
5006  * Please Place Description here.
5007  * @var mac_ax_fwdl_info::ram_size
5008  * Please Place Description here.
5009  */
5010 struct mac_ax_fwdl_info {
5011 	u8 fw_en;
5012 	u8 dlrom_en;
5013 	u8 dlram_en;
5014 	u8 fw_from_hdr;
5015 	enum rtw_fw_type fw_cat;
5016 	u8 *rom_buff;
5017 	u32 rom_size;
5018 	u8 *ram_buff;
5019 	u32 ram_size;
5020 };
5021 
5022 /**
5023  * @struct mac_ax_txdma_ch_map
5024  * @brief mac_ax_txdma_ch_map
5025  *
5026  * @var mac_ax_txdma_ch_map::ch0
5027  * Please Place Description here.
5028  * @var mac_ax_txdma_ch_map::ch1
5029  * Please Place Description here.
5030  * @var mac_ax_txdma_ch_map::ch2
5031  * Please Place Description here.
5032  * @var mac_ax_txdma_ch_map::ch3
5033  * Please Place Description here.
5034  * @var mac_ax_txdma_ch_map::ch4
5035  * Please Place Description here.
5036  * @var mac_ax_txdma_ch_map::ch5
5037  * Please Place Description here.
5038  * @var mac_ax_txdma_ch_map::ch6
5039  * Please Place Description here.
5040  * @var mac_ax_txdma_ch_map::ch7
5041  * Please Place Description here.
5042  * @var mac_ax_txdma_ch_map::ch8
5043  * Please Place Description here.
5044  * @var mac_ax_txdma_ch_map::ch9
5045  * Please Place Description here.
5046  * @var mac_ax_txdma_ch_map::ch10
5047  * Please Place Description here.
5048  * @var mac_ax_txdma_ch_map::ch11
5049  * Please Place Description here.
5050  * @var mac_ax_txdma_ch_map::ch12
5051  * Please Place Description here.
5052  */
5053 struct mac_ax_txdma_ch_map {
5054 	enum mac_ax_pcie_func_ctrl ch0;
5055 	enum mac_ax_pcie_func_ctrl ch1;
5056 	enum mac_ax_pcie_func_ctrl ch2;
5057 	enum mac_ax_pcie_func_ctrl ch3;
5058 	enum mac_ax_pcie_func_ctrl ch4;
5059 	enum mac_ax_pcie_func_ctrl ch5;
5060 	enum mac_ax_pcie_func_ctrl ch6;
5061 	enum mac_ax_pcie_func_ctrl ch7;
5062 	enum mac_ax_pcie_func_ctrl ch8;
5063 	enum mac_ax_pcie_func_ctrl ch9;
5064 	enum mac_ax_pcie_func_ctrl ch10;
5065 	enum mac_ax_pcie_func_ctrl ch11;
5066 	enum mac_ax_pcie_func_ctrl ch12;
5067 };
5068 
5069 /**
5070  * @struct mac_ax_rxdma_ch_map
5071  * @brief mac_ax_rxdma_ch_map
5072  *
5073  * @var mac_ax_rxdma_ch_map::rxq
5074  * Please Place Description here.
5075  * @var mac_ax_rxdma_ch_map::rpq
5076  * Please Place Description here.
5077  */
5078 struct mac_ax_rxdma_ch_map {
5079 	enum mac_ax_pcie_func_ctrl rxq;
5080 	enum mac_ax_pcie_func_ctrl rpq;
5081 };
5082 
5083 /**
5084  * @struct mac_ax_intf_info
5085  * @brief mac_ax_intf_info
5086  *
5087  * @var mac_ax_intf_info::txbd_trunc_mode
5088  * Please Place Description here.
5089  * @var mac_ax_intf_info::rxbd_trunc_mode
5090  * Please Place Description here.
5091  * @var mac_ax_intf_info::rxbd_mode
5092  * Please Place Description here.
5093  * @var mac_ax_intf_info::tag_mode
5094  * Please Place Description here.
5095  * @var mac_ax_intf_info::tx_burst
5096  * Please Place Description here.
5097  * @var mac_ax_intf_info::rx_burst
5098  * Please Place Description here.
5099  * @var mac_ax_intf_info::wd_dma_idle_intvl
5100  * Please Place Description here.
5101  * @var mac_ax_intf_info::wd_dma_act_intvl
5102  * Please Place Description here.
5103  * @var mac_ax_intf_info::multi_tag_num
5104  * Please Place Description here.
5105  * @var mac_ax_intf_info::rx_sep_append_len
5106  * Please Place Description here.
5107  * @var mac_ax_intf_info::txbd_buf
5108  * Please Place Description here.
5109  * @var mac_ax_intf_info::rxbd_buf
5110  * Please Place Description here.
5111  * @var mac_ax_intf_info::skip_all
5112  * Please Place Description here.
5113  * @var mac_ax_intf_info::txch_map
5114  * Please Place Description here.
5115  * @var mac_ax_intf_info::lbc_en
5116  * Please Place Description here.
5117  * @var mac_ax_intf_info::lbc_tmr
5118  * Please Place Description here.
5119  * @var mac_ax_intf_info::autok_en
5120  * Please Place Description here.
5121  */
5122 struct mac_ax_intf_info {
5123 	enum mac_ax_bd_trunc_mode txbd_trunc_mode;
5124 	enum mac_ax_bd_trunc_mode rxbd_trunc_mode;
5125 	enum mac_ax_rxbd_mode rxbd_mode;
5126 	enum mac_ax_tag_mode tag_mode;
5127 	enum mac_ax_tx_burst tx_burst;
5128 	enum mac_ax_rx_burst rx_burst;
5129 	enum mac_ax_wd_dma_intvl wd_dma_idle_intvl;
5130 	enum mac_ax_wd_dma_intvl wd_dma_act_intvl;
5131 	enum mac_ax_multi_tag_num multi_tag_num;
5132 	u16 rx_sep_append_len;
5133 	u8 *txbd_buf;
5134 	u8 *rxbd_buf;
5135 	u8 skip_all;
5136 	struct mac_ax_txdma_ch_map *txch_map;
5137 	enum mac_ax_pcie_func_ctrl lbc_en;
5138 	enum mac_ax_lbc_tmr lbc_tmr;
5139 	enum mac_ax_pcie_func_ctrl autok_en;
5140 	enum mac_ax_pcie_func_ctrl io_rcy_en;
5141 	enum mac_ax_io_rcy_tmr io_rcy_tmr;
5142 };
5143 
5144 /**
5145  * @struct mac_ax_pcie_trx_mitigation
5146  * @brief mac_ax_pcie_trx_mitigation
5147  *
5148  * @var mac_ax_pcie_trx_mitigation::txch_map
5149  * Please Place Description here.
5150  * @var mac_ax_pcie_trx_mitigation::tx_timer_unit
5151  * Please Place Description here.
5152  * @var mac_ax_pcie_trx_mitigation::tx_timer
5153  * Please Place Description here.
5154  * @var mac_ax_pcie_trx_mitigation::tx_counter
5155  * Please Place Description here.
5156  * @var mac_ax_pcie_trx_mitigation::rxch_map
5157  * Please Place Description here.
5158  * @var mac_ax_pcie_trx_mitigation::rx_timer_unit
5159  * Please Place Description here.
5160  * @var mac_ax_pcie_trx_mitigation::rx_timer
5161  * Please Place Description here.
5162  * @var mac_ax_pcie_trx_mitigation::rx_counter
5163  * Please Place Description here.
5164  */
5165 struct mac_ax_pcie_trx_mitigation {
5166 	struct mac_ax_txdma_ch_map *txch_map;
5167 	enum mac_ax_trx_mitigation_timer_unit tx_timer_unit;
5168 	u8 tx_timer;
5169 	u8 tx_counter;
5170 	struct mac_ax_rxdma_ch_map *rxch_map;
5171 	enum mac_ax_trx_mitigation_timer_unit rx_timer_unit;
5172 	u8 rx_timer;
5173 	u8 rx_counter;
5174 };
5175 
5176 /**
5177  * @struct mac_mu_table
5178  * @brief mac_mu_table
5179  *
5180  * @var mac_mu_table::mu_score_tbl_ctrl
5181  * Please Place Description here.
5182  * @var mac_mu_table::mu_score_tbl_0
5183  * Please Place Description here.
5184  * @var mac_mu_table::mu_score_tbl_1
5185  * Please Place Description here.
5186  * @var mac_mu_table::mu_score_tbl_2
5187  * Please Place Description here.
5188  * @var mac_mu_table::mu_score_tbl_3
5189  * Please Place Description here.
5190  * @var mac_mu_table::mu_score_tbl_4
5191  * Please Place Description here.
5192  * @var mac_mu_table::mu_score_tbl_5
5193  * Please Place Description here.
5194  */
5195 struct mac_mu_table {
5196 	u32 mu_score_tbl_ctrl;
5197 	u32 mu_score_tbl_0;
5198 	u32 mu_score_tbl_1;
5199 	u32 mu_score_tbl_2;
5200 	u32 mu_score_tbl_3;
5201 	u32 mu_score_tbl_4;
5202 	u32 mu_score_tbl_5;
5203 };
5204 
5205 /**
5206  * @struct mac_ax_ss_dl_grp_upd
5207  * @brief mac_ax_ss_dl_grp_upd
5208  *
5209  * @var mac_ax_ss_dl_grp_upd::grp_valid
5210  * Please Place Description here.
5211  * @var mac_ax_ss_dl_grp_upd::grp_id
5212  * Please Place Description here.
5213  * @var mac_ax_ss_dl_grp_upd::is_hwgrp
5214  * Please Place Description here.
5215  * @var mac_ax_ss_dl_grp_upd::rsvd
5216  * Please Place Description here.
5217  * @var mac_ax_ss_dl_grp_upd::macid_u0
5218  * Please Place Description here.
5219  * @var mac_ax_ss_dl_grp_upd::macid_u1
5220  * Please Place Description here.
5221  * @var mac_ax_ss_dl_grp_upd::macid_u2
5222  * Please Place Description here.
5223  * @var mac_ax_ss_dl_grp_upd::macid_u3
5224  * Please Place Description here.
5225  * @var mac_ax_ss_dl_grp_upd::macid_u4
5226  * Please Place Description here.
5227  * @var mac_ax_ss_dl_grp_upd::macid_u5
5228  * Please Place Description here.
5229  * @var mac_ax_ss_dl_grp_upd::macid_u6
5230  * Please Place Description here.
5231  * @var mac_ax_ss_dl_grp_upd::macid_u7
5232  * Please Place Description here.
5233  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u0
5234  * Please Place Description here.
5235  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u1
5236  * Please Place Description here.
5237  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u2
5238  * Please Place Description here.
5239  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u3
5240  * Please Place Description here.
5241  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u4
5242  * Please Place Description here.
5243  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u5
5244  * Please Place Description here.
5245  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u6
5246  * Please Place Description here.
5247  * @var mac_ax_ss_dl_grp_upd::ac_bitmap_u7
5248  * Please Place Description here.
5249  * @var mac_ax_ss_dl_grp_upd::next_protecttype
5250  * Please Place Description here.
5251  * @var mac_ax_ss_dl_grp_upd::next_rsptype
5252  * Please Place Description here.
5253  */
5254 struct mac_ax_ss_dl_grp_upd {
5255 	u8 grp_valid:1; //0: non valid 1: valid
5256 	u8 grp_id:5; //grp 0~16
5257 	u8 is_hwgrp:1;
5258 	u8 rsvd:1;
5259 	u8 macid_u0;
5260 	u8 macid_u1;
5261 	u8 macid_u2;
5262 	u8 macid_u3;
5263 	u8 macid_u4;
5264 	u8 macid_u5;
5265 	u8 macid_u6;
5266 	u8 macid_u7;
5267 	u8 ac_bitmap_u0:4;
5268 	u8 ac_bitmap_u1:4;
5269 	u8 ac_bitmap_u2:4;
5270 	u8 ac_bitmap_u3:4;
5271 	u8 ac_bitmap_u4:4;
5272 	u8 ac_bitmap_u5:4;
5273 	u8 ac_bitmap_u6:4;
5274 	u8 ac_bitmap_u7:4;
5275 	u8 next_protecttype:4;
5276 	u8 next_rsptype:4;
5277 };
5278 
5279 /**
5280  * @struct mac_ax_ss_ul_grp_upd
5281  * @brief mac_ax_ss_ul_grp_upd
5282  *
5283  * @var mac_ax_ss_ul_grp_upd::macid_u0
5284  * Please Place Description here.
5285  * @var mac_ax_ss_ul_grp_upd::macid_u1
5286  * Please Place Description here.
5287  * @var mac_ax_ss_ul_grp_upd::grp_bitmap
5288  * Please Place Description here.
5289  */
5290 struct mac_ax_ss_ul_grp_upd {
5291 	u8 macid_u0;
5292 	u8 macid_u1;
5293 	u16 grp_bitmap;
5294 };
5295 
5296 /**
5297  * @struct mac_ax_ss_ul_sta_upd
5298  * @brief mac_ax_ss_ul_sta_upd
5299  *
5300  * @var mac_ax_ss_ul_sta_upd::mode
5301  * Please Place Description here.
5302  * @var mac_ax_ss_ul_sta_upd::rsvd
5303  * Please Place Description here.
5304  * @var mac_ax_ss_ul_sta_upd::macid
5305  * Please Place Description here.
5306  * @var mac_ax_ss_ul_sta_upd::bsr_len
5307  * Please Place Description here.
5308  */
5309 struct mac_ax_ss_ul_sta_upd {
5310 	u32 mode:8; //0:del; 1: add
5311 	u32 rsvd:24;
5312 	u8 macid[4];
5313 	u16 bsr_len[2];
5314 };
5315 
5316 /**
5317  * @struct mac_ax_2nav_info
5318  * @brief mac_ax_2nav_info
5319  *
5320  * @var mac_ax_2nav_info::plcp_upd_nav_en
5321  * Please Place Description here.
5322  * @var mac_ax_2nav_info::tgr_fram_upd_nav_en
5323  * Please Place Description here.
5324  * @var mac_ax_2nav_info::nav_up
5325  * Please Place Description here.
5326  */
5327 struct mac_ax_2nav_info {
5328 	u8 plcp_upd_nav_en;
5329 	u8 tgr_fram_upd_nav_en;
5330 	u8 nav_up;
5331 };
5332 
5333 /**
5334  * @struct mac_ax_bcn_info
5335  * @brief mac_ax_bcn_info
5336  *
5337  * @var mac_ax_bcn_info::port
5338  * Please Place Description here.
5339  * @var mac_ax_bcn_info::mbssid
5340  * Please Place Description here.
5341  * @var mac_ax_bcn_info::band
5342  * Please Place Description here.
5343  * @var mac_ax_bcn_info::grp_ie_ofst
5344  * Please Place Description here.
5345  * @var mac_ax_bcn_info::macid
5346  * Please Place Description here.
5347  * @var mac_ax_bcn_info::ssn_sel
5348  * Please Place Description here.
5349  * @var mac_ax_bcn_info::ssn_mode
5350  * Please Place Description here.
5351  * @var mac_ax_bcn_info::rate_sel
5352  * Please Place Description here.
5353  * @var mac_ax_bcn_info::txpwr
5354  * Please Place Description here.
5355  * @var mac_ax_bcn_info::txinfo_ctrl_en
5356  * Please Place Description here.
5357  * @var mac_ax_bcn_info::ntx_path_en
5358  * Please Place Description here.
5359  * @var mac_ax_bcn_info::path_map_a
5360  * Please Place Description here.
5361  * @var mac_ax_bcn_info::path_map_b
5362  * Please Place Description here.
5363  * @var mac_ax_bcn_info::path_map_c
5364  * Please Place Description here.
5365  * @var mac_ax_bcn_info::path_map_d
5366  * Please Place Description here.
5367  * @var mac_ax_bcn_info::antsel_a
5368  * Please Place Description here.
5369  * @var mac_ax_bcn_info::antsel_b
5370  * Please Place Description here.
5371  * @var mac_ax_bcn_info::antsel_c
5372  * Please Place Description here.
5373  * @var mac_ax_bcn_info::antsel_d
5374  * Please Place Description here.
5375  * @var mac_ax_bcn_info::sw_tsf
5376  * Please Place Description here.
5377  * @var mac_ax_bcn_info::pld_buf
5378  * Please Place Description here.
5379  * @var mac_ax_bcn_info::pld_len
5380  * Please Place Description here.
5381  * @var mac_ax_bcn_info::csa_ofst
5382  * Please Place Description here.
5383  */
5384 struct mac_ax_bcn_info {
5385 	u8 port;
5386 	u8 mbssid;
5387 	u8 band;
5388 	u8 grp_ie_ofst;
5389 	u8 macid;
5390 	u8 ssn_sel;
5391 	u8 ssn_mode;
5392 	u16 rate_sel;
5393 	u8 txpwr;
5394 	u8 txinfo_ctrl_en;
5395 	u8 ntx_path_en;
5396 	u8 path_map_a;
5397 	u8 path_map_b;
5398 	u8 path_map_c;
5399 	u8 path_map_d;
5400 	u8 antsel_a;
5401 	u8 antsel_b;
5402 	u8 antsel_c;
5403 	u8 antsel_d;
5404 	u8 sw_tsf;
5405 	u8 *pld_buf;
5406 	u16 pld_len;
5407 	u16 csa_ofst;
5408 };
5409 
5410 /**
5411  * @struct mac_ax_twt_para
5412  * @brief mac_ax_twt_para
5413  *
5414  * @var mac_ax_twt_para::nego_tp
5415  * Please Place Description here.
5416  * @var mac_ax_twt_para::act
5417  * Please Place Description here.
5418  * @var mac_ax_twt_para::trig
5419  * Please Place Description here.
5420  * @var mac_ax_twt_para::flow_tp
5421  * Please Place Description here.
5422  * @var mac_ax_twt_para::proct
5423  * Please Place Description here.
5424  * @var mac_ax_twt_para::flow_id
5425  * Please Place Description here.
5426  * @var mac_ax_twt_para::id
5427  * Please Place Description here.
5428  * @var mac_ax_twt_para::wake_exp
5429  * Please Place Description here.
5430  * @var mac_ax_twt_para::band
5431  * Please Place Description here.
5432  * @var mac_ax_twt_para::port
5433  * Please Place Description here.
5434  * @var mac_ax_twt_para::rsp_pm
5435  * Please Place Description here.
5436  * @var mac_ax_twt_para::wake_unit
5437  * Please Place Description here.
5438  * @var mac_ax_twt_para::impt
5439  * Please Place Description here.
5440  * @var mac_ax_twt_para::twtulfixmode
5441  * Please Place Description here.
5442  * @var mac_ax_twt_para::rsvd
5443  * Please Place Description here.
5444  * @var mac_ax_twt_para::wake_man
5445  * Please Place Description here.
5446  * @var mac_ax_twt_para::dur
5447  * Please Place Description here.
5448  * @var mac_ax_twt_para::trgt_l
5449  * Please Place Description here.
5450  * @var mac_ax_twt_para::trgt_h
5451  * Please Place Description here.
5452  */
5453 struct mac_ax_twt_para {
5454 	enum mac_ax_twt_nego_tp nego_tp;
5455 	enum mac_ax_twt_act_tp act;
5456 	u32 trig:1;
5457 	u32 flow_tp:1;
5458 	u32 proct:1;
5459 	u32 flow_id:3;
5460 	u32 id:3;
5461 	u32 wake_exp:5;
5462 	u32 band:1;
5463 	u32 port:3;
5464 	u32 rsp_pm:1;
5465 	u32 wake_unit:1;
5466 	u32 impt:1;
5467 	u32 twtulfixmode:3;
5468 	u32 rsvd:8;
5469 
5470 	u16 wake_man;
5471 	u8 dur;
5472 	u32 trgt_l;
5473 	u32 trgt_h;
5474 };
5475 
5476 /**
5477  * @struct mac_ax_twtact_para
5478  * @brief mac_ax_twtact_para
5479  *
5480  * @var mac_ax_twtact_para::act
5481  * Please Place Description here.
5482  * @var mac_ax_twtact_para::macid
5483  * Please Place Description here.
5484  * @var mac_ax_twtact_para::id
5485  * Please Place Description here.
5486  * @var mac_ax_twtact_para::rsvd
5487  * Please Place Description here.
5488  */
5489 struct mac_ax_twtact_para {
5490 	enum mac_ax_twtact_act_tp act;
5491 	u16 macid;
5492 	u8 id:3;
5493 	u8 rsvd:5;
5494 };
5495 
5496 /**
5497  * @struct mac_ax_twtanno_para
5498  * @brief mac_ax_twtanno_para
5499  *
5500  * @var mac_ax_twtanno_para::macid
5501  * Please Place Description here.
5502  */
5503 struct mac_ax_twtanno_para {
5504 	u8 macid;
5505 };
5506 
5507 /**
5508  * @struct mac_ax_twtanno_c2hpara
5509  * @brief mac_ax_twtanno_c2hpara
5510  *
5511  * @var mac_ax_twtanno_c2hpara::wait_case
5512  * Please Place Description here.
5513  * @var mac_ax_twtanno_c2hpara::rsvd
5514  * Please Place Description here.
5515  * @var mac_ax_twtanno_c2hpara::macid0
5516  * Please Place Description here.
5517  * @var mac_ax_twtanno_c2hpara::macid1
5518  * Please Place Description here.
5519  * @var mac_ax_twtanno_c2hpara::macid2
5520  * Please Place Description here.
5521  */
5522 struct mac_ax_twtanno_c2hpara {
5523 	u32 wait_case:4;
5524 	u32 rsvd:4;
5525 	u32 macid0:8;
5526 	u32 macid1:8;
5527 	u32 macid2:8;
5528 };
5529 
5530 /**
5531  * @struct mac_ax_port_cfg_para
5532  * @brief mac_ax_port_cfg_para
5533  *
5534  * @var mac_ax_port_cfg_para::mbssid_idx
5535  * Please Place Description here.
5536  * @var mac_ax_port_cfg_para::val
5537  * Please Place Description here.
5538  * @var mac_ax_port_cfg_para::port
5539  * Please Place Description here.
5540  * @var mac_ax_port_cfg_para::band
5541  * Please Place Description here.
5542  */
5543 struct mac_ax_port_cfg_para {
5544 	u32 mbssid_idx;
5545 	u32 val;
5546 	u8 port;
5547 	u8 band;
5548 };
5549 
5550 /**
5551  * @struct mac_ax_port_init_para
5552  * @brief mac_ax_port_init_para
5553  *
5554  * @var mac_ax_port_init_para::port_idx
5555  * Please Place Description here.
5556  * @var mac_ax_port_init_para::band_idx
5557  * Please Place Description here.
5558  * @var mac_ax_port_init_para::net_type
5559  * Please Place Description here.
5560  * @var mac_ax_port_init_para::dtim_period
5561  * Please Place Description here.
5562  * @var mac_ax_port_init_para::mbid_num
5563  * Please Place Description here.
5564  * @var mac_ax_port_init_para::bss_color
5565  * Please Place Description here.
5566  * @var mac_ax_port_init_para::bcn_interval
5567  * Please Place Description here.
5568  * @var mac_ax_port_init_para::hiq_win
5569  * Please Place Description here.
5570  */
5571 struct mac_ax_port_init_para {
5572 	enum mac_ax_port port_idx;
5573 	enum mac_ax_band band_idx;
5574 	enum mac_ax_net_type net_type;
5575 	u8 dtim_period;
5576 	u8 mbid_num;
5577 	u8 bss_color;
5578 	u16 bcn_interval;
5579 	u32 hiq_win;
5580 };
5581 
5582 /**
5583  * @struct mac_ax_fw_log
5584  * @brief mac_ax_fw_log
5585  *
5586  * @var mac_ax_fw_log::level
5587  * Please Place Description here.
5588  * @var mac_ax_fw_log::output
5589  * Please Place Description here.
5590  * @var mac_ax_fw_log::comp
5591  * Please Place Description here.
5592  * @var mac_ax_fw_log::comp_ext
5593  * Please Place Description here.
5594  */
5595 struct mac_ax_fw_log {
5596 #define MAC_AX_FL_LV_OFF 0
5597 #define MAC_AX_FL_LV_CRT 1
5598 #define MAC_AX_FL_LV_SER 2
5599 #define MAC_AX_FL_LV_WARN 3
5600 #define MAC_AX_FL_LV_LOUD 4
5601 #define MAC_AX_FL_LV_TR 5
5602 	u32 level;
5603 #define MAC_AX_FL_LV_UART BIT(0)
5604 #define MAC_AX_FL_LV_C2H BIT(1)
5605 #define MAC_AX_FL_LV_SNI BIT(2)
5606 	u32 output;
5607 #define MAC_AX_FL_COMP_VER BIT(0)
5608 #define MAC_AX_FL_COMP_INIT BIT(1)
5609 #define MAC_AX_FL_COMP_TASK BIT(2)
5610 #define MAC_AX_FL_COMP_CNS BIT(3)
5611 #define MAC_AX_FL_COMP_H2C BIT(4)
5612 #define MAC_AX_FL_COMP_C2H BIT(5)
5613 #define MAC_AX_FL_COMP_TX BIT(6)
5614 #define MAC_AX_FL_COMP_RX BIT(7)
5615 #define MAC_AX_FL_COMP_IPSEC BIT(8)
5616 #define MAC_AX_FL_COMP_TIMER BIT(9)
5617 #define MAC_AX_FL_COMP_DBGPKT BIT(10)
5618 #define MAC_AX_FL_COMP_PS BIT(11)
5619 #define MAC_AX_FL_COMP_ERROR BIT(12)
5620 #define MAC_AX_FL_COMP_WOWLAN BIT(13)
5621 #define MAC_AX_FL_COMP_SECURE_BOOT BIT(14)
5622 #define MAC_AX_FL_COMP_BTC BIT(15)
5623 #define MAC_AX_FL_COMP_BB BIT(16)
5624 #define MAC_AX_FL_COMP_TWT BIT(17)
5625 #define MAC_AX_FL_COMP_RF BIT(18)
5626 #define MAC_AX_FL_COMP_MCC BIT(20)
5627 	u32 comp;
5628 	u32 comp_ext;
5629 };
5630 
5631 /**
5632  * @struct mac_ax_dbgpkg
5633  * @brief mac_ax_dbgpkg
5634  *
5635  * @var mac_ax_dbgpkg::ss_dbg_0
5636  * Please Place Description here.
5637  * @var mac_ax_dbgpkg::ss_dbg_1
5638  * Please Place Description here.
5639  */
5640 struct mac_ax_dbgpkg {
5641 	u32 ss_dbg_0;
5642 	u32 ss_dbg_1;
5643 };
5644 
5645 /**
5646  * @struct mac_ax_dbgport_hw_en
5647  * @brief mac_ax_dbgport_hw_en
5648  *
5649  * @var mac_ax_dbgport_hw_en::system
5650  * Please Place Description here.
5651  * @var mac_ax_dbgport_hw_en::wl_cpu
5652  * Please Place Description here.
5653  */
5654 struct mac_ax_dbgport_hw_en {
5655 	u8 system:1;
5656 	u8 pinmux:1;
5657 	u8 loader:1;
5658 	u8 hmux:1;
5659 	u8 pcie:1;
5660 	u8 usb:1;
5661 	u8 sdio:1;
5662 	u8 bt:1;
5663 
5664 	// WLAN_MAC
5665 	u8 axidma:1;
5666 	u8 wlphydbg_gpio:1;
5667 	u8 btcoexist:1;
5668 	u8 ltecoex:1;
5669 	u8 wlphydbg:1;
5670 	u8 wlan_mac_reg:1;
5671 	u8 wlan_mac_pmc:1;
5672 	u8 calib_top:1;
5673 
5674 	//DMAC
5675 	u16 dispatcher_top:1;
5676 	u16 wde_dle:1;
5677 	u16 ple_dle:1;
5678 	u16 wdrls:1;
5679 	u16 dle_cpuio:1;
5680 	u16 bbrpt:1;
5681 	u16 txpktctl:1;
5682 	u16 pktbuffer:1;
5683 
5684 	u16 dmac_table:1;
5685 	u16 sta_scheduler:1;
5686 	u16 dmac_pktin:1;
5687 	u16 wsec_top:1;
5688 	u16 mpdu_processor:1;
5689 	u16 dmac_apb_bridge:1;
5690 	u16 ltr_ctrl:1;
5691 	u16 rsvd0:1;
5692 
5693 	//CMAC 0
5694 	u8 cmac0_cmac_dma_top:1;
5695 	u8 cmac0_ptcltop:1;
5696 	u8 cmac0_schedulertop:1;
5697 	u8 cmac0_txpwr_ctrl:1;
5698 	u8 cmac0_cmac_apb_bridge:1;
5699 	u8 cmac0_mactx:1;
5700 	u8 cmac0_macrx:1;
5701 	u8 cmac0_wmac_trxptcl:1;
5702 
5703 	//CMAC 1
5704 	u8 cmac1_cmac_dma_top:1;
5705 	u8 cmac1_ptcltop:1;
5706 	u8 cmac1_schedulertop:1;
5707 	u8 cmac1_txpwr_ctrl:1;
5708 	u8 cmac1_cmac_apb_bridge:1;
5709 	u8 cmac1_mactx:1;
5710 	u8 cmac1_macrx:1;
5711 	u8 cmac1_wmac_trxptcl:1;
5712 
5713 	//others
5714 	u8 cmac_share:1;
5715 	u8 wl_cpu:1;
5716 	u8 rsvd1:6;
5717 };
5718 
5719 /**
5720  * @struct mac_ax_dbgpkg_en
5721  * @brief mac_ax_dbgpkg_en
5722  *
5723  * @var mac_ax_dbgpkg_en::ss_dbg
5724  * Please Place Description here.
5725  * @var mac_ax_dbgpkg_en::dle_dbg
5726  * Please Place Description here.
5727  * @var mac_ax_dbgpkg_en::dmac_dbg
5728  * Please Place Description here.
5729  * @var mac_ax_dbgpkg_en::cmac_dbg
5730  * Please Place Description here.
5731  * @var mac_ax_dbgpkg_en::mac_dbg_port
5732  * Please Place Description here.
5733  * @var mac_ax_dbgpkg_en::plersvd_dbg
5734  * Please Place Description here.
5735  * @var mac_ax_dbgpkg_en::dp_hw_en
5736  * Please Place Description here.
5737  */
5738 struct mac_ax_dbgpkg_en {
5739 	u8 ss_dbg:1;
5740 	u8 dle_dbg:1;
5741 	u8 dmac_dbg:1;
5742 	u8 cmac_dbg:1;
5743 	u8 mac_dbg_port:1;
5744 	u8 plersvd_dbg:1;
5745 	u8 tx_flow_dbg:1;
5746 	u8 rsvd:1;
5747 	struct mac_ax_dbgport_hw_en dp_hw_en;
5748 };
5749 
5750 /**
5751  * @struct mac_ax_dbgport_hw
5752  * @brief mac_ax_dbgport_hw
5753  *
5754  * @var mac_ax_dbgport_hw::dbg_sel
5755  * valid value: enum mac_ax_dbgport_sel
5756  * @var mac_ax_dbgport_hw::dbg_sel_16b
5757  * valid value: enum mac_ax_dbgport_sel0_16b
5758  *	         enum mac_ax_dbgport_sel1_16b
5759  * @var mac_ax_dbgport_hw::dbg_sel_4b
5760  * valid value: enum mac_ax_dbgport_sel_4b
5761  * @var mac_ax_dbgport_hw::intn_idx
5762  * valid value: #define MAC_AX_DP_INTN_IDX_XXX_XXX
5763  * @var mac_ax_dbgport_hw::mode
5764  * 0x0: for dump mode
5765  * 0x1: for LA mode
5766  * @var mac_ax_dbgport_hw::rsp_val
5767  * return value: debug port info
5768  */
5769 struct mac_ax_dbgport_hw {
5770 	// input
5771 	u8 dbg_sel[MAC_AX_DP_SEL_NUM];
5772 	u8 dbg_sel_16b[MAC_AX_DP_SEL_NUM];
5773 	u8 dbg_sel_4b[MAC_AX_DP_SEL_NUM];
5774 	u8 intn_idx[MAC_AX_DP_SEL_NUM];
5775 	u8 mode;
5776 	// output
5777 	u32 rsp_val;
5778 };
5779 
5780 /**
5781  * @struct mac_ax_fwdbg_en
5782  * @brief mac_ax_fwdbg_en
5783  *
5784  * @var mac_ax_fwdbg_en::status_dbg
5785  * Please Place Description here.
5786  * @var mac_ax_fwdbg_en::rsv_ple_dbg
5787  * Please Place Description here.
5788  * @var mac_ax_fwdbg_en::ps_dbg
5789  * Please Place Description here.
5790  */
5791 struct mac_ax_fwdbg_en {
5792 	u8 status_dbg:1;
5793 	u8 rsv_ple_dbg:1;
5794 	u8 ps_dbg:1;
5795 };
5796 
5797 union mac_conf_ofld_hioe_param0 {
5798 	u32 register_addr;
5799 	u32 delay_value;
5800 };
5801 
5802 union mac_conf_ofld_hioe_param1 {
5803 	u16 byte_data_h;
5804 	u16 bit_mask;
5805 };
5806 
5807 union mac_conf_ofld_hioe_param2 {
5808 	u16 byte_data_l;
5809 	u16 bit_data;
5810 };
5811 
5812 /**
5813  * @struct mac_conf_ofld_hioe
5814  * @brief mac_conf_ofld_hioe
5815  *
5816  * @var mac_conf_ofld_hioe::hioe_op
5817  * Please Place Description here.
5818  * @var mac_conf_ofld_hioe::inst_type
5819  * Please Place Description here.
5820  * @var mac_conf_ofld_hioe::rsvd
5821  * Please Place Description here.
5822  * @var mac_conf_ofld_hioe::data_mode
5823  * Please Place Description here.
5824  * @var mac_conf_ofld_hioe::param0
5825  * Please Place Description here.
5826  * @var mac_conf_ofld_hioe::param1
5827  * Please Place Description here.
5828  * @var mac_conf_ofld_hioe::param2
5829  * Please Place Description here.
5830  */
5831 struct mac_conf_ofld_hioe {
5832 #define CONF_OFLD_HIOE_OP_RESTORE 0
5833 #define CONF_OFLD_HIOE_OP_BACKUP 1
5834 #define CONF_OFLD_HIOE_OP_BOTH 2
5835 	u8 hioe_op;
5836 #define CONF_OFLD_HIOE_INST_IO 0
5837 #define CONF_OFLD_HIOE_INST_POLLING 1
5838 #define CONF_OFLD_HIOE_INST_DELAY 2
5839 	u8 inst_type;
5840 	u8 rsvd;
5841 #define CONF_OFLD_HIOE_INST_DATA_BYTE 0
5842 #define CONF_OFLD_HIOE_INST_DATA_BIT 3
5843 	u8 data_mode;
5844 	union mac_conf_ofld_hioe_param0 param0;
5845 	union mac_conf_ofld_hioe_param1 param1;
5846 	union mac_conf_ofld_hioe_param2 param2;
5847 };
5848 
5849 /**
5850  * @struct mac_conf_ofld_ddma
5851  * @brief mac_conf_ofld_ddma
5852  *
5853  * @var mac_conf_ofld_ddma::ddma_mode
5854  * Please Place Description here.
5855  * @var mac_conf_ofld_ddma::finish
5856  * Please Place Description here.
5857  * @var mac_conf_ofld_ddma::dma_len
5858  * Please Place Description here.
5859  * @var mac_conf_ofld_ddma::dma_src_addr
5860  * Please Place Description here.
5861  * @var mac_conf_ofld_ddma::dma_dst_addr
5862  * Please Place Description here.
5863  */
5864 struct mac_conf_ofld_ddma {
5865 #define CONF_OFLD_DDMA_OP_RESTORE 0
5866 #define CONF_OFLD_DDMA_OP_BACKUP 1
5867 #define CONF_OFLD_DDMA_OP_BOTH 2
5868 	u8 ddma_mode;
5869 	u8 finish;
5870 	u16 dma_len;
5871 	u32 dma_src_addr;
5872 	u32 dma_dst_addr;
5873 };
5874 
5875 union mac_conf_ofld_req_bd {
5876 	struct mac_conf_ofld_hioe hioe;
5877 	struct mac_conf_ofld_ddma ddma;
5878 };
5879 
5880 /**
5881  * @struct mac_ax_conf_ofld_req
5882  * @brief mac_ax_conf_ofld_req
5883  *
5884  * @var mac_ax_conf_ofld_req::device
5885  * Please Place Description here.
5886  * @var mac_ax_conf_ofld_req::rsvd
5887  * Please Place Description here.
5888  * @var mac_ax_conf_ofld_req::req
5889  * Please Place Description here.
5890  */
5891 struct mac_ax_conf_ofld_req {
5892 #define CONF_OFLD_DEVICE_HIOE 0
5893 #define CONF_OFLD_DEVICE_DDMA 1
5894 	u32 device:8;
5895 	u32 rsvd:24;
5896 	union mac_conf_ofld_req_bd req;
5897 };
5898 
5899 /**
5900  * @struct mac_defeature_value
5901  * @brief mac_defeature_value
5902  *
5903  * @var mac_defeature_value::rx_spatial_stream
5904  * Please Place Description here.
5905  * @var mac_defeature_value::bandwidth
5906  * Please Place Description here.
5907  * @var mac_defeature_value::tx_spatial_stream
5908  * Please Place Description here.
5909  * @var mac_defeature_value::protocol_80211
5910  * Please Place Description here.
5911  * @var mac_defeature_value::NIC_router
5912  * Please Place Description here.
5913  * @var mac_defeature_value::wl_func_support
5914  * Please Place Description here.
5915  * @var mac_defeature_value::hw_special_type
5916  * Please Place Description here.
5917  * @var mac_defeature_value::uuid
5918  * Please Place Description here.
5919  */
5920 struct mac_defeature_value {
5921 	u8 rx_spatial_stream;
5922 	u8 bandwidth;
5923 	u8 tx_spatial_stream;
5924 	u8 protocol_80211;
5925 	u8 NIC_router;
5926 	u8 wl_func_support;
5927 	u8 hw_special_type;
5928 	u32 uuid;
5929 };
5930 
5931 /**
5932  * @struct mac_ax_wowlan_info
5933  * @brief mac_ax_wowlan_info
5934  *
5935  * @var mac_ax_wowlan_info::aoac_report
5936  * Please Place Description here.
5937  */
5938 struct mac_ax_wowlan_info {
5939 	u8 *aoac_report;
5940 };
5941 
5942 /**
5943  * @struct mac_ax_p2p_info
5944  * @brief mac_ax_p2p_info
5945  *
5946  * @var mac_ax_p2p_info::macid
5947  * Please Place Description here.
5948  * @var mac_ax_p2p_info::p2pid
5949  * Please Place Description here.
5950  */
5951 struct mac_ax_p2p_info {
5952 	u8 macid;
5953 
5954 	u8 run:1;
5955 	u8 wait_dack:1;
5956 	u8 rsvd:6;
5957 };
5958 
5959 /**
5960  * @struct mac_ax_p2p_act_info
5961  * @brief mac_ax_p2p_act_info
5962  *
5963  * @var mac_ax_p2p_act_info::macid
5964  * Please Place Description here.
5965  * @var mac_ax_p2p_act_info::noaid
5966  * Please Place Description here.
5967  * @var mac_ax_p2p_act_info::act
5968  * Please Place Description here.
5969  * @var mac_ax_p2p_act_info::type
5970  * Please Place Description here.
5971  * @var mac_ax_p2p_act_info::all_slep
5972  * Please Place Description here.
5973  * @var mac_ax_p2p_act_info::srt
5974  * Please Place Description here.
5975  * @var mac_ax_p2p_act_info::itvl
5976  * Please Place Description here.
5977  * @var mac_ax_p2p_act_info::dur
5978  * Please Place Description here.
5979  * @var mac_ax_p2p_act_info::cnt
5980  * Please Place Description here.
5981  * @var mac_ax_p2p_act_info::ctw
5982  * Please Place Description here.
5983  */
5984 struct mac_ax_p2p_act_info {
5985 	u8 macid;
5986 	u8 noaid;
5987 	u8 act;
5988 	u8 type;
5989 	u8 all_slep;
5990 	u32 srt;
5991 	u32 itvl;
5992 	u32 dur;
5993 	u8 cnt;
5994 	u16 ctw;
5995 };
5996 
5997 struct mac_ax_p2p_macid_info {
5998 	u8 main_macid;
5999 	u8 ctrl_type;
6000 	u8 *bitmap;
6001 	u32 bmap_len;
6002 };
6003 
6004 struct mac_ax_t32_togl_info {
6005 	u8 band;
6006 	u8 port;
6007 	u8 en;
6008 	u16 early;
6009 };
6010 
6011 struct mac_ax_t32_togl_rpt {
6012 	u8 band;
6013 	u8 port;
6014 	u8 valid;
6015 	u16 early;
6016 	u16 status;
6017 	u32 tsf_l;
6018 	u32 tsf_h;
6019 };
6020 
6021 struct mac_ax_port_info {
6022 	u8 stat;
6023 #define MAC_AX_PORT_H2C_IDLE 0
6024 #define MAC_AX_PORT_H2C_BUSY 1
6025 #define MAC_AX_PORT_H2C_FAIL 2
6026 	u8 h2c_sm;
6027 };
6028 
6029 struct mac_ax_int_stats {
6030 	u32 h2c_reg_uninit;
6031 	u32 h2c_pkt_uninit;
6032 	u32 c2h_reg_uninit;
6033 };
6034 
6035 /*-------------------- Define Struct needed to be moved-----------------------*/
6036 
6037 /**
6038  * @struct mac_ax_tbl_hdr
6039  * @brief mac_ax_tbl_hdr
6040  *
6041  * @var mac_ax_tbl_hdr::rw
6042  * Please Place Description here.
6043  * @var mac_ax_tbl_hdr::idx
6044  * Please Place Description here.
6045  * @var mac_ax_tbl_hdr::offset
6046  * Please Place Description here.
6047  * @var mac_ax_tbl_hdr::len
6048  * Please Place Description here.
6049  * @var mac_ax_tbl_hdr::type
6050  * Please Place Description here.
6051  */
6052 struct mac_ax_tbl_hdr {
6053 	u8 rw:1;
6054 	u8 idx:7;
6055 	u16 offset:5;
6056 	u16 len:10;
6057 	u16 type:1;
6058 };
6059 
6060 /**
6061  * @struct mac_ax_ru_rate_ent
6062  * @brief mac_ax_ru_rate_ent
6063  *
6064  * @var mac_ax_ru_rate_ent::dcm
6065  * Please Place Description here.
6066  * @var mac_ax_ru_rate_ent::ss
6067  * Please Place Description here.
6068  * @var mac_ax_ru_rate_ent::mcs
6069  * Please Place Description here.
6070  */
6071 struct mac_ax_ru_rate_ent {
6072 	u8 dcm:1;
6073 	u8 ss:3;
6074 	u8 mcs:4;
6075 };
6076 
6077 /**
6078  * @struct mac_ax_dl_fix_sta_ent
6079  * @brief mac_ax_dl_fix_sta_ent
6080  *
6081  * @var mac_ax_dl_fix_sta_ent::mac_id
6082  * Please Place Description here.
6083  * @var mac_ax_dl_fix_sta_ent::ru_pos
6084  * Please Place Description here.
6085  * @var mac_ax_dl_fix_sta_ent::fix_rate
6086  * Please Place Description here.
6087  * @var mac_ax_dl_fix_sta_ent::fix_coding
6088  * Please Place Description here.
6089  * @var mac_ax_dl_fix_sta_ent::fix_txbf
6090  * Please Place Description here.
6091  * @var mac_ax_dl_fix_sta_ent::fix_pwr_fac
6092  * Please Place Description here.
6093  * @var mac_ax_dl_fix_sta_ent::rsvd0
6094  * Please Place Description here.
6095  * @var mac_ax_dl_fix_sta_ent::rate
6096  * Please Place Description here.
6097  * @var mac_ax_dl_fix_sta_ent::txbf
6098  * Please Place Description here.
6099  * @var mac_ax_dl_fix_sta_ent::coding
6100  * Please Place Description here.
6101  * @var mac_ax_dl_fix_sta_ent::pwr_boost_fac
6102  * Please Place Description here.
6103  * @var mac_ax_dl_fix_sta_ent::rsvd1
6104  * Please Place Description here.
6105  * @var mac_ax_dl_fix_sta_ent::rsvd2
6106  * Please Place Description here.
6107  */
6108 struct mac_ax_dl_fix_sta_ent {
6109 	u8 mac_id;
6110 	u8 ru_pos[3];
6111 	u8 fix_rate:1;
6112 	u8 fix_coding:1;
6113 	u8 fix_txbf:1;
6114 	u8 fix_pwr_fac:1;
6115 	u8 rsvd0: 4;
6116 	struct mac_ax_ru_rate_ent rate;
6117 	u8 txbf:1;
6118 	u8 coding:1;
6119 	u8 pwr_boost_fac:5;
6120 	u8 rsvd1: 1;
6121 	u8 rsvd2;
6122 };
6123 
6124 /**
6125  * @struct mac_ax_dlru_fixtbl
6126  * @brief mac_ax_dlru_fixtbl
6127  *
6128  * @var mac_ax_dlru_fixtbl::tbl_hdr
6129  * Please Place Description here.
6130  * @var mac_ax_dlru_fixtbl::max_sta_num
6131  * Please Place Description here.
6132  * @var mac_ax_dlru_fixtbl::min_sta_num
6133  * Please Place Description here.
6134  * @var mac_ax_dlru_fixtbl::doppler
6135  * Please Place Description here.
6136  * @var mac_ax_dlru_fixtbl::stbc
6137  * Please Place Description here.
6138  * @var mac_ax_dlru_fixtbl::gi_ltf
6139  * Please Place Description here.
6140  * @var mac_ax_dlru_fixtbl::ma_type
6141  * Please Place Description here.
6142  * @var mac_ax_dlru_fixtbl::fixru_flag
6143  * Please Place Description here.
6144  * @var mac_ax_dlru_fixtbl::sta
6145  * Please Place Description here.
6146  */
6147 struct mac_ax_dlru_fixtbl {
6148 	struct mac_ax_tbl_hdr tbl_hdr;
6149 	u8 max_sta_num:3;
6150 	u8 min_sta_num:3;
6151 	u8 doppler:1;
6152 	u8 stbc:1;
6153 	u8 gi_ltf:3;
6154 	u8 ma_type:1;
6155 	u8 fixru_flag:1;
6156 	struct mac_ax_dl_fix_sta_ent sta[MAC_AX_MAX_RU_NUM];
6157 };
6158 
6159 /**
6160  * @struct mac_ax_ul_fix_sta_ent
6161  * @brief mac_ax_ul_fix_sta_ent
6162  *
6163  * @var mac_ax_ul_fix_sta_ent::mac_id
6164  * Please Place Description here.
6165  * @var mac_ax_ul_fix_sta_ent::ru_pos
6166  * Please Place Description here.
6167  * @var mac_ax_ul_fix_sta_ent::tgt_rssi
6168  * Please Place Description here.
6169  * @var mac_ax_ul_fix_sta_ent::fix_tgt_rssi
6170  * Please Place Description here.
6171  * @var mac_ax_ul_fix_sta_ent::fix_rate
6172  * Please Place Description here.
6173  * @var mac_ax_ul_fix_sta_ent::fix_coding
6174  * Please Place Description here.
6175  * @var mac_ax_ul_fix_sta_ent::coding
6176  * Please Place Description here.
6177  * @var mac_ax_ul_fix_sta_ent::rsvd1
6178  * Please Place Description here.
6179  * @var mac_ax_ul_fix_sta_ent::rate
6180  * Please Place Description here.
6181  */
6182 struct mac_ax_ul_fix_sta_ent {
6183 	u8 mac_id;
6184 	u8 ru_pos[3];
6185 	u8 tgt_rssi[3];
6186 	u8 fix_tgt_rssi: 1;
6187 	u8 fix_rate: 1;
6188 	u8 fix_coding: 1;
6189 	u8 coding: 1;
6190 	u8 rsvd1: 4;
6191 	struct mac_ax_ru_rate_ent rate;
6192 };
6193 
6194 /**
6195  * @struct mac_ax_ulru_fixtbl
6196  * @brief mac_ax_ulru_fixtbl
6197  *
6198  * @var mac_ax_ulru_fixtbl::tbl_hdr
6199  * Please Place Description here.
6200  * @var mac_ax_ulru_fixtbl::max_sta_num
6201  * Please Place Description here.
6202  * @var mac_ax_ulru_fixtbl::min_sta_num
6203  * Please Place Description here.
6204  * @var mac_ax_ulru_fixtbl::doppler
6205  * Please Place Description here.
6206  * @var mac_ax_ulru_fixtbl::ma_type
6207  * Please Place Description here.
6208  * @var mac_ax_ulru_fixtbl::gi_ltf
6209  * Please Place Description here.
6210  * @var mac_ax_ulru_fixtbl::stbc
6211  * Please Place Description here.
6212  * @var mac_ax_ulru_fixtbl::fix_tb_t_pe_nom
6213  * Please Place Description here.
6214  * @var mac_ax_ulru_fixtbl::tb_t_pe_nom
6215  * Please Place Description here.
6216  * @var mac_ax_ulru_fixtbl::fixru_flag
6217  * Please Place Description here.
6218  * @var mac_ax_ulru_fixtbl::rsvd
6219  * Please Place Description here.
6220  * @var mac_ax_ulru_fixtbl::sta
6221  * Please Place Description here.
6222  */
6223 struct mac_ax_ulru_fixtbl {
6224 	struct mac_ax_tbl_hdr tbl_hdr;
6225 	u8 max_sta_num: 3;
6226 	u8 min_sta_num: 3;
6227 	u8 doppler: 1;
6228 	u8 ma_type: 1;
6229 	u8 gi_ltf: 3;
6230 	u8 stbc: 1;
6231 	u8 fix_tb_t_pe_nom: 1;
6232 	u8 tb_t_pe_nom: 2;
6233 	u8 fixru_flag: 1;
6234 	u16 rsvd;
6235 	struct mac_ax_ul_fix_sta_ent sta[MAC_AX_MAX_RU_NUM];
6236 };
6237 
6238 /**
6239  * @struct mac_ax_scanofld_chinfo
6240  * @brief mac_ax_scanofld_chinfo
6241  *
6242  * @var mac_ax_scanofld_chinfo::period
6243  * how long to stay on this ch. unit: ms
6244  * @var mac_ax_scanofld_chinfo::dwell_time
6245  * dwell time if recv bcn. unit: ms. set 0 to disable dwell
6246  * @var mac_ax_scanofld_chinfo::central_ch
6247  * central ch
6248  * @var mac_ax_scanofld_chinfo::pri_ch
6249  * pri ch
6250  * @var mac_ax_scanofld_chinfo::bw
6251  * bandwidth
6252  * @var mac_ax_scanofld_chinfo::c2h_notify_dwell
6253  * notify if dwell
6254  * @var mac_ax_scanofld_chinfo::c2h_notify_preTX
6255  * notify before tx pkt
6256  * @var mac_ax_scanofld_chinfo::c2h_notify_postTX
6257  * notify after tx pkt
6258  * @var mac_ax_scanofld_chinfo::c2h_notify_enterCH
6259  * notify when entering ch
6260  * @var mac_ax_scanofld_chinfo::c2h_notify_leaveCH
6261  * notify when leaving ch
6262  * @var mac_ax_scanofld_chinfo::num_addition_pkt
6263  * num of additional pkt to send. Max=8
6264  * @var mac_ax_scanofld_chinfo::tx_pkt
6265  * whether tx probe req + additional pkt or not
6266  * @var mac_ax_scanofld_chinfo::pause_tx_data
6267  * wherther disable tx (except manage pkt) after sending probe req
6268  * @var mac_ax_scanofld_chinfo::rsvd0
6269  * Please Place Description here.
6270  * @var mac_ax_scanofld_chinfo::rsvd1
6271  * Please Place Description here.
6272  * @var mac_ax_scanofld_chinfo::additional_pkt_id
6273  * id of additional pkts to send
6274  */
6275 #pragma pack(push)
6276 #pragma pack(1)
6277 struct mac_ax_scanofld_chinfo {
6278 	/* dword 0 */
6279 	u8 period;
6280 	u8 dwell_time;
6281 	u8 central_ch;
6282 	u8 pri_ch;
6283 	/* dword 1 */
6284 	u8 bw: 3;
6285 	u8 c2h_notify_dwell: 1;
6286 	u8 c2h_notify_preTX: 1;
6287 	u8 c2h_notify_postTX: 1;
6288 	u8 c2h_notify_enterCH: 1;
6289 	u8 c2h_notify_leaveCH: 1;
6290 	u8 num_addition_pkt:4;
6291 	u8 tx_pkt: 1;
6292 	u8 pause_tx_data: 1;
6293 	u8 rsvd0: 2;
6294 	u16 rsvd1;
6295 	/* dword 2 2*/
6296 	u8 additional_pkt_id[SCANOFLD_MAX_ADDITION_PKT_NUM];
6297 };
6298 
6299 #pragma pack(pop)
6300 
6301 /**
6302  * @struct mac_ax_scanofld_param
6303  * @brief mac_ax_scanofld_param
6304  *
6305  * @var mac_ax_scanofld_param::macid
6306  * macid
6307  * @var mac_ax_scanofld_param::norm_cy
6308  * normal cycle. available when scan_type=2
6309  * @var mac_ax_scanofld_param::port_id
6310  * port id
6311  * @var mac_ax_scanofld_param::band
6312  * band
6313  * @var mac_ax_scanofld_param::operation
6314  * 1: start scanning. 0: stop. 2: set param
6315  * @var mac_ax_scanofld_param::rsvd0
6316  * rsvd
6317  * @var mac_ax_scanofld_param::c2h_end
6318  * whether notify when scan end
6319  * @var mac_ax_scanofld_param::target_ch_mode
6320  * whether switch to target (op) channel after walking through list. available when scan_type!=3
6321  * @var mac_ax_scanofld_param::start_mode
6322  * 0: start immediatly. 1: start at assigned TSF
6323  * @var mac_ax_scanofld_param::scan_type
6324  * 0: scan once.
6325  * 1: normal repeat mode. period = normal_pd.
6326  * 2: normal_slow repeat mode. normal_pd for norm_cy times, then slow_pd
6327  * 3: seamless repeat mode
6328  * @var mac_ax_scanofld_param::target_ch_bw
6329  * BW of target (op) channel. available when target_ch_mode = 1
6330  * @var mac_ax_scanofld_param::target_pri_ch
6331  * pri ch of target (op) channel. available when target_ch_mode = 1
6332  * @var mac_ax_scanofld_param::target_central_ch
6333  * central ch of target (op) channel. available when target_ch_mode = 1
6334  * @var mac_ax_scanofld_param::probe_req_pkt_id
6335  * offloaded pkt id of probe request
6336  * @var mac_ax_scanofld_param::norm_pd
6337  * normal period. available when scan_type = 1,2
6338  * @var mac_ax_scanofld_param::slow_pd
6339  * slow period. available when scan_type = 2
6340  * @var mac_ax_scanofld_param::tsf_high
6341  * higher 32 bit of start tsf. available when start_mode = 1
6342  * @var mac_ax_scanofld_param::tsf_low
6343  * lower 32 bit of start tsf. available when start_mode = 1
6344  */
6345 struct mac_ax_scanofld_param {
6346 	/* dword0 */
6347 	u32 macid:8;
6348 	u32 norm_cy:8;
6349 	u32 port_id:3;
6350 	u32 band:1;
6351 	u32 operation:2;
6352 	u32 rsvd0:10;
6353 	/* dword1 */
6354 	u32 c2h_end:1;
6355 	u32 target_ch_mode:1;
6356 	u32 start_mode:1;
6357 	u32 scan_type:2;
6358 	u32 target_ch_bw:3;
6359 	u32 target_pri_ch:8;
6360 	u32 target_central_ch:8;
6361 	u32 probe_req_pkt_id:8;
6362 	/* dword2 */
6363 	u32 norm_pd:16;
6364 	u32 slow_pd:16;
6365 	/* dword3 */
6366 	u32 tsf_high;
6367 	/* dword4 */
6368 	u32 tsf_low;
6369 };
6370 
6371 /**
6372  * @struct mac_ax_scanofld_info
6373  * @brief mac_ax_scanofld_info
6374  *
6375  * @var mac_ax_scanofld_info::list
6376  * halmac-hold CHlist
6377  * @var mac_ax_scanofld_info::HalmacChListBusy
6378  * halmac CHlist is busy or not
6379  * @var mac_ax_scanofld_info::FwChListBusy
6380  * fw CHlist is busy or not
6381  * @var mac_ax_scanofld_info::clearHalmacList
6382  * clear halmac-hold CHlist after sending to fw or not
6383  * @var mac_ax_scanofld_info::scanBusy
6384  * fw scanning or not
6385  */
6386 struct mac_ax_scanofld_info{
6387 	struct scan_chinfo_list *list;
6388 	mac_ax_mutex drv_chlist_state_lock;
6389 	mac_ax_mutex fw_chlist_state_lock;
6390 	u8 drv_chlist_busy;
6391 	u8 fw_chlist_busy;
6392 	u8 clear_drv_ch_list;
6393 	u8 fw_scan_busy;
6394 };
6395 
6396 /*--------------------END Define Struct needed to be moved--------------------*/
6397 /*--------------------Define HCI related structure----------------------------*/
6398 
6399 /**
6400  * @struct mac_ax_hfc_ch_cfg
6401  * @brief mac_ax_hfc_ch_cfg
6402  *
6403  * @var mac_ax_hfc_ch_cfg::min
6404  * Please Place Description here.
6405  * @var mac_ax_hfc_ch_cfg::max
6406  * Please Place Description here.
6407  * @var mac_ax_hfc_ch_cfg::grp
6408  * Please Place Description here.
6409  */
6410 struct mac_ax_hfc_ch_cfg {
6411 	u16 min;
6412 	u16 max;
6413 #define grp_0 0
6414 #define grp_1 1
6415 #define grp_num 2
6416 	u8 grp;
6417 };
6418 
6419 /**
6420  * @struct mac_ax_hfc_ch_info
6421  * @brief mac_ax_hfc_ch_info
6422  *
6423  * @var mac_ax_hfc_ch_info::aval
6424  * Please Place Description here.
6425  * @var mac_ax_hfc_ch_info::used
6426  * Please Place Description here.
6427  */
6428 struct mac_ax_hfc_ch_info {
6429 	u16 aval;
6430 	u16 used;
6431 };
6432 
6433 /**
6434  * @struct mac_ax_hfc_pub_cfg
6435  * @brief mac_ax_hfc_pub_cfg
6436  *
6437  * @var mac_ax_hfc_pub_cfg::group0
6438  * Please Place Description here.
6439  * @var mac_ax_hfc_pub_cfg::group1
6440  * Please Place Description here.
6441  * @var mac_ax_hfc_pub_cfg::pub_max
6442  * Please Place Description here.
6443  * @var mac_ax_hfc_pub_cfg::wp_thrd
6444  * Please Place Description here.
6445  */
6446 struct mac_ax_hfc_pub_cfg {
6447 	u16 group0;
6448 	u16 group1;
6449 	u16 pub_max;
6450 	u16 wp_thrd;
6451 };
6452 
6453 /**
6454  * @struct mac_ax_hfc_pub_info
6455  * @brief mac_ax_hfc_pub_info
6456  *
6457  * @var mac_ax_hfc_pub_info::g0_used
6458  * Please Place Description here.
6459  * @var mac_ax_hfc_pub_info::g1_used
6460  * Please Place Description here.
6461  * @var mac_ax_hfc_pub_info::g0_aval
6462  * Please Place Description here.
6463  * @var mac_ax_hfc_pub_info::g1_aval
6464  * Please Place Description here.
6465  * @var mac_ax_hfc_pub_info::pub_aval
6466  * Please Place Description here.
6467  * @var mac_ax_hfc_pub_info::wp_aval
6468  * Please Place Description here.
6469  */
6470 struct mac_ax_hfc_pub_info {
6471 	u16 g0_used;
6472 	u16 g1_used;
6473 	u16 g0_aval;
6474 	u16 g1_aval;
6475 	u16 pub_aval;
6476 	u16 wp_aval;
6477 };
6478 
6479 /**
6480  * @struct mac_ax_hfc_prec_cfg
6481  * @brief mac_ax_hfc_prec_cfg
6482  *
6483  * @var mac_ax_hfc_prec_cfg::ch011_prec
6484  * Please Place Description here.
6485  * @var mac_ax_hfc_prec_cfg::h2c_prec
6486  * Please Place Description here.
6487  * @var mac_ax_hfc_prec_cfg::wp_ch07_prec
6488  * Please Place Description here.
6489  * @var mac_ax_hfc_prec_cfg::wp_ch811_prec
6490  * Please Place Description here.
6491  * @var mac_ax_hfc_prec_cfg::ch011_full_cond
6492  * Please Place Description here.
6493  * @var mac_ax_hfc_prec_cfg::h2c_full_cond
6494  * Please Place Description here.
6495  * @var mac_ax_hfc_prec_cfg::wp_ch07_full_cond
6496  * Please Place Description here.
6497  * @var mac_ax_hfc_prec_cfg::wp_ch811_full_cond
6498  * Please Place Description here.
6499  */
6500 struct mac_ax_hfc_prec_cfg {
6501 	u16 ch011_prec;
6502 	u16 h2c_prec;
6503 	u16 wp_ch07_prec;
6504 	u16 wp_ch811_prec;
6505 	u8 ch011_full_cond;
6506 	u8 h2c_full_cond;
6507 	u8 wp_ch07_full_cond;
6508 	u8 wp_ch811_full_cond;
6509 };
6510 
6511 /**
6512  * @struct mac_ax_hfc_param
6513  * @brief mac_ax_hfc_param
6514  *
6515  * @var mac_ax_hfc_param::en
6516  * Please Place Description here.
6517  * @var mac_ax_hfc_param::h2c_en
6518  * Please Place Description here.
6519  * @var mac_ax_hfc_param::mode
6520  * Please Place Description here.
6521  * @var mac_ax_hfc_param::ch_cfg
6522  * Please Place Description here.
6523  * @var mac_ax_hfc_param::ch_info
6524  * Please Place Description here.
6525  * @var mac_ax_hfc_param::pub_cfg
6526  * Please Place Description here.
6527  * @var mac_ax_hfc_param::pub_info
6528  * Please Place Description here.
6529  * @var mac_ax_hfc_param::prec_cfg
6530  * Please Place Description here.
6531  */
6532 struct mac_ax_hfc_param {
6533 	u8 en;
6534 	u8 h2c_en;
6535 	u8 mode;
6536 	struct mac_ax_hfc_ch_cfg *ch_cfg;
6537 	struct mac_ax_hfc_ch_info *ch_info;
6538 	struct mac_ax_hfc_pub_cfg *pub_cfg;
6539 	struct mac_ax_hfc_pub_info *pub_info;
6540 	struct mac_ax_hfc_prec_cfg *prec_cfg;
6541 };
6542 
6543 /**
6544  * @struct mac_ax_sdio_tx_info
6545  * @brief mac_ax_sdio_tx_info
6546  *
6547  * @var mac_ax_sdio_tx_info::total_size
6548  * Please Place Description here.
6549  * @var mac_ax_sdio_tx_info::dma_txagg_num
6550  * Please Place Description here.
6551  * @var mac_ax_sdio_tx_info::ch_dma
6552  * Please Place Description here.
6553  * @var mac_ax_sdio_tx_info::pkt_size
6554  * Please Place Description here.
6555  * @var mac_ax_sdio_tx_info::wp_offset
6556  * Please Place Description here.
6557  * @var mac_ax_sdio_tx_info::chk_cnt
6558  * Please Place Description here.
6559  * @var mac_ax_sdio_tx_info::wde_rqd_num
6560  * Please Place Description here.
6561  * @var mac_ax_sdio_tx_info::ple_rqd_num
6562  * Please Place Description here.
6563  */
6564 struct mac_ax_sdio_tx_info {
6565 	u32 total_size;
6566 	u8 dma_txagg_num;
6567 	u8 ch_dma;
6568 	u8 *pkt_size;
6569 	u8 *wp_offset;
6570 	u8 chk_cnt;
6571 	u16 wde_rqd_num;
6572 	u16 ple_rqd_num;
6573 };
6574 
6575 /**
6576  * @struct mac_ax_sdio_clk_mon_cfg
6577  * @brief mac_ax_sdio_clk_mon_cfg
6578  *
6579  * @var mac_ax_sdio_clk_mon_cfg::mon
6580  * Please Place Description here.
6581  * @var mac_ax_sdio_clk_mon_cfg::cycle
6582  * Please Place Description here.
6583  */
6584 struct mac_ax_sdio_clk_mon_cfg {
6585 	enum mac_ax_sdio_clk_mon mon;
6586 	u32 cycle;
6587 };
6588 
6589 /**
6590  * @struct mac_ax_pcie_ltr_rx_th_ctrl
6591  * @brief mac_ax_pcie_ltr_rx_th_ctrl
6592  *
6593  * @var mac_ax_pcie_ltr_rx_th_ctrl::ctrl
6594  * Please Place Description here.
6595  * @var mac_ax_pcie_ltr_rx_th_ctrl::val
6596  * Please Place Description here.
6597  */
6598 struct mac_ax_pcie_ltr_rx_th_ctrl {
6599 	enum mac_ax_pcie_func_ctrl ctrl;
6600 	u16 val;
6601 };
6602 
6603 /**
6604  * @struct mac_ax_pcie_ltr_lat_ctrl
6605  * @brief mac_ax_pcie_ltr_lat_ctrl
6606  *
6607  * @var mac_ax_pcie_ltr_lat_ctrl::ctrl
6608  * Please Place Description here.
6609  * @var mac_ax_pcie_ltr_lat_ctrl::val
6610  * Please Place Description here.
6611  */
6612 struct mac_ax_pcie_ltr_lat_ctrl {
6613 	enum mac_ax_pcie_func_ctrl ctrl;
6614 	u32 val;
6615 };
6616 
6617 /**
6618  * @struct mac_ax_pcie_ltr_param
6619  * @brief mac_ax_pcie_ltr_param
6620  *
6621  * @var mac_ax_pcie_ltr_param::write
6622  * Please Place Description here.
6623  * @var mac_ax_pcie_ltr_param::read
6624  * Please Place Description here.
6625  * @var mac_ax_pcie_ltr_param::ltr_ctrl
6626  * Please Place Description here.
6627  * @var mac_ax_pcie_ltr_param::ltr_hw_ctrl
6628  * Please Place Description here.
6629  * @var mac_ax_pcie_ltr_param::ltr_spc_ctrl
6630  * Please Place Description here.
6631  * @var mac_ax_pcie_ltr_param::ltr_idle_timer_ctrl
6632  * Please Place Description here.
6633  * @var mac_ax_pcie_ltr_param::ltr_rx0_th_ctrl
6634  * Please Place Description here.
6635  * @var mac_ax_pcie_ltr_param::ltr_rx1_th_ctrl
6636  * Please Place Description here.
6637  * @var mac_ax_pcie_ltr_param::ltr_idle_lat_ctrl
6638  * Please Place Description here.
6639  * @var mac_ax_pcie_ltr_param::ltr_act_lat_ctrl
6640  * Please Place Description here.
6641  */
6642 struct mac_ax_pcie_ltr_param {
6643 	u8 write;
6644 	u8 read;
6645 	enum mac_ax_pcie_func_ctrl ltr_ctrl;
6646 	enum mac_ax_pcie_func_ctrl ltr_hw_ctrl;
6647 	enum mac_ax_pcie_ltr_spc ltr_spc_ctrl;
6648 	enum mac_ax_pcie_ltr_idle_timer ltr_idle_timer_ctrl;
6649 	struct mac_ax_pcie_ltr_rx_th_ctrl ltr_rx0_th_ctrl;
6650 	struct mac_ax_pcie_ltr_rx_th_ctrl ltr_rx1_th_ctrl;
6651 	struct mac_ax_pcie_ltr_lat_ctrl ltr_idle_lat_ctrl;
6652 	struct mac_ax_pcie_ltr_lat_ctrl ltr_act_lat_ctrl;
6653 };
6654 
6655 /**
6656  * @struct mac_ax_usb_tx_agg_cfg
6657  * @brief mac_ax_usb_tx_agg_cfg
6658  *
6659  * @var mac_ax_usb_tx_agg_cfg::pkt
6660  * Please Place Description here.
6661  * @var mac_ax_usb_tx_agg_cfg::agg_num
6662  * Please Place Description here.
6663  */
6664 struct mac_ax_usb_tx_agg_cfg {
6665 	u8 *pkt;
6666 	u32 agg_num;
6667 };
6668 
6669 /**
6670  * @struct mac_ax_pcie_cfgspc_param
6671  * @brief mac_ax_pcie_cfgspc_param
6672  *
6673  * @var mac_ax_pcie_cfgspc_param::write
6674  * Please Place Description here.
6675  * @var mac_ax_pcie_cfgspc_param::read
6676  * Please Place Description here.
6677  * @var mac_ax_pcie_cfgspc_param::l0s_ctrl
6678  * Please Place Description here.
6679  * @var mac_ax_pcie_cfgspc_param::l1_ctrl
6680  * Please Place Description here.
6681  * @var mac_ax_pcie_cfgspc_param::l1ss_ctrl
6682  * Please Place Description here.
6683  * @var mac_ax_pcie_cfgspc_param::wake_ctrl
6684  * Please Place Description here.
6685  * @var mac_ax_pcie_cfgspc_param::crq_ctrl
6686  * Please Place Description here.
6687  * @var mac_ax_pcie_cfgspc_param::clkdly_ctrl
6688  * Please Place Description here.
6689  * @var mac_ax_pcie_cfgspc_param::l0sdly_ctrl
6690  * Please Place Description here.
6691  * @var mac_ax_pcie_cfgspc_param::l1dly_ctrl
6692  * Please Place Description here.
6693  */
6694 struct mac_ax_pcie_cfgspc_param {
6695 	u8 write;
6696 	u8 read;
6697 	enum mac_ax_pcie_func_ctrl l0s_ctrl;
6698 	enum mac_ax_pcie_func_ctrl l1_ctrl;
6699 	enum mac_ax_pcie_func_ctrl l1ss_ctrl;
6700 	enum mac_ax_pcie_func_ctrl wake_ctrl;
6701 	enum mac_ax_pcie_func_ctrl crq_ctrl;
6702 	enum mac_ax_pcie_clkdly clkdly_ctrl;
6703 	enum mac_ax_pcie_l0sdly l0sdly_ctrl;
6704 	enum mac_ax_pcie_l1dly l1dly_ctrl;
6705 };
6706 
6707 /**
6708  * @struct mac_ax_rx_agg_thold
6709  * @brief mac_ax_rx_agg_thold
6710  *
6711  * @var mac_ax_rx_agg_thold::drv_define
6712  * Please Place Description here.
6713  * @var mac_ax_rx_agg_thold::timeout
6714  * Please Place Description here.
6715  * @var mac_ax_rx_agg_thold::size
6716  * Please Place Description here.
6717  * @var mac_ax_rx_agg_thold::pkt_num
6718  * Please Place Description here.
6719  */
6720 struct mac_ax_rx_agg_thold {
6721 	u8 drv_define;
6722 	u8 timeout;
6723 	u8 size;
6724 	u8 pkt_num;
6725 };
6726 
6727 /**
6728  * @struct mac_ax_lifetime_en
6729  * @brief mac_ax_lifetime_en
6730  *
6731  * @var mac_ax_lifetime_en::acq_en
6732  * Please Place Description here.
6733  * @var mac_ax_lifetime_en::mgq_en
6734  * Please Place Description here.
6735  */
6736 struct mac_ax_lifetime_en {
6737 	u8 acq_en;
6738 	u8 mgq_en;
6739 };
6740 
6741 /**
6742  * @struct mac_ax_lifetime_val
6743  * @brief mac_ax_lifetime_val
6744  *
6745  * @var mac_ax_lifetime_val::acq_val_1
6746  * Please Place Description here.
6747  * @var mac_ax_lifetime_val::acq_val_2
6748  * Please Place Description here.
6749  * @var mac_ax_lifetime_val::acq_val_3
6750  * Please Place Description here.
6751  * @var mac_ax_lifetime_val::acq_val_4
6752  * Please Place Description here.
6753  * @var mac_ax_lifetime_val::mgq_val
6754  * Please Place Description here.
6755  */
6756 struct mac_ax_lifetime_val {
6757 	u16 acq_val_1;
6758 	u16 acq_val_2;
6759 	u16 acq_val_3;
6760 	u16 acq_val_4;
6761 	u16 mgq_val;
6762 };
6763 
6764 /**
6765  * @struct mac_ax_cfg_bw
6766  * @brief mac_ax_cfg_bw
6767  *
6768  * @var mac_ax_cfg_bw::pri_ch
6769  * Please Place Description here.
6770  * @var mac_ax_cfg_bw::central_ch
6771  * Please Place Description here.
6772  * @var mac_ax_cfg_bw::band
6773  * Please Place Description here.
6774  * @var mac_ax_cfg_bw::rsvd
6775  * Please Place Description here.
6776  * @var mac_ax_cfg_bw::cbw
6777  * Please Place Description here.
6778  */
6779 struct mac_ax_cfg_bw {
6780 	u8 pri_ch;
6781 	u8 central_ch;
6782 	u16 band: 1;
6783 	u16 rsvd: 15;
6784 	enum channel_width cbw;
6785 };
6786 
6787 /*-------------------- Define Efuse related structure ------------------------*/
6788 
6789 /**
6790  * @struct mac_ax_pg_efuse_info
6791  * @brief mac_ax_pg_efuse_info
6792  *
6793  * @var mac_ax_pg_efuse_info::efuse_map
6794  * Please Place Description here.
6795  * @var mac_ax_pg_efuse_info::efuse_map_size
6796  * Please Place Description here.
6797  * @var mac_ax_pg_efuse_info::efuse_mask
6798  * Please Place Description here.
6799  * @var mac_ax_pg_efuse_info::efuse_mask_size
6800  * Please Place Description here.
6801  */
6802 struct mac_ax_pg_efuse_info {
6803 	u8 *efuse_map;
6804 	u32 efuse_map_size;
6805 	u8 *efuse_mask;
6806 	u32 efuse_mask_size;
6807 };
6808 
6809 /**
6810  * @struct mac_ax_efuse_param
6811  * @brief mac_ax_efuse_param
6812  *
6813  * @var mac_ax_efuse_param::efuse_map
6814  * Please Place Description here.
6815  * @var mac_ax_efuse_param::bt_efuse_map
6816  * Please Place Description here.
6817  * @var mac_ax_efuse_param::log_efuse_map
6818  * Please Place Description here.
6819  * @var mac_ax_efuse_param::bt_log_efuse_map
6820  * Please Place Description here.
6821  * @var mac_ax_efuse_param::efuse_end
6822  * Please Place Description here.
6823  * @var mac_ax_efuse_param::bt_efuse_end
6824  * Please Place Description here.
6825  * @var mac_ax_efuse_param::efuse_map_valid
6826  * Please Place Description here.
6827  * @var mac_ax_efuse_param::bt_efuse_map_valid
6828  * Please Place Description here.
6829  * @var mac_ax_efuse_param::log_efuse_map_valid
6830  * Please Place Description here.
6831  * @var mac_ax_efuse_param::bt_log_efuse_map_valid
6832  * Please Place Description here.
6833  * @var mac_ax_efuse_param::auto_ck_en
6834  * Please Place Description here.
6835  * @var mac_ax_efuse_param::dav_efuse_map
6836  * Please Place Description here.
6837  * @var mac_ax_efuse_param::dav_log_efuse_map
6838  * Please Place Description here.
6839  * @var mac_ax_efuse_param::dav_efuse_end
6840  * Please Place Description here.
6841  * @var mac_ax_efuse_param::dav_efuse_map_valid
6842  * Please Place Description here.
6843  * @var mac_ax_efuse_param::dav_log_efuse_map_valid
6844  * Please Place Description here.
6845  */
6846 struct mac_ax_efuse_param {
6847 	u8 *efuse_map;
6848 	u8 *bt_efuse_map;
6849 	u8 *log_efuse_map;
6850 	u8 *bt_log_efuse_map;
6851 	u32 efuse_end;
6852 	u32 bt_efuse_end;
6853 	u8 efuse_map_valid;
6854 	u8 bt_efuse_map_valid;
6855 	u8 log_efuse_map_valid;
6856 	u8 bt_log_efuse_map_valid;
6857 	u8 auto_ck_en;
6858 	u8 *dav_efuse_map;
6859 	u8 *dav_log_efuse_map;
6860 	u32 dav_efuse_end;
6861 	u8 dav_efuse_map_valid;
6862 	u8 dav_log_efuse_map_valid;
6863 };
6864 
6865 /*-------------------- Define offload related Struct -------------------------*/
6866 
6867 /**
6868  * @struct mac_ax_read_req
6869  * @brief mac_ax_read_req
6870  *
6871  * @var mac_ax_read_req::value_len
6872  * Please Place Description here.
6873  * @var mac_ax_read_req::rsvd0
6874  * Please Place Description here.
6875  * @var mac_ax_read_req::ls
6876  * Please Place Description here.
6877  * @var mac_ax_read_req::ofld_id
6878  * Please Place Description here.
6879  * @var mac_ax_read_req::entry_num
6880  * Please Place Description here.
6881  * @var mac_ax_read_req::offset
6882  * Please Place Description here.
6883  * @var mac_ax_read_req::rsvd1
6884  * Please Place Description here.
6885  */
6886 struct mac_ax_read_req {
6887 	u16 value_len:11;
6888 	u16 rsvd0: 4;
6889 	u16 ls: 1;
6890 	u8 ofld_id;
6891 	u8 entry_num;
6892 	u16 offset;
6893 	u16 rsvd1;
6894 };
6895 
6896 /**
6897  * @struct mac_ax_read_ofld_info
6898  * @brief mac_ax_read_ofld_info
6899  *
6900  * @var mac_ax_read_ofld_info::buf
6901  * Please Place Description here.
6902  * @var mac_ax_read_ofld_info::buf_wptr
6903  * Please Place Description here.
6904  * @var mac_ax_read_ofld_info::last_req
6905  * Please Place Description here.
6906  * @var mac_ax_read_ofld_info::buf_size
6907  * Please Place Description here.
6908  * @var mac_ax_read_ofld_info::avl_buf_size
6909  * Please Place Description here.
6910  * @var mac_ax_read_ofld_info::used_size
6911  * Please Place Description here.
6912  * @var mac_ax_read_ofld_info::req_num
6913  * Please Place Description here.
6914  */
6915 struct mac_ax_read_ofld_info {
6916 	u8 *buf;
6917 	u8 *buf_wptr;
6918 	struct mac_ax_read_req *last_req;
6919 	u32 buf_size;
6920 	u32 avl_buf_size;
6921 	u32 used_size;
6922 	u32 req_num;
6923 };
6924 
6925 /**
6926  * @struct mac_ax_read_ofld_value
6927  * @brief mac_ax_read_ofld_value
6928  *
6929  * @var mac_ax_read_ofld_value::len
6930  * Please Place Description here.
6931  * @var mac_ax_read_ofld_value::rsvd
6932  * Please Place Description here.
6933  * @var mac_ax_read_ofld_value::buf
6934  * Please Place Description here.
6935  */
6936 struct mac_ax_read_ofld_value {
6937 	u16 len;
6938 	u16 rsvd;
6939 	u8 *buf;
6940 };
6941 
6942 /**
6943  * @struct mac_ax_efuse_ofld_info
6944  * @brief mac_ax_efuse_ofld_info
6945  *
6946  * @var mac_ax_efuse_ofld_info::buf
6947  * Please Place Description here.
6948  */
6949 struct mac_ax_efuse_ofld_info {
6950 	u8 *buf;
6951 };
6952 
6953 /**
6954  * @struct mac_ax_write_req
6955  * @brief mac_ax_write_req
6956  *
6957  * @var mac_ax_write_req::value_len
6958  * Please Place Description here.
6959  * @var mac_ax_write_req::rsvd0
6960  * Please Place Description here.
6961  * @var mac_ax_write_req::polling
6962  * Please Place Description here.
6963  * @var mac_ax_write_req::mask_en
6964  * Please Place Description here.
6965  * @var mac_ax_write_req::ls
6966  * Please Place Description here.
6967  * @var mac_ax_write_req::ofld_id
6968  * Please Place Description here.
6969  * @var mac_ax_write_req::entry_num
6970  * Please Place Description here.
6971  * @var mac_ax_write_req::offset
6972  * Please Place Description here.
6973  * @var mac_ax_write_req::rsvd1
6974  * Please Place Description here.
6975  */
6976 struct mac_ax_write_req {
6977 	u16 value_len:11;
6978 	u16 rsvd0: 2;
6979 	u16 polling: 1;
6980 	u16 mask_en: 1;
6981 	u16 ls: 1;
6982 	u8 ofld_id;
6983 	u8 entry_num;
6984 	u16 offset;
6985 	u16 rsvd1;
6986 };
6987 
6988 /**
6989  * @struct mac_ax_write_ofld_info
6990  * @brief mac_ax_write_ofld_info
6991  *
6992  * @var mac_ax_write_ofld_info::buf
6993  * Please Place Description here.
6994  * @var mac_ax_write_ofld_info::buf_wptr
6995  * Please Place Description here.
6996  * @var mac_ax_write_ofld_info::last_req
6997  * Please Place Description here.
6998  * @var mac_ax_write_ofld_info::buf_size
6999  * Please Place Description here.
7000  * @var mac_ax_write_ofld_info::avl_buf_size
7001  * Please Place Description here.
7002  * @var mac_ax_write_ofld_info::used_size
7003  * Please Place Description here.
7004  * @var mac_ax_write_ofld_info::req_num
7005  * Please Place Description here.
7006  */
7007 struct mac_ax_write_ofld_info {
7008 	u8 *buf;
7009 	u8 *buf_wptr;
7010 	struct mac_ax_write_req *last_req;
7011 	u32 buf_size;
7012 	u32 avl_buf_size;
7013 	u32 used_size;
7014 	u32 req_num;
7015 };
7016 
7017 /**
7018  * @struct mac_ax_conf_ofld_info
7019  * @brief mac_ax_conf_ofld_info
7020  *
7021  * @var mac_ax_conf_ofld_info::buf
7022  * Please Place Description here.
7023  * @var mac_ax_conf_ofld_info::buf_wptr
7024  * Please Place Description here.
7025  * @var mac_ax_conf_ofld_info::buf_size
7026  * Please Place Description here.
7027  * @var mac_ax_conf_ofld_info::avl_buf_size
7028  * Please Place Description here.
7029  * @var mac_ax_conf_ofld_info::used_size
7030  * Please Place Description here.
7031  * @var mac_ax_conf_ofld_info::req_num
7032  * Please Place Description here.
7033  */
7034 struct mac_ax_conf_ofld_info {
7035 	u8 *buf;
7036 	u8 *buf_wptr;
7037 	u32 buf_size;
7038 	u32 avl_buf_size;
7039 	u32 used_size;
7040 	u16 req_num;
7041 };
7042 
7043 /**
7044  * @struct mac_ax_pkt_ofld_info
7045  * @brief mac_ax_pkt_ofld_info
7046  *
7047  * @var mac_ax_pkt_ofld_info::last_op
7048  * Please Place Description here.
7049  * @var mac_ax_pkt_ofld_info::free_id_count
7050  * Please Place Description here.
7051  * @var mac_ax_pkt_ofld_info::used_id_count
7052  * Please Place Description here.
7053  * @var mac_ax_pkt_ofld_info::id_bitmap
7054  * Please Place Description here.
7055  */
7056 struct mac_ax_pkt_ofld_info {
7057 #define PKT_OFLD_MAX_COUNT 256
7058 	u8 last_op;
7059 	u16 free_id_count;
7060 	u16 used_id_count;
7061 	u8 id_bitmap[PKT_OFLD_MAX_COUNT >> 3];
7062 };
7063 
7064 /**
7065  * @struct mac_ax_pkt_ofld_pkt
7066  * @brief mac_ax_pkt_ofld_pkt
7067  *
7068  * @var mac_ax_pkt_ofld_pkt::pkt_id
7069  * Please Place Description here.
7070  * @var mac_ax_pkt_ofld_pkt::rsvd
7071  * Please Place Description here.
7072  * @var mac_ax_pkt_ofld_pkt::pkt_len
7073  * Please Place Description here.
7074  * @var mac_ax_pkt_ofld_pkt::pkt
7075  * Please Place Description here.
7076  */
7077 struct mac_ax_pkt_ofld_pkt {
7078 	u8 pkt_id;
7079 	u8 rsvd;
7080 	u16 pkt_len;
7081 	u8 *pkt;
7082 };
7083 
7084 /**
7085  * @struct mac_ax_general_pkt_ids
7086  * @brief mac_ax_general_pkt_ids
7087  *
7088  * @var mac_ax_general_pkt_ids::macid
7089  * Please Place Description here.
7090  * @var mac_ax_general_pkt_ids::probersp
7091  * Please Place Description here.
7092  * @var mac_ax_general_pkt_ids::pspoll
7093  * Please Place Description here.
7094  * @var mac_ax_general_pkt_ids::nulldata
7095  * Please Place Description here.
7096  * @var mac_ax_general_pkt_ids::qosnull
7097  * Please Place Description here.
7098  * @var mac_ax_general_pkt_ids::cts2self
7099  * Please Place Description here.
7100  * @var mac_ax_general_pkt_ids::probereq
7101  * offloaded probe request pkt id
7102  * @var mac_ax_general_pkt_ids::apcsa
7103  * offloaded CSA frame id
7104  */
7105 struct mac_ax_general_pkt_ids {
7106 	u8 macid;
7107 	u8 probersp;
7108 	u8 pspoll;
7109 	u8 nulldata;
7110 	u8 qosnull;
7111 	u8 cts2self;
7112 	u8 probereq;
7113 	u8 apcsa;
7114 };
7115 
7116 #ifndef CONFIG_FW_IO_OFLD_SUPPORT
7117 /**
7118  * @struct rtw_mac_cmd
7119  * @brief rtw_mac_cmd
7120  *
7121  * @var rtw_mac_cmd::src
7122  * Please Place Description here.
7123  * @var rtw_mac_cmd::type
7124  * Please Place Description here.
7125  * @var rtw_mac_cmd::lc
7126  * Please Place Description here.
7127  * @var rtw_mac_cmd::rf_path
7128  * Please Place Description here.
7129  * @var rtw_mac_cmd::offset
7130  * Please Place Description here.
7131  * @var rtw_mac_cmd::id
7132  * Please Place Description here.
7133  * @var rtw_mac_cmd::value
7134  * Please Place Description here.
7135  * @var rtw_mac_cmd::mask
7136  * Please Place Description here.
7137  */
7138 struct rtw_mac_cmd {
7139 	enum rtw_mac_src_cmd_ofld src;
7140 	enum rtw_mac_cmd_type_ofld type;
7141 	u8 lc;
7142 	enum rtw_mac_rf_path rf_path;
7143 	u16 offset;
7144 	u16 id;
7145 	u32 value;
7146 	u32 mask;
7147 };
7148 
7149 #endif
7150 
7151 /**
7152  * @struct mac_ax_cmd_ofld_info
7153  * @brief mac_ax_cmd_ofld_info
7154  *
7155  * @var mac_ax_cmd_ofld_info::buf
7156  * Please Place Description here.
7157  * @var mac_ax_cmd_ofld_info::end_ptr
7158  * Please Place Description here.
7159  * @var mac_ax_cmd_ofld_info::buf_size
7160  * Please Place Description here.
7161  * @var mac_ax_cmd_ofld_info::avl_buf_size
7162  * Please Place Description here.
7163  * @var mac_ax_cmd_ofld_info::used_size
7164  * Please Place Description here.
7165  * @var mac_ax_cmd_ofld_info::cmd_num
7166  * Please Place Description here.
7167  */
7168 struct mac_ax_cmd_ofld_info {
7169 	u8 *buf;
7170 	u8 *buf_wptr;
7171 	u8 *last_wptr;
7172 	u16 buf_size;
7173 	u16 avl_buf_size;
7174 	u16 used_size;
7175 	u8 cmd_num;
7176 	u8 result;
7177 	u32 accu_delay;
7178 	mac_ax_mutex cmd_ofld_lock;
7179 };
7180 
7181 /**
7182  * @struct mac_ax_tx_duty_ofld_info
7183  * @brief mac_ax_tx_duty_ofld_info
7184  *
7185  * @var mac_ax_tx_duty_ofld_info::timer_err
7186  * Please Place Description here.
7187  */
7188 struct mac_ax_tx_duty_ofld_info {
7189 	u8 timer_err;
7190 };
7191 
7192 /*--------------------Define OutSrc related ----------------------------------*/
7193 
7194 /**
7195  * @struct mac_ax_la_cfg
7196  * @brief mac_ax_la_cfg
7197  *
7198  * @var mac_ax_la_cfg::la_func_en
7199  * Please Place Description here.
7200  * @var mac_ax_la_cfg::la_restart_en
7201  * Please Place Description here.
7202  * @var mac_ax_la_cfg::la_timeout_en
7203  * Please Place Description here.
7204  * @var mac_ax_la_cfg::la_timeout_val
7205  * Please Place Description here.
7206  * @var mac_ax_la_cfg::la_data_loss_imr
7207  * Please Place Description here.
7208  * @var mac_ax_la_cfg::la_tgr_tu_sel
7209  * Please Place Description here.
7210  * @var mac_ax_la_cfg::la_tgr_time_val
7211  * Please Place Description here.
7212  * @var mac_ax_la_cfg::rsvd
7213  * Please Place Description here.
7214  */
7215 struct mac_ax_la_cfg {
7216 	u32 la_func_en:1;
7217 	u32 la_restart_en:1;
7218 	u32 la_timeout_en:1;
7219 	/* 2'h0: 1s, 2'h1: 2s, 2'h2: 4s, 2'h3: 8s */
7220 	u32 la_timeout_val:2;
7221 	/*Error flag mask bit for LA data loss due to pktbuffer busy */
7222 	u32 la_data_loss_imr:1;
7223 	/* TU (time unit) = 2^ B_AX_LA_TRIG_TU_SEL */
7224 	u32 la_tgr_tu_sel:4;
7225 	/* 6'h0: No delay, 6'h1: 1 TU, 6'h2: 2TU, ??*/
7226 	u32 la_tgr_time_val:7;
7227 	u32 rsvd:15;
7228 };
7229 
7230 /**
7231  * @struct mac_ax_la_status
7232  * @brief mac_ax_la_status
7233  *
7234  * @var mac_ax_la_status::la_buf_wptr
7235  * Please Place Description here.
7236  * @var mac_ax_la_status::la_buf_rndup_ind
7237  * Please Place Description here.
7238  * @var mac_ax_la_status::la_sw_fsmst
7239  * Please Place Description here.
7240  * @var mac_ax_la_status::la_data_loss
7241  * Please Place Description here.
7242  */
7243 struct mac_ax_la_status {
7244 	/* LA data dump finish address = (la_buf_wptr -1) */
7245 	u16 la_buf_wptr;
7246 	/*1: round up, 0: No round up */
7247 	u8 la_buf_rndup_ind:1;
7248 	/*3'h0: LA idle ; 3'h1: LA start; 3'h2: LA finish stop;*/
7249 	/*3'h3:LA finish timeout; 3'h4: LA re-start*/
7250 	u8 la_sw_fsmst:3;
7251 	/* LA data loss due to pktbuffer busy */
7252 	u8 la_data_loss:1;
7253 };
7254 
7255 /**
7256  * @struct mac_ax_la_buf_param
7257  * @brief mac_ax_la_buf_param
7258  *
7259  * @var mac_ax_la_buf_param::start_addr
7260  * Please Place Description here.
7261  * @var mac_ax_la_buf_param::end_addr
7262  * Please Place Description here.
7263  * @var mac_ax_la_buf_param::la_buf_sel
7264  * Please Place Description here.
7265  */
7266 struct mac_ax_la_buf_param {
7267 	u32 start_addr;
7268 	u32 end_addr;
7269 	u8 la_buf_sel; /*0: 64KB; 1: 128KB; 2: 192KB; 3: 256KB; 4: 320KB*/
7270 };
7271 
7272 /*--------------------Define TRX PKT INFO/RPT---------------------------------*/
7273 
7274 /**
7275  * @struct mac_ax_pkt_data
7276  * @brief mac_ax_pkt_data
7277  *
7278  * @var mac_ax_pkt_data::wifi_seq
7279  * Please Place Description here.
7280  * @var mac_ax_pkt_data::hw_ssn_sel
7281  * Please Place Description here.
7282  * @var mac_ax_pkt_data::hw_seq_mode
7283  * Please Place Description here.
7284  * @var mac_ax_pkt_data::chk_en
7285  * Please Place Description here.
7286  * @var mac_ax_pkt_data::hw_amsdu
7287  * Please Place Description here.
7288  * @var mac_ax_pkt_data::shcut_camid
7289  * Please Place Description here.
7290  * @var mac_ax_pkt_data::headerwllc_len
7291  * Please Place Description here.
7292  * @var mac_ax_pkt_data::smh_en
7293  * Please Place Description here.
7294  * @var mac_ax_pkt_data::wd_page
7295  * Please Place Description here.
7296  * @var mac_ax_pkt_data::wp_offset
7297  * Please Place Description here.
7298  * @var mac_ax_pkt_data::wdinfo_en
7299  * Please Place Description here.
7300  * @var mac_ax_pkt_data::hw_aes_iv
7301  * Please Place Description here.
7302  * @var mac_ax_pkt_data::hdr_len
7303  * Please Place Description here.
7304  * @var mac_ax_pkt_data::ch
7305  * Please Place Description here.
7306  * @var mac_ax_pkt_data::macid
7307  * Please Place Description here.
7308  * @var mac_ax_pkt_data::agg_en
7309  * Please Place Description here.
7310  * @var mac_ax_pkt_data::bk
7311  * Please Place Description here.
7312  * @var mac_ax_pkt_data::max_agg_num
7313  * Please Place Description here.
7314  * @var mac_ax_pkt_data::bmc
7315  * Please Place Description here.
7316  * @var mac_ax_pkt_data::lifetime_sel
7317  * Please Place Description here.
7318  * @var mac_ax_pkt_data::ampdu_density
7319  * Please Place Description here.
7320  * @var mac_ax_pkt_data::userate
7321  * Please Place Description here.
7322  * @var mac_ax_pkt_data::data_rate
7323  * Please Place Description here.
7324  * @var mac_ax_pkt_data::data_bw
7325  * Please Place Description here.
7326  * @var mac_ax_pkt_data::er_bw
7327  * Please Place Description here.
7328  * @var mac_ax_pkt_data::data_gi_ltf
7329  * Please Place Description here.
7330  * @var mac_ax_pkt_data::data_er
7331  * Please Place Description here.
7332  * @var mac_ax_pkt_data::data_dcm
7333  * Please Place Description here.
7334  * @var mac_ax_pkt_data::data_stbc
7335  * Please Place Description here.
7336  * @var mac_ax_pkt_data::data_ldpc
7337  * Please Place Description here.
7338  * @var mac_ax_pkt_data::hw_sec_en
7339  * Please Place Description here.
7340  * @var mac_ax_pkt_data::sec_cam_idx
7341  * Please Place Description here.
7342  * @var mac_ax_pkt_data::sec_type
7343  * Please Place Description here.
7344  * @var mac_ax_pkt_data::dis_data_fb
7345  * Please Place Description here.
7346  * @var mac_ax_pkt_data::dis_rts_fb
7347  * Please Place Description here.
7348  * @var mac_ax_pkt_data::tid
7349  * Please Place Description here.
7350  * @var mac_ax_pkt_data::rts_en
7351  * Please Place Description here.
7352  * @var mac_ax_pkt_data::cts2self
7353  * Please Place Description here.
7354  * @var mac_ax_pkt_data::cca_rts
7355  * Please Place Description here.
7356  * @var mac_ax_pkt_data::hw_rts_en
7357  * Please Place Description here.
7358  * @var mac_ax_pkt_data::ndpa
7359  * Please Place Description here.
7360  * @var mac_ax_pkt_data::snd_pkt_sel
7361  * Please Place Description here.
7362  * @var mac_ax_pkt_data::sifs_tx
7363  * Please Place Description here.
7364  * @var mac_ax_pkt_data::tx_cnt_lmt_sel
7365  * Please Place Description here.
7366  * @var mac_ax_pkt_data::tx_cnt_lmt
7367  * Please Place Description here.
7368  * @var mac_ax_pkt_data::ndpa_dur
7369  * Please Place Description here.
7370  * @var mac_ax_pkt_data::nav_use_hdr
7371  * Please Place Description here.
7372  * @var mac_ax_pkt_data::multiport_id
7373  * Please Place Description here.
7374  * @var mac_ax_pkt_data::mbssid
7375  * Please Place Description here.
7376  * @var mac_ax_pkt_data::null_0
7377  * Please Place Description here.
7378  * @var mac_ax_pkt_data::null_1
7379  * Please Place Description here.
7380  * @var mac_ax_pkt_data::tri_frame
7381  * Please Place Description here.
7382  * @var mac_ax_pkt_data::ack_ch_info
7383  * Please Place Description here.
7384  * @var mac_ax_pkt_data::pkt_offset
7385  * Please Place Description here.
7386  * @var mac_ax_pkt_data::a_ctrl_uph
7387  * Please Place Description here.
7388  * @var mac_ax_pkt_data::a_ctrl_bsr
7389  * Please Place Description here.
7390  * @var mac_ax_pkt_data::a_ctrl_cas
7391  * Please Place Description here.
7392  * @var mac_ax_pkt_data::rtt
7393  * Please Place Description here.
7394  * @var mac_ax_pkt_data::ht_data_snd
7395  * Please Place Description here.
7396  * @var mac_ax_pkt_data::no_ack
7397  * Please Place Description here.
7398  * @var mac_ax_pkt_data::sw_define
7399  * Please Place Description here.
7400  */
7401 struct mac_ax_pkt_data {
7402 	u16 wifi_seq;
7403 	u8 hw_ssn_sel;
7404 	u8 hw_seq_mode;
7405 	u8 chk_en;
7406 	u8 hw_amsdu;
7407 	u8 shcut_camid;
7408 	u8 headerwllc_len;
7409 	u8 smh_en;
7410 	u8 wd_page;
7411 	u8 wp_offset;
7412 	u8 wdinfo_en;
7413 	u8 hw_aes_iv;
7414 	u8 hdr_len;
7415 	u8 ch;
7416 	u8 macid;
7417 	u8 wmm;
7418 	u8 band;
7419 	u8 agg_en;
7420 	u8 bk;
7421 	u8 max_agg_num;
7422 	u8 bmc;
7423 	u8 lifetime_sel;
7424 	u8 ampdu_density;
7425 	u8 userate;
7426 	u16 data_rate;
7427 	u8 data_bw;
7428 	u8 er_bw;
7429 	u8 data_gi_ltf;
7430 	u8 data_er;
7431 	u8 data_dcm;
7432 	u8 data_stbc;
7433 	u8 data_ldpc;
7434 	u8 hw_sec_en;
7435 	u8 sec_cam_idx;
7436 	u8 sec_type;
7437 	u8 dis_data_fb;
7438 	u8 dis_rts_fb;
7439 	u8 tid;
7440 	u8 rts_en;
7441 	u8 cts2self;
7442 	u8 cca_rts;
7443 	u8 hw_rts_en;
7444 	u8 ndpa;
7445 	u8 snd_pkt_sel;
7446 	u8 sifs_tx;
7447 	u8 tx_cnt_lmt_sel;
7448 	u8 tx_cnt_lmt;
7449 	u16 ndpa_dur;
7450 	u8 nav_use_hdr;
7451 	u8 multiport_id;
7452 	u8 mbssid;
7453 	u8 null_0;
7454 	u8 null_1;
7455 	u8 tri_frame;
7456 	u8 ack_ch_info;
7457 	u8 pkt_offset;
7458 	u8 a_ctrl_uph;
7459 	u8 a_ctrl_bsr;
7460 	u8 a_ctrl_cas;
7461 	u8 rtt;
7462 	u8 ht_data_snd;
7463 	u8 no_ack;
7464 	u8 sw_define;
7465 	u8 addr_info_num;
7466 	u8 reuse_start_num;
7467 	u8 reuse_size;
7468 	u8 reuse_num;
7469 	u8 hw_sec_iv;
7470 	u8 sw_sec_iv;
7471 	u8 sec_keyid;
7472 	u8 rls_to_cpuio;
7473 	u8 force_key_en;
7474 	u8 upd_wlan_hdr;
7475 	u16 data_rty_lowest_rate;
7476 	u8 spe_rpt;
7477 };
7478 
7479 /**
7480  * @struct mac_ax_pkt_mgnt
7481  * @brief mac_ax_pkt_mgnt
7482  *
7483  * @var mac_ax_pkt_mgnt::wifi_seq
7484  * Please Place Description here.
7485  * @var mac_ax_pkt_mgnt::hw_ssn_sel
7486  * Please Place Description here.
7487  * @var mac_ax_pkt_mgnt::hw_seq_mode
7488  * Please Place Description here.
7489  * @var mac_ax_pkt_mgnt::chk_en
7490  * Please Place Description here.
7491  * @var mac_ax_pkt_mgnt::hw_amsdu
7492  * Please Place Description here.
7493  * @var mac_ax_pkt_mgnt::shcut_camid
7494  * Please Place Description here.
7495  * @var mac_ax_pkt_mgnt::headerwllc_len
7496  * Please Place Description here.
7497  * @var mac_ax_pkt_mgnt::smh_en
7498  * Please Place Description here.
7499  * @var mac_ax_pkt_mgnt::wd_page
7500  * Please Place Description here.
7501  * @var mac_ax_pkt_mgnt::wp_offset
7502  * Please Place Description here.
7503  * @var mac_ax_pkt_mgnt::wdinfo_en
7504  * Please Place Description here.
7505  * @var mac_ax_pkt_mgnt::hw_aes_iv
7506  * Please Place Description here.
7507  * @var mac_ax_pkt_mgnt::hdr_len
7508  * Please Place Description here.
7509  * @var mac_ax_pkt_mgnt::rsvd0
7510  * Please Place Description here.
7511  * @var mac_ax_pkt_mgnt::macid
7512  * Please Place Description here.
7513  * @var mac_ax_pkt_mgnt::rsvd1
7514  * Please Place Description here.
7515  * @var mac_ax_pkt_mgnt::bk
7516  * Please Place Description here.
7517  * @var mac_ax_pkt_mgnt::max_agg_num
7518  * Please Place Description here.
7519  * @var mac_ax_pkt_mgnt::bmc
7520  * Please Place Description here.
7521  * @var mac_ax_pkt_mgnt::lifetime_sel
7522  * Please Place Description here.
7523  * @var mac_ax_pkt_mgnt::ampdu_density
7524  * Please Place Description here.
7525  * @var mac_ax_pkt_mgnt::userate
7526  * Please Place Description here.
7527  * @var mac_ax_pkt_mgnt::data_rate
7528  * Please Place Description here.
7529  * @var mac_ax_pkt_mgnt::data_bw
7530  * Please Place Description here.
7531  * @var mac_ax_pkt_mgnt::er_bw
7532  * Please Place Description here.
7533  * @var mac_ax_pkt_mgnt::data_gi_ltf
7534  * Please Place Description here.
7535  * @var mac_ax_pkt_mgnt::data_er
7536  * Please Place Description here.
7537  * @var mac_ax_pkt_mgnt::data_dcm
7538  * Please Place Description here.
7539  * @var mac_ax_pkt_mgnt::data_stbc
7540  * Please Place Description here.
7541  * @var mac_ax_pkt_mgnt::data_ldpc
7542  * Please Place Description here.
7543  * @var mac_ax_pkt_mgnt::hw_sec_en
7544  * Please Place Description here.
7545  * @var mac_ax_pkt_mgnt::sec_cam_idx
7546  * Please Place Description here.
7547  * @var mac_ax_pkt_mgnt::sec_type
7548  * Please Place Description here.
7549  * @var mac_ax_pkt_mgnt::dis_data_fb
7550  * Please Place Description here.
7551  * @var mac_ax_pkt_mgnt::dis_rts_fb
7552  * Please Place Description here.
7553  * @var mac_ax_pkt_mgnt::tid
7554  * Please Place Description here.
7555  * @var mac_ax_pkt_mgnt::rts_en
7556  * Please Place Description here.
7557  * @var mac_ax_pkt_mgnt::cts2self
7558  * Please Place Description here.
7559  * @var mac_ax_pkt_mgnt::cca_rts
7560  * Please Place Description here.
7561  * @var mac_ax_pkt_mgnt::hw_rts_en
7562  * Please Place Description here.
7563  * @var mac_ax_pkt_mgnt::ndpa
7564  * Please Place Description here.
7565  * @var mac_ax_pkt_mgnt::snd_pkt_sel
7566  * Please Place Description here.
7567  * @var mac_ax_pkt_mgnt::sifs_tx
7568  * Please Place Description here.
7569  * @var mac_ax_pkt_mgnt::tx_cnt_lmt_sel
7570  * Please Place Description here.
7571  * @var mac_ax_pkt_mgnt::tx_cnt_lmt
7572  * Please Place Description here.
7573  * @var mac_ax_pkt_mgnt::ndpa_dur
7574  * Please Place Description here.
7575  * @var mac_ax_pkt_mgnt::nav_use_hdr
7576  * Please Place Description here.
7577  * @var mac_ax_pkt_mgnt::multiport_id
7578  * Please Place Description here.
7579  * @var mac_ax_pkt_mgnt::mbssid
7580  * Please Place Description here.
7581  * @var mac_ax_pkt_mgnt::null_0
7582  * Please Place Description here.
7583  * @var mac_ax_pkt_mgnt::null_1
7584  * Please Place Description here.
7585  * @var mac_ax_pkt_mgnt::tri_frame
7586  * Please Place Description here.
7587  * @var mac_ax_pkt_mgnt::ack_ch_info
7588  * Please Place Description here.
7589  * @var mac_ax_pkt_mgnt::pkt_offset
7590  * Please Place Description here.
7591  * @var mac_ax_pkt_mgnt::a_ctrl_bsr
7592  * Please Place Description here.
7593  * @var mac_ax_pkt_mgnt::rtt
7594  * Please Place Description here.
7595  * @var mac_ax_pkt_mgnt::ht_data_snd
7596  * Please Place Description here.
7597  * @var mac_ax_pkt_mgnt::no_ack
7598  * Please Place Description here.
7599  */
7600 struct mac_ax_pkt_mgnt {
7601 	u16 wifi_seq;
7602 	u8 hw_ssn_sel;
7603 	u8 hw_seq_mode;
7604 	u8 chk_en;
7605 	u8 hw_amsdu;
7606 	u8 shcut_camid;
7607 	u8 headerwllc_len;
7608 	u8 smh_en;
7609 	u8 wd_page;
7610 	u8 wp_offset;
7611 	u8 wdinfo_en;
7612 	u8 hw_aes_iv;
7613 	u8 hdr_len;
7614 	u8 ch;
7615 	u8 macid;
7616 	u8 wmm;
7617 	u8 band;
7618 	u8 agg_en;
7619 	u8 bk;
7620 	u8 max_agg_num;
7621 	u8 bmc;
7622 	u8 lifetime_sel;
7623 	u8 ampdu_density;
7624 	u8 userate;
7625 	u16 data_rate;
7626 	u8 data_bw;
7627 	u8 er_bw;
7628 	u8 data_gi_ltf;
7629 	u8 data_er;
7630 	u8 data_dcm;
7631 	u8 data_stbc;
7632 	u8 data_ldpc;
7633 	u8 hw_sec_en;
7634 	u8 sec_cam_idx;
7635 	u8 sec_type;
7636 	u8 dis_data_fb;
7637 	u8 dis_rts_fb;
7638 	u8 tid;
7639 	u8 rts_en;
7640 	u8 cts2self;
7641 	u8 cca_rts;
7642 	u8 hw_rts_en;
7643 	u8 ndpa;
7644 	u8 snd_pkt_sel;
7645 	u8 sifs_tx;
7646 	u8 tx_cnt_lmt_sel;
7647 	u8 tx_cnt_lmt;
7648 	u16 ndpa_dur;
7649 	u8 nav_use_hdr;
7650 	u8 multiport_id;
7651 	u8 mbssid;
7652 	u8 null_0;
7653 	u8 null_1;
7654 	u8 tri_frame;
7655 	u8 ack_ch_info;
7656 	u8 pkt_offset;
7657 	u8 a_ctrl_uph;
7658 	u8 a_ctrl_bsr;
7659 	u8 a_ctrl_cas;
7660 	u8 rtt;
7661 	u8 ht_data_snd;
7662 	u8 no_ack;
7663 	u8 sw_define;
7664 	u8 addr_info_num;
7665 	u8 reuse_start_num;
7666 	u8 reuse_size;
7667 	u8 reuse_num;
7668 	u8 hw_sec_iv;
7669 	u8 sw_sec_iv;
7670 	u8 sec_keyid;
7671 	u8 rls_to_cpuio;
7672 	u8 force_key_en;
7673 	u8 upd_wlan_hdr;
7674 	u16 data_rty_lowest_rate;
7675 	u8 spe_rpt;
7676 };
7677 
7678 /**
7679  * @struct mac_ax_rpkt_data
7680  * @brief mac_ax_rpkt_data
7681  *
7682  * @var mac_ax_rpkt_data::crc_err
7683  * Please Place Description here.
7684  * @var mac_ax_rpkt_data::icv_err
7685  * Please Place Description here.
7686  */
7687 struct mac_ax_rpkt_data {
7688 	u8 crc_err;
7689 	u8 icv_err;
7690 };
7691 
7692 /**
7693  * @struct mac_ax_txpkt_info
7694  * @brief mac_ax_txpkt_info
7695  *
7696  * @var mac_ax_txpkt_info::type
7697  * Please Place Description here.
7698  * @var mac_ax_txpkt_info::pktsize
7699  * Please Place Description here.
7700  * @var mac_ax_txpkt_info::data
7701  * Please Place Description here.
7702  * @var mac_ax_txpkt_info::mgnt
7703  * Please Place Description here.
7704  * @var mac_ax_txpkt_info::u
7705  * Please Place Description here.
7706  */
7707 struct mac_ax_txpkt_info {
7708 	enum mac_ax_pkt_t type;
7709 	u32 pktsize;
7710 	union {
7711 		struct mac_ax_pkt_data data;
7712 		struct mac_ax_pkt_mgnt mgnt;
7713 	} u;
7714 };
7715 
7716 /**
7717  * @struct mac_ax_bcn_cnt
7718  * @brief mac_ax_bcn_cnt
7719  *
7720  * @var mac_ax_bcn_cnt::port
7721  * Please Place Description here.
7722  * @var mac_ax_bcn_cnt::mbssid
7723  * Please Place Description here.
7724  * @var mac_ax_bcn_cnt::ok_cnt
7725  * Please Place Description here.
7726  * @var mac_ax_bcn_cnt::fail_cnt
7727  * Please Place Description here.
7728  */
7729 struct mac_ax_bcn_cnt {
7730 	u8 port;
7731 	u8 mbssid;
7732 	u8 band;
7733 	u8 ok_cnt;
7734 	u8 cca_cnt;
7735 	u8 edcca_cnt;
7736 	u8 nav_cnt;
7737 	u8 txon_cnt;
7738 	u8 mac_cnt;
7739 	u8 others_cnt;
7740 	u8 lock_cnt;
7741 	u8 cmp_cnt;
7742 	u8 invalid_cnt;
7743 	u8 srchend_cnt;
7744 };
7745 
7746 /**
7747  * @struct mac_ax_refill_info
7748  * @brief mac_ax_refill_info
7749  *
7750  * @var mac_ax_refill_info::pkt
7751  * Please Place Description here.
7752  * @var mac_ax_refill_info::agg_num
7753  * Please Place Description here.
7754  * @var mac_ax_refill_info::packet_offset
7755  * Please Place Description here.
7756  */
7757 struct mac_ax_refill_info {
7758 	u8 *pkt;
7759 	u32 agg_num;
7760 	u8 packet_offset;
7761 };
7762 
7763 /**
7764  * @struct mac_ax_rpkt_ppdu
7765  * @brief mac_ax_rpkt_ppdu
7766  *
7767  * @var mac_ax_rpkt_ppdu::mac_info
7768  * Please Place Description here.
7769  */
7770 struct mac_ax_rpkt_ppdu {
7771 	u8 mac_info;
7772 };
7773 
7774 /**
7775  * @struct mac_ax_mac_tx_mode_sel
7776  * @brief mac_ax_mac_tx_mode_sel
7777  *
7778  * @var mac_ax_mac_tx_mode_sel::txop_rot_wmm0_en
7779  * Please Place Description here.
7780  * @var mac_ax_mac_tx_mode_sel::txop_rot_wmm1_en
7781  * Please Place Description here.
7782  * @var mac_ax_mac_tx_mode_sel::txop_rot_wmm2_en
7783  * Please Place Description here.
7784  * @var mac_ax_mac_tx_mode_sel::txop_rot_wmm3_en
7785  * Please Place Description here.
7786  */
7787 struct mac_ax_mac_tx_mode_sel {
7788 	u8 txop_rot_wmm0_en;
7789 	u8 txop_rot_wmm1_en;
7790 	u8 txop_rot_wmm2_en;
7791 	u8 txop_rot_wmm3_en;
7792 
7793 	u8 sw_mode_band0_en; /* shall remove when v0_22 release, Rick */
7794 };
7795 
7796 /**
7797  * @struct mac_ax_rxpkt_info
7798  * @brief mac_ax_rxpkt_info
7799  *
7800  * @var mac_ax_rxpkt_info::type
7801  * Please Place Description here.
7802  * @var mac_ax_rxpkt_info::rxdlen
7803  * Please Place Description here.
7804  * @var mac_ax_rxpkt_info::drvsize
7805  * Please Place Description here.
7806  * @var mac_ax_rxpkt_info::shift
7807  * Please Place Description here.
7808  * @var mac_ax_rxpkt_info::pktsize
7809  * Please Place Description here.
7810  * @var mac_ax_rxpkt_info::data
7811  * Please Place Description here.
7812  * @var mac_ax_rxpkt_info::ppdu
7813  * Please Place Description here.
7814  * @var mac_ax_rxpkt_info::u
7815  * Please Place Description here.
7816  */
7817 struct mac_ax_rxpkt_info {
7818 	enum mac_ax_pkt_t type;
7819 	u16 rxdlen;
7820 	u8 drvsize;
7821 	u8 shift;
7822 	u32 pktsize;
7823 	union {
7824 		struct mac_ax_rpkt_data data;
7825 		struct mac_ax_rpkt_ppdu ppdu;
7826 	} u;
7827 };
7828 
7829 /**
7830  * @struct mac_ax_pm_cam_ctrl_t
7831  * @brief mac_ax_pm_cam_ctrl_t
7832  *
7833  * @var mac_ax_pm_cam_ctrl_t::pld_mask0
7834  * Please Place Description here.
7835  * @var mac_ax_pm_cam_ctrl_t::pld_mask1
7836  * Please Place Description here.
7837  * @var mac_ax_pm_cam_ctrl_t::pld_mask2
7838  * Please Place Description here.
7839  * @var mac_ax_pm_cam_ctrl_t::pld_mask3
7840  * Please Place Description here.
7841  * @var mac_ax_pm_cam_ctrl_t::entry_index
7842  * Please Place Description here.
7843  * @var mac_ax_pm_cam_ctrl_t::valid
7844  * Please Place Description here.
7845  * @var mac_ax_pm_cam_ctrl_t::type
7846  * Please Place Description here.
7847  * @var mac_ax_pm_cam_ctrl_t::subtype
7848  * Please Place Description here.
7849  * @var mac_ax_pm_cam_ctrl_t::skip_mac_iv_hdr
7850  * Please Place Description here.
7851  * @var mac_ax_pm_cam_ctrl_t::target_ind
7852  * Please Place Description here.
7853  * @var mac_ax_pm_cam_ctrl_t::crc16
7854  * Please Place Description here.
7855  */
7856 struct mac_ax_pm_cam_ctrl_t {
7857 	u32 pld_mask0;
7858 	u32 pld_mask1;
7859 	u32 pld_mask2;
7860 	u32 pld_mask3;
7861 	u8 entry_index;
7862 	u8 valid;
7863 	u8 type;
7864 	u8 subtype;
7865 	u8 skip_mac_iv_hdr;
7866 	u8 target_ind;
7867 	u16 crc16;
7868 };
7869 
7870 /**
7871  * @struct mac_ax_af_ud_ctrl_t
7872  * @brief mac_ax_af_ud_ctrl_t
7873  *
7874  * @var mac_ax_af_ud_ctrl_t::index
7875  * Please Place Description here.
7876  * @var mac_ax_af_ud_ctrl_t::fwd_tg
7877  * Please Place Description here.
7878  * @var mac_ax_af_ud_ctrl_t::category
7879  * Please Place Description here.
7880  * @var mac_ax_af_ud_ctrl_t::action_field
7881  * Please Place Description here.
7882  */
7883 struct mac_ax_af_ud_ctrl_t {
7884 	u8 index;
7885 	u8 fwd_tg;
7886 	u8 category;
7887 	u8 action_field;
7888 };
7889 
7890 /**
7891  * @struct mac_ax_rx_fwd_ctrl_t
7892  * @brief mac_ax_rx_fwd_ctrl_t
7893  *
7894  * @var mac_ax_rx_fwd_ctrl_t::pm_cam_ctrl
7895  * Please Place Description here.
7896  * @var mac_ax_rx_fwd_ctrl_t::af_ud_ctrl
7897  * Please Place Description here.
7898  * @var mac_ax_rx_fwd_ctrl_t::type
7899  * Please Place Description here.
7900  * @var mac_ax_rx_fwd_ctrl_t::frame
7901  * Please Place Description here.
7902  * @var mac_ax_rx_fwd_ctrl_t::fwd_tg
7903  * Please Place Description here.
7904  */
7905 struct mac_ax_rx_fwd_ctrl_t {
7906 	struct mac_ax_pm_cam_ctrl_t pm_cam_ctrl;
7907 	struct mac_ax_af_ud_ctrl_t af_ud_ctrl;
7908 	u8 type;
7909 	u8 frame;
7910 	u8 fwd_tg;
7911 };
7912 
7913 /**
7914  * @struct mac_ax_rx_fltr_ctrl_t
7915  * @brief mac_ax_rx_fltr_ctrl_t
7916  *
7917  * @var mac_ax_rx_fltr_ctrl_t::sniffer_mode
7918  * Please Place Description here.
7919  * @var mac_ax_rx_fltr_ctrl_t::acpt_a1_match_pkt
7920  * Please Place Description here.
7921  * @var mac_ax_rx_fltr_ctrl_t::acpt_bc_pkt
7922  * Please Place Description here.
7923  * @var mac_ax_rx_fltr_ctrl_t::acpt_mc_pkt
7924  * Please Place Description here.
7925  * @var mac_ax_rx_fltr_ctrl_t::uc_pkt_chk_cam_match
7926  * Please Place Description here.
7927  * @var mac_ax_rx_fltr_ctrl_t::bc_pkt_chk_cam_match
7928  * Please Place Description here.
7929  * @var mac_ax_rx_fltr_ctrl_t::mc_pkt_white_lst_mode
7930  * Please Place Description here.
7931  * @var mac_ax_rx_fltr_ctrl_t::bcn_chk_en
7932  * Please Place Description here.
7933  * @var mac_ax_rx_fltr_ctrl_t::bcn_chk_rule
7934  * Please Place Description here.
7935  * @var mac_ax_rx_fltr_ctrl_t::acpt_pwr_mngt_pkt
7936  * Please Place Description here.
7937  * @var mac_ax_rx_fltr_ctrl_t::acpt_crc32_err_pkt
7938  * Please Place Description here.
7939  * @var mac_ax_rx_fltr_ctrl_t::acpt_unsupport_pkt
7940  * Please Place Description here.
7941  * @var mac_ax_rx_fltr_ctrl_t::acpt_mac_hdr_content_err_pkt
7942  * Please Place Description here.
7943  * @var mac_ax_rx_fltr_ctrl_t::acpt_ftm_req_pkt
7944  * Please Place Description here.
7945  * @var mac_ax_rx_fltr_ctrl_t::pkt_len_fltr
7946  * Please Place Description here.
7947  * @var mac_ax_rx_fltr_ctrl_t::unsp_pkt_target
7948  * Please Place Description here.
7949  * @var mac_ax_rx_fltr_ctrl_t::uid_fltr
7950  * Please Place Description here.
7951  * @var mac_ax_rx_fltr_ctrl_t::cck_crc_chk_enable
7952  * Please Place Description here.
7953  * @var mac_ax_rx_fltr_ctrl_t::cck_sig_chk_enable
7954  * Please Place Description here.
7955  * @var mac_ax_rx_fltr_ctrl_t::lsig_parity_chk_enable
7956  * Please Place Description here.
7957  * @var mac_ax_rx_fltr_ctrl_t::siga_crc_chk_enable
7958  * Please Place Description here.
7959  * @var mac_ax_rx_fltr_ctrl_t::vht_su_sigb_crc_chk_enable
7960  * Please Place Description here.
7961  * @var mac_ax_rx_fltr_ctrl_t::vht_mu_sigb_crc_chk_enable
7962  * Please Place Description here.
7963  * @var mac_ax_rx_fltr_ctrl_t::he_sigb_crc_chk_enable
7964  * Please Place Description here.
7965  * @var mac_ax_rx_fltr_ctrl_t::min_len_chk_disable
7966  * Please Place Description here.
7967  */
7968 struct mac_ax_rx_fltr_ctrl_t {
7969 	// mac fltr
7970 	u8 sniffer_mode:1;
7971 	u8 acpt_a1_match_pkt:1;
7972 	u8 acpt_bc_pkt:1;
7973 	u8 acpt_mc_pkt:1;
7974 	u8 uc_pkt_chk_cam_match:1;
7975 	u8 bc_pkt_chk_cam_match:1;
7976 	u8 mc_pkt_white_lst_mode:1;
7977 	u8 bcn_chk_en:1;
7978 	u8 bcn_chk_rule:2;
7979 	u8 acpt_pwr_mngt_pkt:1;
7980 	u8 acpt_crc32_err_pkt:1;
7981 	u8 acpt_unsupport_pkt:1;
7982 	u8 acpt_mac_hdr_content_err_pkt:1;
7983 	u8 acpt_ftm_req_pkt:1;
7984 	u8 pkt_len_fltr:6;
7985 	u8 unsp_pkt_target:2;
7986 	u8 uid_fltr:2;
7987 	// plcp fltr
7988 	u8 cck_crc_chk_enable:1;
7989 	u8 cck_sig_chk_enable:1;
7990 	u8 lsig_parity_chk_enable:1;
7991 	u8 siga_crc_chk_enable:1;
7992 	u8 vht_su_sigb_crc_chk_enable:1;
7993 	u8 vht_mu_sigb_crc_chk_enable:1;
7994 	u8 he_sigb_crc_chk_enable:1;
7995 	u8 min_len_chk_disable:1;
7996 };
7997 
7998 struct mac_ax_rx_fltr_elem {
7999 	u16 subtype_mask;
8000 	enum mac_ax_fwd_target target_arr[16];
8001 };
8002 
8003 /**
8004  * @struct mac_ax_addrcam_ctrl_t
8005  * @brief mac_ax_addrcam_ctrl_t
8006  */
8007 struct mac_ax_addrcam_ctrl_t {
8008 	u8 addrcam_en:1;
8009 	u8 srch_per_mpdu:1;
8010 	u8 a2_bit0_cmp_en:1;
8011 	u8 rsvd1:5;
8012 	u8 clr_all_content:1;
8013 	u8 rsvd2:3;
8014 	u8 srch_time_lmt:4;
8015 	u8 srch_range_lmt;
8016 	u8 rsvd3;
8017 };
8018 
8019 /**
8020  * @struct mac_ax_addrcam_dis_ctrl_t
8021  * @brief mac_ax_addrcam_dis_ctrl_t
8022  *
8023  */
8024 struct mac_ax_addrcam_dis_ctrl_t {
8025 	u8 def_hit_idx;
8026 	u8 def_hit_result : 1;
8027 	u8 def_a1_hit_result : 1;
8028 	u8 def_a2_hit_result : 1;
8029 	u8 def_a3_hit_result : 1;
8030 	u8 def_port : 3;
8031 	u8 rsvd : 1;
8032 	u8 def_sec_idx;
8033 	u8 def_macid;
8034 };
8035 
8036 /**
8037  * @struct mac_ax_dfs_rpt
8038  * @brief mac_ax_dfs_rpt
8039  *
8040  * @var mac_ax_dfs_rpt::dfs_ptr
8041  * Please Place Description here.
8042  * @var mac_ax_dfs_rpt::drop_num
8043  * Please Place Description here.
8044  * @var mac_ax_dfs_rpt::max_cont_drop
8045  * Please Place Description here.
8046  * @var mac_ax_dfs_rpt::total_drop
8047  * Please Place Description here.
8048  * @var mac_ax_dfs_rpt::dfs_num
8049  * Please Place Description here.
8050  */
8051 struct mac_ax_dfs_rpt {
8052 	u8 *dfs_ptr;
8053 	u16 drop_num;
8054 	u16 max_cont_drop;
8055 	u16 total_drop;
8056 	u16 dfs_num;
8057 };
8058 
8059 /**
8060  * @struct mac_ax_ppdu_usr
8061  * @brief mac_ax_ppdu_usr
8062  *
8063  * @var mac_ax_ppdu_usr::vld
8064  * Please Place Description here.
8065  * @var mac_ax_ppdu_usr::has_data
8066  * Please Place Description here.
8067  * @var mac_ax_ppdu_usr::has_ctrl
8068  * Please Place Description here.
8069  * @var mac_ax_ppdu_usr::has_mgnt
8070  * Please Place Description here.
8071  * @var mac_ax_ppdu_usr::has_bcn
8072  * Please Place Description here.
8073  * @var mac_ax_ppdu_usr::macid
8074  * Please Place Description here.
8075  */
8076 struct mac_ax_ppdu_usr {
8077 	u8 vld:1;
8078 	u8 has_data:1;
8079 	u8 has_ctrl:1;
8080 	u8 has_mgnt:1;
8081 	u8 has_bcn:1;
8082 	u8 macid;
8083 };
8084 
8085 /**
8086  * @struct mac_ax_ppdu_stat
8087  * @brief mac_ax_ppdu_stat
8088  *
8089  * @var mac_ax_ppdu_stat::band
8090  * Please Place Description here.
8091  * @var mac_ax_ppdu_stat::bmp_append_info
8092  * Please Place Description here.
8093  * @var mac_ax_ppdu_stat::bmp_filter
8094  * Please Place Description here.
8095  * @var mac_ax_ppdu_stat::dup2fw_en
8096  * Please Place Description here.
8097  * @var mac_ax_ppdu_stat::dup2fw_len
8098  * Please Place Description here.
8099  */
8100 struct mac_ax_ppdu_stat {
8101 	u8 band;
8102 #define MAC_AX_PPDU_MAC_INFO BIT(1)
8103 #define MAC_AX_PPDU_PLCP BIT(3)
8104 #define MAC_AX_PPDU_RX_CNT BIT(2)
8105 	u8 bmp_append_info;
8106 #define MAC_AX_PPDU_HAS_A1M BIT(4)
8107 #define MAC_AX_PPDU_HAS_CRC_OK BIT(5)
8108 	u8 bmp_filter;
8109 	u8 dup2fw_en;
8110 	u8 dup2fw_len;
8111 };
8112 
8113 /**
8114  * @struct mac_ax_ch_info
8115  * @brief mac_ax_ch_info
8116  *
8117  * @var mac_ax_ch_info::trigger
8118  * Please Place Description here.
8119  * @var mac_ax_ch_info::macid
8120  * Please Place Description here.
8121  * @var mac_ax_ch_info::bmp_filter
8122  * Please Place Description here.
8123  * @var mac_ax_ch_info::dis_to
8124  * Please Place Description here.
8125  * @var mac_ax_ch_info::seg_size
8126  * Please Place Description here.
8127  */
8128 struct mac_ax_ch_info {
8129 #define MAC_AX_CH_INFO_MACID 0
8130 #define MAC_AX_CH_INFO_NDP 1
8131 #define MAC_AX_CH_INFO_SND 2
8132 #define MAC_AX_CH_INFO_ACK 3
8133 	u8 trigger;
8134 	u8 macid;
8135 #define MAC_AX_CH_INFO_CRC_FAIL BIT(0)
8136 #define MAC_AX_CH_INFO_DATA_FRM BIT(1)
8137 #define MAC_AX_CH_INFO_CTRL_FRM BIT(2)
8138 #define MAC_AX_CH_INFO_MGNT_FRM BIT(3)
8139 	u8 bmp_filter;
8140 	u8 dis_to;
8141 #define MAC_AX_CH_IFNO_SEG_128 0
8142 #define MAC_AX_CH_IFNO_SEG_256 1
8143 #define MAC_AX_CH_IFNO_SEG_512 2
8144 #define MAC_AX_CH_IFNO_SEG_1024 3
8145 	u8 seg_size;
8146 };
8147 
8148 /**
8149  * @struct mac_ax_dfs
8150  * @brief mac_ax_dfs
8151  *
8152  * @var mac_ax_dfs::num_th
8153  * Please Place Description here.
8154  * @var mac_ax_dfs::en_timeout
8155  * Please Place Description here.
8156  */
8157 struct mac_ax_dfs {
8158 #define MAC_AX_DFS_TH_29 0
8159 #define MAC_AX_DFS_TH_61 1
8160 #define MAC_AX_DFS_TH_93 2
8161 #define MAC_AX_DFS_TH_125 3
8162 	u8 num_th;
8163 	u8 en_timeout;
8164 };
8165 
8166 /**
8167  * @struct mac_ax_ppdu_rpt
8168  * @brief mac_ax_ppdu_rpt
8169  *
8170  * @var mac_ax_ppdu_rpt::rx_cnt_ptr
8171  * Please Place Description here.
8172  * @var mac_ax_ppdu_rpt::plcp_ptr
8173  * Please Place Description here.
8174  * @var mac_ax_ppdu_rpt::phy_st_ptr
8175  * Please Place Description here.
8176  * @var mac_ax_ppdu_rpt::phy_st_size
8177  * Please Place Description here.
8178  * @var mac_ax_ppdu_rpt::rx_cnt_size
8179  * Please Place Description here.
8180  * @var mac_ax_ppdu_rpt::lsig_len
8181  * Please Place Description here.
8182  * @var mac_ax_ppdu_rpt::service
8183  * Please Place Description here.
8184  * @var mac_ax_ppdu_rpt::usr_num
8185  * Please Place Description here.
8186  * @var mac_ax_ppdu_rpt::fw_def
8187  * Please Place Description here.
8188  * @var mac_ax_ppdu_rpt::is_to_self
8189  * Please Place Description here.
8190  * @var mac_ax_ppdu_rpt::plcp_size
8191  * Please Place Description here.
8192  * @var mac_ax_ppdu_rpt::usr
8193  * Please Place Description here.
8194  */
8195 struct mac_ax_ppdu_rpt {
8196 #define MAC_AX_PPDU_MAX_USR 4
8197 	u8 *rx_cnt_ptr;
8198 	u8 *plcp_ptr;
8199 	u8 *phy_st_ptr;
8200 	u32 phy_st_size;
8201 	u32 rx_cnt_size;
8202 	u16 lsig_len;
8203 	u16 service;
8204 	u8 usr_num;
8205 	u8 fw_def;
8206 	u8 is_to_self;
8207 	u8 plcp_size;
8208 	struct mac_ax_ppdu_usr usr[MAC_AX_PPDU_MAX_USR];
8209 };
8210 
8211 /**
8212  * @struct mac_ax_phy_rpt_cfg
8213  * @brief mac_ax_phy_rpt_cfg
8214  *
8215  * @var mac_ax_phy_rpt_cfg::type
8216  * Please Place Description here.
8217  * @var mac_ax_phy_rpt_cfg::en
8218  * Please Place Description here.
8219  * @var mac_ax_phy_rpt_cfg::dest
8220  * Please Place Description here.
8221  * @var mac_ax_phy_rpt_cfg::ppdu
8222  * Please Place Description here.
8223  * @var mac_ax_phy_rpt_cfg::chif
8224  * Please Place Description here.
8225  * @var mac_ax_phy_rpt_cfg::dfs
8226  * Please Place Description here.
8227  * @var mac_ax_phy_rpt_cfg::u
8228  * Please Place Description here.
8229  */
8230 struct mac_ax_phy_rpt_cfg {
8231 	enum mac_ax_phy_rpt type;
8232 	u8 en;
8233 #define MAC_AX_PRPT_DEST_HOST 0
8234 #define MAC_AX_PRPT_DEST_WLCPU 1
8235 	u8 dest;
8236 	union {
8237 		struct mac_ax_ppdu_stat ppdu;
8238 		struct mac_ax_ch_info chif;
8239 		struct mac_ax_dfs dfs;
8240 	} u;
8241 };
8242 
8243 /**
8244  * @struct mac_ax_pkt_drop_info
8245  * @brief mac_ax_pkt_drop_info
8246  *
8247  * @var mac_ax_pkt_drop_info::sel
8248  * Please Place Description here.
8249  * @var mac_ax_pkt_drop_info::macid
8250  * Please Place Description here.
8251  * @var mac_ax_pkt_drop_info::band
8252  * Please Place Description here.
8253  * @var mac_ax_pkt_drop_info::port
8254  * Please Place Description here.
8255  * @var mac_ax_pkt_drop_info::mbssid
8256  * Please Place Description here.
8257  */
8258 struct mac_ax_pkt_drop_info {
8259 	enum mac_ax_pkt_drop_sel sel;
8260 	u8 macid;
8261 	u8 band;
8262 	u8 port;
8263 	u8 mbssid;
8264 };
8265 
8266 /**
8267  * @struct mac_ax_ch_busy_cnt_ref
8268  * @brief mac_ax_ch_busy_cnt_ref
8269  *
8270  * @var mac_ax_ch_busy_cnt_ref::basic_nav
8271  * Please Place Description here.
8272  * @var mac_ax_ch_busy_cnt_ref::intra_nav
8273  * Please Place Description here.
8274  * @var mac_ax_ch_busy_cnt_ref::data_on
8275  * Please Place Description here.
8276  * @var mac_ax_ch_busy_cnt_ref::edcca_p20
8277  * Please Place Description here.
8278  * @var mac_ax_ch_busy_cnt_ref::cca_p20
8279  * Please Place Description here.
8280  * @var mac_ax_ch_busy_cnt_ref::cca_s20
8281  * Please Place Description here.
8282  * @var mac_ax_ch_busy_cnt_ref::cca_s40
8283  * Please Place Description here.
8284  * @var mac_ax_ch_busy_cnt_ref::cca_s80
8285  * Please Place Description here.
8286  */
8287 struct mac_ax_ch_busy_cnt_ref {
8288 	u16 basic_nav:1;
8289 	u16 intra_nav:1;
8290 	u16 data_on:1;
8291 	u16 edcca_p20:1;
8292 	u16 cca_p20:1;
8293 	u16 cca_s20:1;
8294 	u16 cca_s40:1;
8295 	u16 cca_s80:1;
8296 	u16 phy_txon:1;
8297 	u16 rsvd:7;
8298 };
8299 
8300 /**
8301  * @struct mac_ax_tx_queue_empty
8302  * @brief mac_ax_tx_queue_empty
8303  *
8304  * @var mac_ax_tx_queue_empty::macid_txq_empty
8305  * Please Place Description here.
8306  * @var mac_ax_tx_queue_empty::band0_mgnt_empty
8307  * Please Place Description here.
8308  * @var mac_ax_tx_queue_empty::band1_mgnt_empty
8309  * Please Place Description here.
8310  * @var mac_ax_tx_queue_empty::fw_txq_empty
8311  * Please Place Description here.
8312  * @var mac_ax_tx_queue_empty::h2c_empty
8313  * Please Place Description here.
8314  * @var mac_ax_tx_queue_empty::others_empty
8315  * Please Place Description here.
8316  * @var mac_ax_tx_queue_empty::rsvd
8317  * Please Place Description here.
8318  */
8319 struct mac_ax_tx_queue_empty {
8320 #define WDE_QEMPTY_ACQ_NUM_MAX 16 /* shall be the max num of all chip */
8321 	u8 macid_txq_empty[WDE_QEMPTY_ACQ_NUM_MAX];
8322 	u8 band0_mgnt_empty:1;
8323 	u8 band1_mgnt_empty:1;
8324 	u8 fw_txq_empty:1;
8325 	u8 h2c_empty:1;
8326 	u8 others_empty:1;
8327 	u8 rsvd:3;
8328 };
8329 
8330 /**
8331  * @struct mac_ax_rx_queue_empty
8332  * @brief mac_ax_rx_queue_empty
8333  *
8334  * @var mac_ax_rx_queue_empty::band0_rxq_empty
8335  * Please Place Description here.
8336  * @var mac_ax_rx_queue_empty::band1_rxq_empty
8337  * Please Place Description here.
8338  * @var mac_ax_rx_queue_empty::c2h_empty
8339  * Please Place Description here.
8340  * @var mac_ax_rx_queue_empty::others_empty
8341  * Please Place Description here.
8342  * @var mac_ax_rx_queue_empty::rsvd
8343  * Please Place Description here.
8344  */
8345 struct mac_ax_rx_queue_empty {
8346 	u8 band0_rxq_empty:1;
8347 	u8 band1_rxq_empty:1;
8348 	u8 c2h_empty:1;
8349 	u8 others_empty:1;
8350 	u8 rsvd:4;
8351 };
8352 
8353 /**
8354  * @struct mac_ax_dbcc_info
8355  * @brief mac_ax_dbcc_info
8356  *
8357  * @var mac_ax_dbcc_info::ppdu_rpt_bkp
8358  * Please Place Description here.
8359  * @var mac_ax_dbcc_info::chinfo_bkp
8360  * Please Place Description here.
8361  * @var mac_ax_dbcc_info::dbcc_role_cnt
8362  * Please Place Description here.
8363  * @var mac_ax_dbcc_info::dbcc_wmm_type
8364  * Please Place Description here.
8365  * @var mac_ax_dbcc_info::dbcc_wmm_bp
8366  * Please Place Description here.
8367  * @var mac_ax_dbcc_info::bkp_flag
8368  * Please Place Description here.
8369  * @var mac_ax_dbcc_info::dbcc_wmm_list
8370  * Please Place Description here.
8371  */
8372 struct mac_ax_dbcc_info {
8373 	struct mac_ax_phy_rpt_cfg ppdu_rpt_bkp[MAC_AX_BAND_NUM];
8374 	struct mac_ax_phy_rpt_cfg chinfo_bkp[MAC_AX_BAND_NUM];
8375 	u8 dbcc_role_cnt[MAC_AX_DBCC_WMM_MAX];
8376 	u8 dbcc_wmm_type[MAC_AX_DBCC_WMM_MAX]; // enum mac_ax_net_type
8377 	u8 dbcc_wmm_bp[MAC_AX_DBCC_WMM_MAX];
8378 	u8 bkp_flag[MAC_AX_BAND_NUM];
8379 	u8 *dbcc_wmm_list;
8380 };
8381 
8382 /*--------------------Define TF2PCMD related struct --------------------------*/
8383 
8384 /**
8385  * @struct mac_ax_rura_report
8386  * @brief mac_ax_rura_report
8387  *
8388  * @var mac_ax_rura_report::rt_tblcol
8389  * Please Place Description here.
8390  * @var mac_ax_rura_report::prtl_alloc
8391  * Please Place Description here.
8392  * @var mac_ax_rura_report::rate_chg
8393  * Please Place Description here.
8394  */
8395 struct mac_ax_rura_report {
8396 	u8 rt_tblcol: 6;
8397 	u8 prtl_alloc: 1;
8398 	u8 rate_chg: 1;
8399 };
8400 
8401 //for ul rua output
8402 
8403 /**
8404  * @struct mac_ax_ulru_out_sta_ent
8405  * @brief mac_ax_ulru_out_sta_ent
8406  *
8407  * @var mac_ax_ulru_out_sta_ent::dropping
8408  * Please Place Description here.
8409  * @var mac_ax_ulru_out_sta_ent::tgt_rssi
8410  * Please Place Description here.
8411  * @var mac_ax_ulru_out_sta_ent::mac_id
8412  * Please Place Description here.
8413  * @var mac_ax_ulru_out_sta_ent::ru_pos
8414  * Please Place Description here.
8415  * @var mac_ax_ulru_out_sta_ent::coding
8416  * Please Place Description here.
8417  * @var mac_ax_ulru_out_sta_ent::vip_flag
8418  * Please Place Description here.
8419  * @var mac_ax_ulru_out_sta_ent::rsvd1
8420  * Please Place Description here.
8421  * @var mac_ax_ulru_out_sta_ent::bsr_length
8422  * Please Place Description here.
8423  * @var mac_ax_ulru_out_sta_ent::rsvd2
8424  * Please Place Description here.
8425  * @var mac_ax_ulru_out_sta_ent::rate
8426  * Please Place Description here.
8427  * @var mac_ax_ulru_out_sta_ent::rpt
8428  * Please Place Description here.
8429  */
8430 struct mac_ax_ulru_out_sta_ent {
8431 	u8 dropping: 1;
8432 	u8 tgt_rssi: 7;
8433 	u8 mac_id;
8434 	u8 ru_pos;
8435 	u8 coding: 1;
8436 	u8 vip_flag: 1;
8437 	u8 rsvd1: 6;
8438 	u16 bsr_length: 15;
8439 	u16 rsvd2: 1;
8440 	struct mac_ax_ru_rate_ent rate;
8441 	struct mac_ax_rura_report rpt;
8442 };
8443 
8444 /**
8445  * @struct mac_ax_ulrua_output
8446  * @brief mac_ax_ulrua_output
8447  *
8448  * @var mac_ax_ulrua_output::ru2su
8449  * Please Place Description here.
8450  * @var mac_ax_ulrua_output::ppdu_bw
8451  * Please Place Description here.
8452  * @var mac_ax_ulrua_output::gi_ltf
8453  * Please Place Description here.
8454  * @var mac_ax_ulrua_output::stbc
8455  * Please Place Description here.
8456  * @var mac_ax_ulrua_output::doppler
8457  * Please Place Description here.
8458  * @var mac_ax_ulrua_output::n_ltf_and_ma
8459  * Please Place Description here.
8460  * @var mac_ax_ulrua_output::sta_num
8461  * Please Place Description here.
8462  * @var mac_ax_ulrua_output::rsvd1
8463  * Please Place Description here.
8464  * @var mac_ax_ulrua_output::rf_gain_fix
8465  * Please Place Description here.
8466  * @var mac_ax_ulrua_output::rf_gain_idx
8467  * Please Place Description here.
8468  * @var mac_ax_ulrua_output::tb_t_pe_nom
8469  * Please Place Description here.
8470  * @var mac_ax_ulrua_output::rsvd2
8471  * Please Place Description here.
8472  * @var mac_ax_ulrua_output::grp_mode
8473  * Please Place Description here.
8474  * @var mac_ax_ulrua_output::grp_id
8475  * Please Place Description here.
8476  * @var mac_ax_ulrua_output::fix_mode
8477  * Please Place Description here.
8478  * @var mac_ax_ulrua_output::rsvd3
8479  * Please Place Description here.
8480  * @var mac_ax_ulrua_output::sta
8481  * Please Place Description here.
8482  */
8483 struct mac_ax_ulrua_output {
8484 	u8 ru2su: 1;
8485 	u8 ppdu_bw: 2;
8486 	u8 gi_ltf: 3;
8487 	u8 stbc: 1;
8488 	u8 doppler: 1;
8489 	u8 n_ltf_and_ma: 3;
8490 	u8 sta_num: 4;
8491 	u8 rsvd1: 1;
8492 	u16 rf_gain_fix: 1;
8493 	u16 rf_gain_idx: 10;
8494 	u16 tb_t_pe_nom: 2;
8495 	u16 rsvd2: 3;
8496 
8497 	u32 grp_mode: 1;
8498 	u32 grp_id: 6;
8499 	u32 fix_mode: 1;
8500 	u32 rsvd3: 24;
8501 	struct mac_ax_ulru_out_sta_ent sta[MAC_AX_MAX_RU_NUM];
8502 };
8503 
8504 /**
8505  * @struct mac_ul_macid_info
8506  * @brief mac_ul_macid_info
8507  *
8508  * @var mac_ul_macid_info::macid
8509  * Please Place Description here.
8510  * @var mac_ul_macid_info::pref_AC
8511  * Please Place Description here.
8512  * @var mac_ul_macid_info::rsvd
8513  * Please Place Description here.
8514  */
8515 struct mac_ul_macid_info {
8516 	u8 macid;
8517 	u8 pref_AC:2;
8518 	u8 rsvd:6;
8519 };
8520 
8521 /**
8522  * @struct mac_ul_mode_cfg
8523  * @brief mac_ul_mode_cfg
8524  *
8525  * @var mac_ul_mode_cfg::mode
8526  * Please Place Description here.
8527  * @var mac_ul_mode_cfg::interval
8528  * Please Place Description here.
8529  * @var mac_ul_mode_cfg::bsr_thold
8530  * Please Place Description here.
8531  * @var mac_ul_mode_cfg::storemode
8532  * Please Place Description here.
8533  * @var mac_ul_mode_cfg::rsvd
8534  * Please Place Description here.
8535  */
8536 struct mac_ul_mode_cfg {
8537 	u32 mode:2; /* 0: peoridic ; 1: normal ; 2: non_tgr */
8538 	u32 interval:6; /* unit: sec */
8539 	u32 bsr_thold:8;
8540 	u32 storemode:2;
8541 	u32 rsvd:14;
8542 };
8543 
8544 /**
8545  * @struct mac_ax_ul_fixinfo
8546  * @brief mac_ax_ul_fixinfo
8547  *
8548  * @var mac_ax_ul_fixinfo::tbl_hdr
8549  * Please Place Description here.
8550  * @var mac_ax_ul_fixinfo::cfg
8551  * Please Place Description here.
8552  * @var mac_ax_ul_fixinfo::ndpa_dur
8553  * Please Place Description here.
8554  * @var mac_ax_ul_fixinfo::tf_type
8555  * Please Place Description here.
8556  * @var mac_ax_ul_fixinfo::sig_ta_pkten
8557  * Please Place Description here.
8558  * @var mac_ax_ul_fixinfo::sig_ta_pktsc
8559  * Please Place Description here.
8560  * @var mac_ax_ul_fixinfo::murts_flag
8561  * Please Place Description here.
8562  * @var mac_ax_ul_fixinfo::ndpa
8563  * Please Place Description here.
8564  * @var mac_ax_ul_fixinfo::snd_pkt_sel
8565  * Please Place Description here.
8566  * @var mac_ax_ul_fixinfo::gi_ltf
8567  * Please Place Description here.
8568  * @var mac_ax_ul_fixinfo::data_rate
8569  * Please Place Description here.
8570  * @var mac_ax_ul_fixinfo::data_er
8571  * Please Place Description here.
8572  * @var mac_ax_ul_fixinfo::data_bw
8573  * Please Place Description here.
8574  * @var mac_ax_ul_fixinfo::data_stbc
8575  * Please Place Description here.
8576  * @var mac_ax_ul_fixinfo::data_ldpc
8577  * Please Place Description here.
8578  * @var mac_ax_ul_fixinfo::data_dcm
8579  * Please Place Description here.
8580  * @var mac_ax_ul_fixinfo::apep_len
8581  * Please Place Description here.
8582  * @var mac_ax_ul_fixinfo::more_tf
8583  * Please Place Description here.
8584  * @var mac_ax_ul_fixinfo::data_bw_er
8585  * Please Place Description here.
8586  * @var mac_ax_ul_fixinfo::istwt
8587  * Please Place Description here.
8588  * @var mac_ax_ul_fixinfo::rsvd0
8589  * Please Place Description here.
8590  * @var mac_ax_ul_fixinfo::multiport_id
8591  * Please Place Description here.
8592  * @var mac_ax_ul_fixinfo::mbssid
8593  * Please Place Description here.
8594  * @var mac_ax_ul_fixinfo::txpwr_mode
8595  * Please Place Description here.
8596  * @var mac_ax_ul_fixinfo::ulfix_usage
8597  * Please Place Description here.
8598  * @var mac_ax_ul_fixinfo::twtgrp_stanum_sel
8599  * Please Place Description here.
8600  * @var mac_ax_ul_fixinfo::store_idx
8601  * Please Place Description here.
8602  * @var mac_ax_ul_fixinfo::rsvd1
8603  * Please Place Description here.
8604  * @var mac_ax_ul_fixinfo::sta
8605  * Please Place Description here.
8606  * @var mac_ax_ul_fixinfo::ulrua
8607  * Please Place Description here.
8608  */
8609 struct mac_ax_ul_fixinfo {
8610 	struct mac_ax_tbl_hdr tbl_hdr;
8611 	struct mac_ul_mode_cfg cfg;
8612 
8613 	u32 ndpa_dur:16;
8614 	u32 tf_type:3;
8615 	u32 sig_ta_pkten:1;
8616 	u32 sig_ta_pktsc:4;
8617 	u32 murts_flag:1;
8618 	u32 ndpa:2;
8619 	u32 snd_pkt_sel:2;
8620 	u32 gi_ltf:3;
8621 
8622 	u32 data_rate:9;
8623 	u32 data_er:1;
8624 	u32 data_bw:2;
8625 	u32 data_stbc:2;
8626 	u32 data_ldpc:1;
8627 	u32 data_dcm:1;
8628 	u32 apep_len:12;
8629 	u32 more_tf:1;
8630 	u32 data_bw_er:1;
8631 	u32 istwt:1;
8632 	u32 rsvd0:1;
8633 
8634 	u32 multiport_id:3;
8635 	u32 mbssid:4;
8636 	u32 txpwr_mode:3;
8637 	u32 ulfix_usage:3;
8638 	u32 twtgrp_stanum_sel:2;
8639 	u32 store_idx:4;
8640 	u32 rsvd1:13;
8641 	struct mac_ul_macid_info sta[4];
8642 	struct mac_ax_ulrua_output ulrua;
8643 };
8644 
8645 /**
8646  * @struct mac_ax_mudecision_para
8647  * @brief mac_ax_mudecision_para
8648  *
8649  * @var mac_ax_mudecision_para::tbl_hdr
8650  * Please Place Description here.
8651  * @var mac_ax_mudecision_para::mu_thold
8652  * Please Place Description here.
8653  * @var mac_ax_mudecision_para::bypass_thold
8654  * Please Place Description here.
8655  * @var mac_ax_mudecision_para::bypass_tp
8656  * Please Place Description here.
8657  */
8658 struct mac_ax_mudecision_para {
8659 	struct mac_ax_tbl_hdr tbl_hdr;
8660 	u32 mu_thold:30;
8661 	u32 bypass_thold:1; //macid bypass tx time thold check
8662 	u32 bypass_tp:1; //T1 unit:us
8663 	u32 init_rate: 4;
8664 	u32 retry_th: 3;
8665 	u32 rsvd: 25;
8666 };
8667 
8668 /**
8669  * @struct mac_ax_protect_rsp_field
8670  * @brief mac_ax_protect_rsp_field
8671  *
8672  * @var mac_ax_protect_rsp_field::protect
8673  * Please Place Description here.
8674  * @var mac_ax_protect_rsp_field::rsp
8675  * Please Place Description here.
8676  */
8677 struct mac_ax_protect_rsp_field {
8678 	u8 protect: 4;
8679 	u8 rsp: 4;
8680 };
8681 
8682 /**
8683  * @struct mac_ax_mu_protect_rsp_type
8684  * @brief mac_ax_mu_protect_rsp_type
8685  *
8686  * @var mac_ax_mu_protect_rsp_type::byte_type
8687  * Please Place Description here.
8688  * @var mac_ax_mu_protect_rsp_type::feld_type
8689  * Please Place Description here.
8690  * @var mac_ax_mu_protect_rsp_type::u
8691  * Please Place Description here.
8692  */
8693 struct mac_ax_mu_protect_rsp_type {
8694 	union {
8695 		u8 byte_type;
8696 		struct mac_ax_protect_rsp_field feld_type;
8697 	} u;
8698 };
8699 
8700 /**
8701  * @struct mac_ax_mu_sta_upd
8702  * @brief mac_ax_mu_sta_upd
8703  *
8704  * @var mac_ax_mu_sta_upd::macid
8705  * Please Place Description here.
8706  * @var mac_ax_mu_sta_upd::mu_idx
8707  * Please Place Description here.
8708  * @var mac_ax_mu_sta_upd::prot_rsp_type
8709  * Please Place Description here.
8710  * @var mac_ax_mu_sta_upd::mugrp_bitmap
8711  * Please Place Description here.
8712  * @var mac_ax_mu_sta_upd::dis_256q
8713  * Please Place Description here.
8714  * @var mac_ax_mu_sta_upd::dis_1024q
8715  * Please Place Description here.
8716  * @var mac_ax_mu_sta_upd::rsvd
8717  * Please Place Description here.
8718  */
8719 struct mac_ax_mu_sta_upd {
8720 	u8 macid;
8721 	u8 mu_idx;
8722 	struct mac_ax_mu_protect_rsp_type prot_rsp_type[5];
8723 	u8 mugrp_bitmap: 5;
8724 	u8 dis_256q: 1;
8725 	u8 dis_1024q: 1;
8726 	u8 rsvd: 1;
8727 };
8728 
8729 /**
8730  * @struct mac_ax_wlaninfo_get
8731  * @brief mac_ax_wlaninfo_get
8732  *
8733  * @var mac_ax_wlaninfo_get::info_sel
8734  * Please Place Description here.
8735  * @var mac_ax_wlaninfo_get::rsvd0
8736  * Please Place Description here.
8737  * @var mac_ax_wlaninfo_get::argv0
8738  * Please Place Description here.
8739  * @var mac_ax_wlaninfo_get::argv1
8740  * Please Place Description here.
8741  * @var mac_ax_wlaninfo_get::argv2
8742  * Please Place Description here.
8743  * @var mac_ax_wlaninfo_get::argv3
8744  * Please Place Description here.
8745  * @var mac_ax_wlaninfo_get::argv4
8746  * Please Place Description here.
8747  * @var mac_ax_wlaninfo_get::argv5
8748  * Please Place Description here.
8749  * @var mac_ax_wlaninfo_get::argv6
8750  * Please Place Description here.
8751  * @var mac_ax_wlaninfo_get::argv7
8752  * Please Place Description here.
8753  * @var mac_ax_wlaninfo_get::rsvd1
8754  * Please Place Description here.
8755  */
8756 struct mac_ax_wlaninfo_get {
8757 	u32 info_sel:4;
8758 	u32 rsvd0:4;
8759 	u32 argv0:8;
8760 	u32 argv1:8;
8761 	u32 argv2:8;
8762 	u32 argv3:8;
8763 	u32 argv4:8;
8764 	u32 argv5:8;
8765 	u32 argv6:8;
8766 	u32 argv7:8;
8767 	u32 rsvd1:24;
8768 };
8769 
8770 /**
8771  * @struct mac_ax_ccxrpt
8772  * @brief mac_ax_ccxrpt
8773  *
8774  * @var mac_ax_ccxrpt::macid
8775  * Please Place Description here.
8776  * @var mac_ax_ccxrpt::tx_state
8777  * Please Place Description here.
8778  * @var mac_ax_ccxrpt::sw_define
8779  * Please Place Description here.
8780  * @var mac_ax_ccxrpt::pkt_ok_num
8781  * Please Place Description here.
8782  * @var mac_ax_ccxrpt::rsvd0
8783  * Please Place Description here.
8784  */
8785 struct mac_ax_ccxrpt {
8786 	u32 macid:7;
8787 	u32 tx_state:2;
8788 	u32 sw_define:4;
8789 	u32 pkt_ok_num:8;
8790 	u32 data_txcnt:6;
8791 	u32 rsvd0:5;
8792 };
8793 
8794 /**
8795  * @struct mac_ax_dumpwlanc
8796  * @brief mac_ax_dumpwlanc
8797  *
8798  * @var mac_ax_dumpwlanc::cmdid
8799  * Please Place Description here.
8800  * @var mac_ax_dumpwlanc::rsvd0
8801  * Please Place Description here.
8802  */
8803 struct mac_ax_dumpwlanc {
8804 	u32 cmdid:8;
8805 	u32 rsvd0:24;
8806 };
8807 
8808 /**
8809  * @struct mac_ax_dumpwlans
8810  * @brief mac_ax_dumpwlans
8811  *
8812  * @var mac_ax_dumpwlans::cmdid
8813  * Please Place Description here.
8814  * @var mac_ax_dumpwlans::macid_grp
8815  * Please Place Description here.
8816  * @var mac_ax_dumpwlans::rsvd0
8817  * Please Place Description here.
8818  */
8819 struct mac_ax_dumpwlans {
8820 	u32 cmdid:8;
8821 	u32 macid_grp:8;
8822 	u32 rsvd0:16;
8823 };
8824 
8825 /**
8826  * @struct mac_ax_dumpwland
8827  * @brief mac_ax_dumpwland
8828  *
8829  * @var mac_ax_dumpwland::cmdid
8830  * Please Place Description here.
8831  * @var mac_ax_dumpwland::grp_type
8832  * Please Place Description here.
8833  * @var mac_ax_dumpwland::grp_id
8834  * Please Place Description here.
8835  * @var mac_ax_dumpwland::muru
8836  * Please Place Description here.
8837  * @var mac_ax_dumpwland::macid
8838  * Please Place Description here.
8839  */
8840 struct mac_ax_dumpwland {
8841 	u32 cmdid:8;
8842 	u32 grp_type:8;
8843 	u32 grp_id:8;
8844 	u32 muru:8;
8845 	u8 macid[4];
8846 };
8847 
8848 /**
8849  * @struct mac_ax_fixmode_para
8850  * @brief mac_ax_fixmode_para
8851  *
8852  * @var mac_ax_fixmode_para::tbl_hdr
8853  * Please Place Description here.
8854  * @var mac_ax_fixmode_para::force_sumuru_en
8855  * Please Place Description here.
8856  * @var mac_ax_fixmode_para::forcesu
8857  * Please Place Description here.
8858  * @var mac_ax_fixmode_para::forcemu
8859  * Please Place Description here.
8860  * @var mac_ax_fixmode_para::forceru
8861  * Please Place Description here.
8862  * @var mac_ax_fixmode_para::fix_fe_su_en
8863  * Please Place Description here.
8864  * @var mac_ax_fixmode_para::fix_fe_vhtmu_en
8865  * Please Place Description here.
8866  * @var mac_ax_fixmode_para::fix_fe_hemu_en
8867  * Please Place Description here.
8868  * @var mac_ax_fixmode_para::fix_fe_heru_en
8869  * Please Place Description here.
8870  * @var mac_ax_fixmode_para::fix_fe_ul_en
8871  * Please Place Description here.
8872  * @var mac_ax_fixmode_para::fix_frame_seq_su
8873  * Please Place Description here.
8874  * @var mac_ax_fixmode_para::fix_frame_seq_vhtmu
8875  * Please Place Description here.
8876  * @var mac_ax_fixmode_para::fix_frame_seq_hemu
8877  * Please Place Description here.
8878  * @var mac_ax_fixmode_para::fix_frame_seq_heru
8879  * Please Place Description here.
8880  * @var mac_ax_fixmode_para::fix_frame_seq_ul
8881  * Please Place Description here.
8882  * @var mac_ax_fixmode_para::is_dlruhwgrp
8883  * Please Place Description here.
8884  * @var mac_ax_fixmode_para::is_ulruhwgrp
8885  * Please Place Description here.
8886  * @var mac_ax_fixmode_para::prot_type_su
8887  * Please Place Description here.
8888  * @var mac_ax_fixmode_para::prot_type_vhtmu
8889  * Please Place Description here.
8890  * @var mac_ax_fixmode_para::resp_type_vhtmu
8891  * Please Place Description here.
8892  * @var mac_ax_fixmode_para::prot_type_hemu
8893  * Please Place Description here.
8894  * @var mac_ax_fixmode_para::resp_type_hemu
8895  * Please Place Description here.
8896  * @var mac_ax_fixmode_para::prot_type_heru
8897  * Please Place Description here.
8898  * @var mac_ax_fixmode_para::resp_type_heru
8899  * Please Place Description here.
8900  * @var mac_ax_fixmode_para::ul_prot_type
8901  * Please Place Description here.
8902  * @var mac_ax_fixmode_para::rugrpid
8903  * Please Place Description here.
8904  * @var mac_ax_fixmode_para::mugrpid
8905  * Please Place Description here.
8906  * @var mac_ax_fixmode_para::ulgrpid
8907  * Please Place Description here.
8908  * @var mac_ax_fixmode_para::rsvd1
8909  * Please Place Description here.
8910  */
8911 struct mac_ax_fixmode_para {
8912 	struct mac_ax_tbl_hdr tbl_hdr;
8913 	u32 force_sumuru_en: 1;
8914 	u32 forcesu: 1;
8915 	u32 forcemu: 1;
8916 	u32 forceru: 1;
8917 	u32 fix_fe_su_en:1;
8918 	u32 fix_fe_vhtmu_en:1;
8919 	u32 fix_fe_hemu_en:1;
8920 	u32 fix_fe_heru_en:1;
8921 	u32 fix_fe_ul_en:1;
8922 	u32 fix_frame_seq_su: 1;
8923 	u32 fix_frame_seq_vhtmu: 1;
8924 	u32 fix_frame_seq_hemu: 1;
8925 	u32 fix_frame_seq_heru: 1;
8926 	u32 fix_frame_seq_ul: 1;
8927 	u32 is_dlruhwgrp: 1;
8928 	u32 is_ulruhwgrp:1;
8929 	u32 prot_type_su: 4;
8930 	u32 prot_type_vhtmu: 4;
8931 	u32 resp_type_vhtmu: 4;
8932 	u32 prot_type_hemu: 4;
8933 	u32 resp_type_hemu: 4;
8934 	u32 prot_type_heru: 4;
8935 	u32 resp_type_heru: 4;
8936 	u32 ul_prot_type: 4;
8937 	u32 rugrpid: 5;
8938 	u32 mugrpid:5;
8939 	u32 ulgrpid:5;
8940 	u32 rsvd1:1;
8941 };
8942 
8943 /**
8944  * @struct mac_ax_tf_ba
8945  * @brief mac_ax_tf_ba
8946  *
8947  * @var mac_ax_tf_ba::fix_ba
8948  * Please Place Description here.
8949  * @var mac_ax_tf_ba::ru_psd
8950  * Please Place Description here.
8951  * @var mac_ax_tf_ba::tf_rate
8952  * Please Place Description here.
8953  * @var mac_ax_tf_ba::rf_gain_fix
8954  * Please Place Description here.
8955  * @var mac_ax_tf_ba::rf_gain_idx
8956  * Please Place Description here.
8957  * @var mac_ax_tf_ba::tb_ppdu_bw
8958  * Please Place Description here.
8959  * @var mac_ax_tf_ba::rate
8960  * Please Place Description here.
8961  * @var mac_ax_tf_ba::gi_ltf
8962  * Please Place Description here.
8963  * @var mac_ax_tf_ba::doppler
8964  * Please Place Description here.
8965  * @var mac_ax_tf_ba::stbc
8966  * Please Place Description here.
8967  * @var mac_ax_tf_ba::sta_coding
8968  * Please Place Description here.
8969  * @var mac_ax_tf_ba::tb_t_pe_nom
8970  * Please Place Description here.
8971  * @var mac_ax_tf_ba::pr20_bw_en
8972  * Please Place Description here.
8973  * @var mac_ax_tf_ba::ma_type
8974  * Please Place Description here.
8975  * @var mac_ax_tf_ba::rsvd1
8976  * Please Place Description here.
8977  */
8978 struct mac_ax_tf_ba {
8979 	u32 fix_ba:1;
8980 	u32 ru_psd:9;
8981 	u32 tf_rate:9;
8982 	u32 rf_gain_fix:1;
8983 	u32 rf_gain_idx:10;
8984 	u32 tb_ppdu_bw:2;
8985 	struct mac_ax_ru_rate_ent rate;
8986 	u8 gi_ltf:3;
8987 	u8 doppler:1;
8988 	u8 stbc:1;
8989 	u8 sta_coding:1;
8990 	u8 tb_t_pe_nom:2;
8991 	u8 pr20_bw_en:1;
8992 	u8 ma_type: 1;
8993 	u8 rsvd1: 6;
8994 };
8995 
8996 /**
8997  * @struct mac_ax_ba_infotbl
8998  * @brief mac_ax_ba_infotbl
8999  *
9000  * @var mac_ax_ba_infotbl::tbl_hdr
9001  * Please Place Description here.
9002  * @var mac_ax_ba_infotbl::tfba
9003  * Please Place Description here.
9004  */
9005 struct mac_ax_ba_infotbl {
9006 	struct mac_ax_tbl_hdr tbl_hdr;
9007 	struct mac_ax_tf_ba tfba;
9008 };
9009 
9010 /**
9011  * @struct mac_ax_dl_ru_grptbl
9012  * @brief mac_ax_dl_ru_grptbl
9013  *
9014  * @var mac_ax_dl_ru_grptbl::tbl_hdr
9015  * Please Place Description here.
9016  * @var mac_ax_dl_ru_grptbl::ppdu_bw
9017  * Please Place Description here.
9018  * @var mac_ax_dl_ru_grptbl::tx_pwr
9019  * Please Place Description here.
9020  * @var mac_ax_dl_ru_grptbl::pwr_boost_fac
9021  * Please Place Description here.
9022  * @var mac_ax_dl_ru_grptbl::fix_mode_flag
9023  * Please Place Description here.
9024  * @var mac_ax_dl_ru_grptbl::rsvd1
9025  * Please Place Description here.
9026  * @var mac_ax_dl_ru_grptbl::rsvd
9027  * Please Place Description here.
9028  * @var mac_ax_dl_ru_grptbl::tf
9029  * Please Place Description here.
9030  */
9031 struct mac_ax_dl_ru_grptbl {
9032 	struct mac_ax_tbl_hdr tbl_hdr;
9033 	u16 ppdu_bw:2;
9034 	u16 tx_pwr:9;
9035 	u16 pwr_boost_fac:5;
9036 	u8 fix_mode_flag:1;
9037 	u8 rsvd1:7;
9038 	u8 rsvd;
9039 	struct mac_ax_tf_ba tf;
9040 };
9041 
9042 /**
9043  * @struct mac_ax_ul_ru_grptbl
9044  * @brief mac_ax_ul_ru_grptbl
9045  *
9046  * @var mac_ax_ul_ru_grptbl::tbl_hdr
9047  * Please Place Description here.
9048  * @var mac_ax_ul_ru_grptbl::grp_psd_max
9049  * Please Place Description here.
9050  * @var mac_ax_ul_ru_grptbl::grp_psd_min
9051  * Please Place Description here.
9052  * @var mac_ax_ul_ru_grptbl::tf_rate
9053  * Please Place Description here.
9054  * @var mac_ax_ul_ru_grptbl::fix_tf_rate
9055  * Please Place Description here.
9056  * @var mac_ax_ul_ru_grptbl::rsvd2
9057  * Please Place Description here.
9058  * @var mac_ax_ul_ru_grptbl::ppdu_bw
9059  * Please Place Description here.
9060  * @var mac_ax_ul_ru_grptbl::rf_gain_fix
9061  * Please Place Description here.
9062  * @var mac_ax_ul_ru_grptbl::rf_gain_idx
9063  * Please Place Description here.
9064  * @var mac_ax_ul_ru_grptbl::fix_mode_flag
9065  * Please Place Description here.
9066  * @var mac_ax_ul_ru_grptbl::rsvd1
9067  * Please Place Description here.
9068  */
9069 struct mac_ax_ul_ru_grptbl {
9070 	struct mac_ax_tbl_hdr tbl_hdr;
9071 	u32 grp_psd_max: 9;
9072 	u32 grp_psd_min: 9;
9073 	u32 tf_rate: 9;
9074 	u32 fix_tf_rate: 1;
9075 	u32 rsvd2: 4;
9076 	u16 ppdu_bw: 2;
9077 	u16 rf_gain_fix: 1;
9078 	u16 rf_gain_idx: 10;
9079 	u16 fix_mode_flag: 1;
9080 	u16 rsvd1: 2;
9081 };
9082 
9083 /**
9084  * @struct mac_ax_bb_stainfo
9085  * @brief mac_ax_bb_stainfo
9086  *
9087  * @var mac_ax_bb_stainfo::tbl_hdr
9088  * Please Place Description here.
9089  * @var mac_ax_bb_stainfo::gi_ltf_48spt
9090  * Please Place Description here.
9091  * @var mac_ax_bb_stainfo::gi_ltf_18spt
9092  * Please Place Description here.
9093  * @var mac_ax_bb_stainfo::rsvd3
9094  * Please Place Description here.
9095  * @var mac_ax_bb_stainfo::dlsu_info_en
9096  * Please Place Description here.
9097  * @var mac_ax_bb_stainfo::dlsu_bw
9098  * Please Place Description here.
9099  * @var mac_ax_bb_stainfo::dlsu_gi_ltf
9100  * Please Place Description here.
9101  * @var mac_ax_bb_stainfo::dlsu_doppler_ctrl
9102  * Please Place Description here.
9103  * @var mac_ax_bb_stainfo::dlsu_coding
9104  * Please Place Description here.
9105  * @var mac_ax_bb_stainfo::dlsu_txbf
9106  * Please Place Description here.
9107  * @var mac_ax_bb_stainfo::dlsu_stbc
9108  * Please Place Description here.
9109  * @var mac_ax_bb_stainfo::dl_fwcqi_flag
9110  * Please Place Description here.
9111  * @var mac_ax_bb_stainfo::dlru_ratetbl_ridx
9112  * Please Place Description here.
9113  * @var mac_ax_bb_stainfo::csi_info_bitmap
9114  * Please Place Description here.
9115  * @var mac_ax_bb_stainfo::dl_swgrp_bitmap
9116  * Please Place Description here.
9117  * @var mac_ax_bb_stainfo::dlsu_dcm
9118  * Please Place Description here.
9119  * @var mac_ax_bb_stainfo::rsvd1
9120  * Please Place Description here.
9121  * @var mac_ax_bb_stainfo::dlsu_rate
9122  * Please Place Description here.
9123  * @var mac_ax_bb_stainfo::dlsu_pwr
9124  * Please Place Description here.
9125  * @var mac_ax_bb_stainfo::rsvd2
9126  * Please Place Description here.
9127  * @var mac_ax_bb_stainfo::rsvd4
9128  * Please Place Description here.
9129  * @var mac_ax_bb_stainfo::ulsu_info_en
9130  * Please Place Description here.
9131  * @var mac_ax_bb_stainfo::ulsu_bw
9132  * Please Place Description here.
9133  * @var mac_ax_bb_stainfo::ulsu_gi_ltf
9134  * Please Place Description here.
9135  * @var mac_ax_bb_stainfo::ulsu_doppler_ctrl
9136  * Please Place Description here.
9137  * @var mac_ax_bb_stainfo::ulsu_dcm
9138  * Please Place Description here.
9139  * @var mac_ax_bb_stainfo::ulsu_ss
9140  * Please Place Description here.
9141  * @var mac_ax_bb_stainfo::ulsu_mcs
9142  * Please Place Description here.
9143  * @var mac_ax_bb_stainfo::ul_fwcqi_flag
9144  * Please Place Description here.
9145  * @var mac_ax_bb_stainfo::ulru_ratetbl_ridx
9146  * Please Place Description here.
9147  * @var mac_ax_bb_stainfo::ulsu_stbc
9148  * Please Place Description here.
9149  * @var mac_ax_bb_stainfo::ulsu_coding
9150  * Please Place Description here.
9151  * @var mac_ax_bb_stainfo::ulsu_rssi_m
9152  * Please Place Description here.
9153  * @var mac_ax_bb_stainfo::ul_swgrp_bitmap
9154  * Please Place Description here.
9155  */
9156 struct mac_ax_bb_stainfo {
9157 	struct mac_ax_tbl_hdr tbl_hdr;
9158 //sta capability
9159 	u8 gi_ltf_48spt:1;
9160 	u8 gi_ltf_18spt:1;
9161 	u8 rsvd3:6;
9162 //downlink su
9163 	u8 dlsu_info_en:1;
9164 	u8 dlsu_bw:2;
9165 	u8 dlsu_gi_ltf:3;
9166 	u8 dlsu_doppler_ctrl:2;
9167 	u8 dlsu_coding:1;
9168 	u8 dlsu_txbf:1;
9169 	u8 dlsu_stbc:1;
9170 	u8 dl_fwcqi_flag:1;
9171 	u8 dlru_ratetbl_ridx:4;
9172 	u8 csi_info_bitmap;
9173 	u32 dl_swgrp_bitmap;
9174 	u16 dlsu_dcm:1;
9175 	u16 rsvd1:6;
9176 	u16 dlsu_rate:9;
9177 	u8 dlsu_pwr:6;
9178 	u8 rsvd2:2;
9179 	u8 rsvd4;
9180 //uplink su
9181 	u8 ulsu_info_en:1;
9182 	u8 ulsu_bw:2;
9183 	u8 ulsu_gi_ltf:3;
9184 	u8 ulsu_doppler_ctrl:2;
9185 	u8 ulsu_dcm:1;
9186 	u8 ulsu_ss:3;
9187 	u8 ulsu_mcs:4;
9188 	u16 ul_fwcqi_flag:1;
9189 	u16 ulru_ratetbl_ridx:4;
9190 	u16 ulsu_stbc:1;
9191 	u16 ulsu_coding:1;
9192 	u16 ulsu_rssi_m:9;
9193 	u32 ul_swgrp_bitmap;
9194 //tb info
9195 };
9196 
9197 /**
9198  * @struct mac_ax_tf_depend_user_para
9199  * @brief mac_ax_tf_depend_user_para
9200  *
9201  * @var mac_ax_tf_depend_user_para::pref_AC
9202  * Please Place Description here.
9203  * @var mac_ax_tf_depend_user_para::rsvd
9204  * Please Place Description here.
9205  */
9206 struct mac_ax_tf_depend_user_para {
9207 	u8 pref_AC: 2;
9208 	u8 rsvd: 6;
9209 };
9210 
9211 /**
9212  * @struct mac_ax_tf_user_para
9213  * @brief mac_ax_tf_user_para
9214  *
9215  * @var mac_ax_tf_user_para::aid12
9216  * Please Place Description here.
9217  * @var mac_ax_tf_user_para::ul_mcs
9218  * Please Place Description here.
9219  * @var mac_ax_tf_user_para::macid
9220  * Please Place Description here.
9221  * @var mac_ax_tf_user_para::ru_pos
9222  * Please Place Description here.
9223  * @var mac_ax_tf_user_para::ul_fec_code
9224  * Please Place Description here.
9225  * @var mac_ax_tf_user_para::ul_dcm
9226  * Please Place Description here.
9227  * @var mac_ax_tf_user_para::ss_alloc
9228  * Please Place Description here.
9229  * @var mac_ax_tf_user_para::ul_tgt_rssi
9230  * Please Place Description here.
9231  * @var mac_ax_tf_user_para::rsvd
9232  * Please Place Description here.
9233  * @var mac_ax_tf_user_para::rsvd2
9234  * Please Place Description here.
9235  */
9236 struct mac_ax_tf_user_para {
9237 	u16 aid12: 12;
9238 	u16 ul_mcs: 4;
9239 	u8 macid;
9240 	u8 ru_pos;
9241 
9242 	u8 ul_fec_code: 1;
9243 	u8 ul_dcm: 1;
9244 	u8 ss_alloc: 6;
9245 	u8 ul_tgt_rssi: 7;
9246 	u8 rsvd: 1;
9247 	u16 rsvd2;
9248 };
9249 
9250 /**
9251  * @struct mac_ax_tf_pkt_para
9252  * @brief mac_ax_tf_pkt_para
9253  *
9254  * @var mac_ax_tf_pkt_para::ul_bw
9255  * Please Place Description here.
9256  * @var mac_ax_tf_pkt_para::gi_ltf
9257  * Please Place Description here.
9258  * @var mac_ax_tf_pkt_para::num_he_ltf
9259  * Please Place Description here.
9260  * @var mac_ax_tf_pkt_para::ul_stbc
9261  * Please Place Description here.
9262  * @var mac_ax_tf_pkt_para::doppler
9263  * Please Place Description here.
9264  * @var mac_ax_tf_pkt_para::ap_tx_power
9265  * Please Place Description here.
9266  * @var mac_ax_tf_pkt_para::rsvd0
9267  * Please Place Description here.
9268  * @var mac_ax_tf_pkt_para::user_num
9269  * Please Place Description here.
9270  * @var mac_ax_tf_pkt_para::pktnum
9271  * Please Place Description here.
9272  * @var mac_ax_tf_pkt_para::rsvd1
9273  * Please Place Description here.
9274  * @var mac_ax_tf_pkt_para::pri20_bitmap
9275  * Please Place Description here.
9276  * @var mac_ax_tf_pkt_para::user
9277  * Please Place Description here.
9278  * @var mac_ax_tf_pkt_para::dep_user
9279  * Please Place Description here.
9280  */
9281 struct mac_ax_tf_pkt_para {
9282 	u8 ul_bw: 2;
9283 	u8 gi_ltf: 2;
9284 	u8 num_he_ltf: 3;
9285 	u8 ul_stbc: 1;
9286 	u8 doppler: 1;
9287 	u8 ap_tx_power: 6;
9288 	u8 rsvd0: 1;
9289 	u8 user_num: 3;
9290 	u8 pktnum: 3;
9291 	u8 rsvd1: 2;
9292 	u8 pri20_bitmap;
9293 
9294 	struct mac_ax_tf_user_para user[MAC_AX_MAX_RU_NUM];
9295 	struct mac_ax_tf_depend_user_para dep_user[MAC_AX_MAX_RU_NUM];
9296 };
9297 
9298 /**
9299  * @struct mac_ax_tf_wd_para
9300  * @brief mac_ax_tf_wd_para
9301  *
9302  * @var mac_ax_tf_wd_para::datarate
9303  * Please Place Description here.
9304  * @var mac_ax_tf_wd_para::mulport_id
9305  * Please Place Description here.
9306  * @var mac_ax_tf_wd_para::pwr_ofset
9307  * Please Place Description here.
9308  * @var mac_ax_tf_wd_para::rsvd
9309  * Please Place Description here.
9310  */
9311 struct mac_ax_tf_wd_para {
9312 	u16 datarate: 9;
9313 	u16 mulport_id: 3;
9314 	u16 pwr_ofset: 3;
9315 	u16 rsvd: 1;
9316 };
9317 
9318 /**
9319  * @struct mac_ax_f2p_test_para
9320  * @brief mac_ax_f2p_test_para
9321  *
9322  * @var mac_ax_f2p_test_para::tf_pkt
9323  * Please Place Description here.
9324  * @var mac_ax_f2p_test_para::tf_wd
9325  * Please Place Description here.
9326  * @var mac_ax_f2p_test_para::mode
9327  * Please Place Description here.
9328  * @var mac_ax_f2p_test_para::frexch_type
9329  * Please Place Description here.
9330  * @var mac_ax_f2p_test_para::sigb_len
9331  * Please Place Description here.
9332  */
9333 struct mac_ax_f2p_test_para {
9334 	struct mac_ax_tf_pkt_para tf_pkt;
9335 	struct mac_ax_tf_wd_para tf_wd;
9336 	u8 mode: 2;
9337 	u8 frexch_type: 6;
9338 	u8 sigb_len;
9339 };
9340 
9341 /**
9342  * @struct mac_ax_f2p_wd
9343  * @brief mac_ax_f2p_wd
9344  *
9345  * @var mac_ax_f2p_wd::cmd_qsel
9346  * Please Place Description here.
9347  * @var mac_ax_f2p_wd::rsvd0
9348  * Please Place Description here.
9349  * @var mac_ax_f2p_wd::rsvd1
9350  * Please Place Description here.
9351  * @var mac_ax_f2p_wd::ls
9352  * Please Place Description here.
9353  * @var mac_ax_f2p_wd::fs
9354  * Please Place Description here.
9355  * @var mac_ax_f2p_wd::total_number
9356  * Please Place Description here.
9357  * @var mac_ax_f2p_wd::seq
9358  * Please Place Description here.
9359  * @var mac_ax_f2p_wd::length
9360  * Please Place Description here.
9361  * @var mac_ax_f2p_wd::rsvd2
9362  * Please Place Description here.
9363  */
9364 struct mac_ax_f2p_wd {
9365 	/* dword 0 */
9366 	u32 cmd_qsel:6;
9367 	u32 rsvd0:2;
9368 	u32 rsvd1:2;
9369 	u32 ls:1;
9370 	u32 fs:1;
9371 	u32 total_number:4;
9372 	u32 seq:8;
9373 	u32 length:8;
9374 	/* dword 1 */
9375 	u32 rsvd2;
9376 };
9377 
9378 /**
9379  * @struct mac_ax_f2p_tx_cmd
9380  * @brief mac_ax_f2p_tx_cmd
9381  *
9382  * @var mac_ax_f2p_tx_cmd::cmd_type
9383  * Please Place Description here.
9384  * @var mac_ax_f2p_tx_cmd::cmd_sub_type
9385  * Please Place Description here.
9386  * @var mac_ax_f2p_tx_cmd::dl_user_num
9387  * Please Place Description here.
9388  * @var mac_ax_f2p_tx_cmd::bw
9389  * Please Place Description here.
9390  * @var mac_ax_f2p_tx_cmd::tx_power
9391  * Please Place Description here.
9392  * @var mac_ax_f2p_tx_cmd::fw_define
9393  * Please Place Description here.
9394  * @var mac_ax_f2p_tx_cmd::ss_sel_mode
9395  * Please Place Description here.
9396  * @var mac_ax_f2p_tx_cmd::next_qsel
9397  * Please Place Description here.
9398  * @var mac_ax_f2p_tx_cmd::twt_group
9399  * Please Place Description here.
9400  * @var mac_ax_f2p_tx_cmd::dis_chk_slp
9401  * Please Place Description here.
9402  * @var mac_ax_f2p_tx_cmd::ru_mu_2_su
9403  * Please Place Description here.
9404  * @var mac_ax_f2p_tx_cmd::dl_t_pe
9405  * Please Place Description here.
9406  * @var mac_ax_f2p_tx_cmd::sigb_ch1_len
9407  * Please Place Description here.
9408  * @var mac_ax_f2p_tx_cmd::sigb_ch2_len
9409  * Please Place Description here.
9410  * @var mac_ax_f2p_tx_cmd::sigb_sym_num
9411  * Please Place Description here.
9412  * @var mac_ax_f2p_tx_cmd::sigb_ch2_ofs
9413  * Please Place Description here.
9414  * @var mac_ax_f2p_tx_cmd::dis_htp_ack
9415  * Please Place Description here.
9416  * @var mac_ax_f2p_tx_cmd::tx_time_ref
9417  * Please Place Description here.
9418  * @var mac_ax_f2p_tx_cmd::pri_user_idx
9419  * Please Place Description here.
9420  * @var mac_ax_f2p_tx_cmd::ampdu_max_txtime
9421  * Please Place Description here.
9422  * @var mac_ax_f2p_tx_cmd::rsvd0
9423  * Please Place Description here.
9424  * @var mac_ax_f2p_tx_cmd::group_id
9425  * Please Place Description here.
9426  * @var mac_ax_f2p_tx_cmd::rsvd1
9427  * Please Place Description here.
9428  * @var mac_ax_f2p_tx_cmd::rsvd2
9429  * Please Place Description here.
9430  * @var mac_ax_f2p_tx_cmd::twt_chk_en
9431  * Please Place Description here.
9432  * @var mac_ax_f2p_tx_cmd::twt_port_id
9433  * Please Place Description here.
9434  * @var mac_ax_f2p_tx_cmd::twt_start_time
9435  * Please Place Description here.
9436  * @var mac_ax_f2p_tx_cmd::twt_end_time
9437  * Please Place Description here.
9438  * @var mac_ax_f2p_tx_cmd::apep_len
9439  * Please Place Description here.
9440  * @var mac_ax_f2p_tx_cmd::tri_pad
9441  * Please Place Description here.
9442  * @var mac_ax_f2p_tx_cmd::ul_t_pe
9443  * Please Place Description here.
9444  * @var mac_ax_f2p_tx_cmd::rf_gain_idx
9445  * Please Place Description here.
9446  * @var mac_ax_f2p_tx_cmd::fixed_gain_en
9447  * Please Place Description here.
9448  * @var mac_ax_f2p_tx_cmd::ul_gi_ltf
9449  * Please Place Description here.
9450  * @var mac_ax_f2p_tx_cmd::ul_doppler
9451  * Please Place Description here.
9452  * @var mac_ax_f2p_tx_cmd::ul_stbc
9453  * Please Place Description here.
9454  * @var mac_ax_f2p_tx_cmd::ul_mid_per
9455  * Please Place Description here.
9456  * @var mac_ax_f2p_tx_cmd::ul_cqi_rrp_tri
9457  * Please Place Description here.
9458  * @var mac_ax_f2p_tx_cmd::rsvd3
9459  * Please Place Description here.
9460  * @var mac_ax_f2p_tx_cmd::rsvd4
9461  * Please Place Description here.
9462  * @var mac_ax_f2p_tx_cmd::sigb_dcm
9463  * Please Place Description here.
9464  * @var mac_ax_f2p_tx_cmd::sigb_comp
9465  * Please Place Description here.
9466  * @var mac_ax_f2p_tx_cmd::doppler
9467  * Please Place Description here.
9468  * @var mac_ax_f2p_tx_cmd::stbc
9469  * Please Place Description here.
9470  * @var mac_ax_f2p_tx_cmd::mid_per
9471  * Please Place Description here.
9472  * @var mac_ax_f2p_tx_cmd::gi_ltf_size
9473  * Please Place Description here.
9474  * @var mac_ax_f2p_tx_cmd::sigb_mcs
9475  * Please Place Description here.
9476  * @var mac_ax_f2p_tx_cmd::rsvd5
9477  * Please Place Description here.
9478  * @var mac_ax_f2p_tx_cmd::macid_u0
9479  * Please Place Description here.
9480  * @var mac_ax_f2p_tx_cmd::ac_type_u0
9481  * Please Place Description here.
9482  * @var mac_ax_f2p_tx_cmd::mu_sta_pos_u0
9483  * Please Place Description here.
9484  * @var mac_ax_f2p_tx_cmd::dl_rate_idx_u0
9485  * Please Place Description here.
9486  * @var mac_ax_f2p_tx_cmd::dl_dcm_en_u0
9487  * Please Place Description here.
9488  * @var mac_ax_f2p_tx_cmd::rsvd6
9489  * Please Place Description here.
9490  * @var mac_ax_f2p_tx_cmd::ru_alo_idx_u0
9491  * Please Place Description here.
9492  * @var mac_ax_f2p_tx_cmd::pwr_boost_u0
9493  * Please Place Description here.
9494  * @var mac_ax_f2p_tx_cmd::agg_bmp_alo_u0
9495  * Please Place Description here.
9496  * @var mac_ax_f2p_tx_cmd::ampdu_max_txnum_u0
9497  * Please Place Description here.
9498  * @var mac_ax_f2p_tx_cmd::user_define_u0
9499  * Please Place Description here.
9500  * @var mac_ax_f2p_tx_cmd::user_define_ext_u0
9501  * Please Place Description here.
9502  * @var mac_ax_f2p_tx_cmd::ul_addr_idx_u0
9503  * Please Place Description here.
9504  * @var mac_ax_f2p_tx_cmd::ul_dcm_u0
9505  * Please Place Description here.
9506  * @var mac_ax_f2p_tx_cmd::ul_fec_cod_u0
9507  * Please Place Description here.
9508  * @var mac_ax_f2p_tx_cmd::ul_ru_rate_u0
9509  * Please Place Description here.
9510  * @var mac_ax_f2p_tx_cmd::rsvd8
9511  * Please Place Description here.
9512  * @var mac_ax_f2p_tx_cmd::ul_ru_alo_idx_u0
9513  * Please Place Description here.
9514  * @var mac_ax_f2p_tx_cmd::rsvd9
9515  * Please Place Description here.
9516  * @var mac_ax_f2p_tx_cmd::macid_u1
9517  * Please Place Description here.
9518  * @var mac_ax_f2p_tx_cmd::ac_type_u1
9519  * Please Place Description here.
9520  * @var mac_ax_f2p_tx_cmd::mu_sta_pos_u1
9521  * Please Place Description here.
9522  * @var mac_ax_f2p_tx_cmd::dl_rate_idx_u1
9523  * Please Place Description here.
9524  * @var mac_ax_f2p_tx_cmd::dl_dcm_en_u1
9525  * Please Place Description here.
9526  * @var mac_ax_f2p_tx_cmd::rsvd10
9527  * Please Place Description here.
9528  * @var mac_ax_f2p_tx_cmd::ru_alo_idx_u1
9529  * Please Place Description here.
9530  * @var mac_ax_f2p_tx_cmd::pwr_boost_u1
9531  * Please Place Description here.
9532  * @var mac_ax_f2p_tx_cmd::agg_bmp_alo_u1
9533  * Please Place Description here.
9534  * @var mac_ax_f2p_tx_cmd::ampdu_max_txnum_u1
9535  * Please Place Description here.
9536  * @var mac_ax_f2p_tx_cmd::user_define_u1
9537  * Please Place Description here.
9538  * @var mac_ax_f2p_tx_cmd::user_define_ext_u1
9539  * Please Place Description here.
9540  * @var mac_ax_f2p_tx_cmd::ul_addr_idx_u1
9541  * Please Place Description here.
9542  * @var mac_ax_f2p_tx_cmd::ul_dcm_u1
9543  * Please Place Description here.
9544  * @var mac_ax_f2p_tx_cmd::ul_fec_cod_u1
9545  * Please Place Description here.
9546  * @var mac_ax_f2p_tx_cmd::ul_ru_rate_u1
9547  * Please Place Description here.
9548  * @var mac_ax_f2p_tx_cmd::rsvd12
9549  * Please Place Description here.
9550  * @var mac_ax_f2p_tx_cmd::ul_ru_alo_idx_u1
9551  * Please Place Description here.
9552  * @var mac_ax_f2p_tx_cmd::rsvd13
9553  * Please Place Description here.
9554  * @var mac_ax_f2p_tx_cmd::macid_u2
9555  * Please Place Description here.
9556  * @var mac_ax_f2p_tx_cmd::ac_type_u2
9557  * Please Place Description here.
9558  * @var mac_ax_f2p_tx_cmd::mu_sta_pos_u2
9559  * Please Place Description here.
9560  * @var mac_ax_f2p_tx_cmd::dl_rate_idx_u2
9561  * Please Place Description here.
9562  * @var mac_ax_f2p_tx_cmd::dl_dcm_en_u2
9563  * Please Place Description here.
9564  * @var mac_ax_f2p_tx_cmd::rsvd14
9565  * Please Place Description here.
9566  * @var mac_ax_f2p_tx_cmd::ru_alo_idx_u2
9567  * Please Place Description here.
9568  * @var mac_ax_f2p_tx_cmd::pwr_boost_u2
9569  * Please Place Description here.
9570  * @var mac_ax_f2p_tx_cmd::agg_bmp_alo_u2
9571  * Please Place Description here.
9572  * @var mac_ax_f2p_tx_cmd::ampdu_max_txnum_u2
9573  * Please Place Description here.
9574  * @var mac_ax_f2p_tx_cmd::user_define_u2
9575  * Please Place Description here.
9576  * @var mac_ax_f2p_tx_cmd::user_define_ext_u2
9577  * Please Place Description here.
9578  * @var mac_ax_f2p_tx_cmd::ul_addr_idx_u2
9579  * Please Place Description here.
9580  * @var mac_ax_f2p_tx_cmd::ul_dcm_u2
9581  * Please Place Description here.
9582  * @var mac_ax_f2p_tx_cmd::ul_fec_cod_u2
9583  * Please Place Description here.
9584  * @var mac_ax_f2p_tx_cmd::ul_ru_rate_u2
9585  * Please Place Description here.
9586  * @var mac_ax_f2p_tx_cmd::rsvd16
9587  * Please Place Description here.
9588  * @var mac_ax_f2p_tx_cmd::ul_ru_alo_idx_u2
9589  * Please Place Description here.
9590  * @var mac_ax_f2p_tx_cmd::rsvd17
9591  * Please Place Description here.
9592  * @var mac_ax_f2p_tx_cmd::macid_u3
9593  * Please Place Description here.
9594  * @var mac_ax_f2p_tx_cmd::ac_type_u3
9595  * Please Place Description here.
9596  * @var mac_ax_f2p_tx_cmd::mu_sta_pos_u3
9597  * Please Place Description here.
9598  * @var mac_ax_f2p_tx_cmd::dl_rate_idx_u3
9599  * Please Place Description here.
9600  * @var mac_ax_f2p_tx_cmd::dl_dcm_en_u3
9601  * Please Place Description here.
9602  * @var mac_ax_f2p_tx_cmd::rsvd18
9603  * Please Place Description here.
9604  * @var mac_ax_f2p_tx_cmd::ru_alo_idx_u3
9605  * Please Place Description here.
9606  * @var mac_ax_f2p_tx_cmd::pwr_boost_u3
9607  * Please Place Description here.
9608  * @var mac_ax_f2p_tx_cmd::agg_bmp_alo_u3
9609  * Please Place Description here.
9610  * @var mac_ax_f2p_tx_cmd::ampdu_max_txnum_u3
9611  * Please Place Description here.
9612  * @var mac_ax_f2p_tx_cmd::user_define_u3
9613  * Please Place Description here.
9614  * @var mac_ax_f2p_tx_cmd::user_define_ext_u3
9615  * Please Place Description here.
9616  * @var mac_ax_f2p_tx_cmd::ul_addr_idx_u3
9617  * Please Place Description here.
9618  * @var mac_ax_f2p_tx_cmd::ul_dcm_u3
9619  * Please Place Description here.
9620  * @var mac_ax_f2p_tx_cmd::ul_fec_cod_u3
9621  * Please Place Description here.
9622  * @var mac_ax_f2p_tx_cmd::ul_ru_rate_u3
9623  * Please Place Description here.
9624  * @var mac_ax_f2p_tx_cmd::rsvd20
9625  * Please Place Description here.
9626  * @var mac_ax_f2p_tx_cmd::ul_ru_alo_idx_u3
9627  * Please Place Description here.
9628  * @var mac_ax_f2p_tx_cmd::rsvd21
9629  * Please Place Description here.
9630  * @var mac_ax_f2p_tx_cmd::pkt_id_0
9631  * Please Place Description here.
9632  * @var mac_ax_f2p_tx_cmd::rsvd22
9633  * Please Place Description here.
9634  * @var mac_ax_f2p_tx_cmd::valid_0
9635  * Please Place Description here.
9636  * @var mac_ax_f2p_tx_cmd::ul_user_num_0
9637  * Please Place Description here.
9638  * @var mac_ax_f2p_tx_cmd::rsvd23
9639  * Please Place Description here.
9640  * @var mac_ax_f2p_tx_cmd::pkt_id_1
9641  * Please Place Description here.
9642  * @var mac_ax_f2p_tx_cmd::rsvd24
9643  * Please Place Description here.
9644  * @var mac_ax_f2p_tx_cmd::valid_1
9645  * Please Place Description here.
9646  * @var mac_ax_f2p_tx_cmd::ul_user_num_1
9647  * Please Place Description here.
9648  * @var mac_ax_f2p_tx_cmd::rsvd25
9649  * Please Place Description here.
9650  * @var mac_ax_f2p_tx_cmd::pkt_id_2
9651  * Please Place Description here.
9652  * @var mac_ax_f2p_tx_cmd::rsvd26
9653  * Please Place Description here.
9654  * @var mac_ax_f2p_tx_cmd::valid_2
9655  * Please Place Description here.
9656  * @var mac_ax_f2p_tx_cmd::ul_user_num_2
9657  * Please Place Description here.
9658  * @var mac_ax_f2p_tx_cmd::rsvd27
9659  * Please Place Description here.
9660  * @var mac_ax_f2p_tx_cmd::pkt_id_3
9661  * Please Place Description here.
9662  * @var mac_ax_f2p_tx_cmd::rsvd28
9663  * Please Place Description here.
9664  * @var mac_ax_f2p_tx_cmd::valid_3
9665  * Please Place Description here.
9666  * @var mac_ax_f2p_tx_cmd::ul_user_num_3
9667  * Please Place Description here.
9668  * @var mac_ax_f2p_tx_cmd::rsvd29
9669  * Please Place Description here.
9670  * @var mac_ax_f2p_tx_cmd::pkt_id_4
9671  * Please Place Description here.
9672  * @var mac_ax_f2p_tx_cmd::rsvd30
9673  * Please Place Description here.
9674  * @var mac_ax_f2p_tx_cmd::valid_4
9675  * Please Place Description here.
9676  * @var mac_ax_f2p_tx_cmd::ul_user_num_4
9677  * Please Place Description here.
9678  * @var mac_ax_f2p_tx_cmd::rsvd31
9679  * Please Place Description here.
9680  * @var mac_ax_f2p_tx_cmd::pkt_id_5
9681  * Please Place Description here.
9682  * @var mac_ax_f2p_tx_cmd::rsvd32
9683  * Please Place Description here.
9684  * @var mac_ax_f2p_tx_cmd::valid_5
9685  * Please Place Description here.
9686  * @var mac_ax_f2p_tx_cmd::ul_user_num_5
9687  * Please Place Description here.
9688  * @var mac_ax_f2p_tx_cmd::rsvd33
9689  * Please Place Description here.
9690  */
9691 struct mac_ax_f2p_tx_cmd {
9692 	/* dword 0 */
9693 	u32 cmd_type:8;
9694 	u32 cmd_sub_type:8;
9695 	u32 dl_user_num:5;
9696 	u32 bw:2;
9697 	u32 tx_power:9;
9698 	/* dword 1 */
9699 	u32 fw_define:16;
9700 	u32 ss_sel_mode:2;
9701 	u32 next_qsel:6;
9702 	u32 twt_group:4;
9703 	u32 dis_chk_slp:1;
9704 	u32 ru_mu_2_su:1;
9705 	u32 dl_t_pe:2;
9706 	/* dword 2 */
9707 	u32 sigb_ch1_len:8;
9708 	u32 sigb_ch2_len:8;
9709 	u32 sigb_sym_num:6;
9710 	u32 sigb_ch2_ofs:5;
9711 	u32 dis_htp_ack:1;
9712 	u32 tx_time_ref:2;
9713 	u32 pri_user_idx:2;
9714 	/* dword 3 */
9715 	u32 ampdu_max_txtime:14;
9716 	u32 rsvd0:2;
9717 	u32 group_id:6;
9718 	u32 rsvd1:2;
9719 	u32 rsvd2:4;
9720 	u32 twt_chk_en:1;
9721 	u32 twt_port_id:3;
9722 	/* dword 4 */
9723 	u32 twt_start_time:32;
9724 	/* dword 5 */
9725 	u32 twt_end_time:32;
9726 	/* dword 6 */
9727 	u32 apep_len:12;
9728 	u32 tri_pad:2;
9729 	u32 ul_t_pe:2;
9730 	u32 rf_gain_idx:10;
9731 	u32 fixed_gain_en:1;
9732 	u32 ul_gi_ltf:3;
9733 	u32 ul_doppler:1;
9734 	u32 ul_stbc:1;
9735 	/* dword 7 */
9736 	u32 ul_mid_per:1;
9737 	u32 ul_cqi_rrp_tri:1;
9738 	u32 rsvd3:6;
9739 	u32 rsvd4:8;
9740 	u32 sigb_dcm:1;
9741 	u32 sigb_comp:1;
9742 	u32 doppler:1;
9743 	u32 stbc:1;
9744 	u32 mid_per:1;
9745 	u32 gi_ltf_size:3;
9746 	u32 sigb_mcs:3;
9747 	u32 rsvd5:5;
9748 	/* dword 8 */
9749 	u32 macid_u0:8;
9750 	u32 ac_type_u0:2;
9751 	u32 mu_sta_pos_u0:2;
9752 	u32 dl_rate_idx_u0:9;
9753 	u32 dl_dcm_en_u0:1;
9754 	u32 rsvd6:2;
9755 	u32 ru_alo_idx_u0:8;
9756 	/* dword 9 */
9757 	u32 pwr_boost_u0:5;
9758 	u32 agg_bmp_alo_u0:3;
9759 	u32 ampdu_max_txnum_u0:8;
9760 	u32 user_define_u0:8;
9761 	u32 user_define_ext_u0:8;
9762 	/* dword 10 */
9763 	u32 ul_addr_idx_u0:8;
9764 	u32 ul_dcm_u0:1;
9765 	u32 ul_fec_cod_u0:1;
9766 	u32 ul_ru_rate_u0:7;
9767 	u32 rsvd8:7;
9768 	u32 ul_ru_alo_idx_u0:8;
9769 	/* dword 11 */
9770 	u32 rsvd9:32;
9771 	/* dword 12 */
9772 	u32 macid_u1:8;
9773 	u32 ac_type_u1:2;
9774 	u32 mu_sta_pos_u1:2;
9775 	u32 dl_rate_idx_u1:9;
9776 	u32 dl_dcm_en_u1:1;
9777 	u32 rsvd10:2;
9778 	u32 ru_alo_idx_u1:8;
9779 	/* dword 13 */
9780 	u32 pwr_boost_u1:5;
9781 	u32 agg_bmp_alo_u1:3;
9782 	u32 ampdu_max_txnum_u1:8;
9783 	u32 user_define_u1:8;
9784 	u32 user_define_ext_u1:8;
9785 	/* dword 14 */
9786 	u32 ul_addr_idx_u1:8;
9787 	u32 ul_dcm_u1:1;
9788 	u32 ul_fec_cod_u1:1;
9789 	u32 ul_ru_rate_u1:7;
9790 	u32 rsvd12:7;
9791 	u32 ul_ru_alo_idx_u1:8;
9792 	/* dword 15 */
9793 	u32 rsvd13:32;
9794 	/* dword 16 */
9795 	u32 macid_u2:8;
9796 	u32 ac_type_u2:2;
9797 	u32 mu_sta_pos_u2:2;
9798 	u32 dl_rate_idx_u2:9;
9799 	u32 dl_dcm_en_u2:1;
9800 	u32 rsvd14:2;
9801 	u32 ru_alo_idx_u2:8;
9802 	/* dword 17 */
9803 	u32 pwr_boost_u2:5;
9804 	u32 agg_bmp_alo_u2:3;
9805 	u32 ampdu_max_txnum_u2:8;
9806 	u32 user_define_u2:8;
9807 	u32 user_define_ext_u2:8;
9808 	/* dword 18 */
9809 	u32 ul_addr_idx_u2:8;
9810 	u32 ul_dcm_u2:1;
9811 	u32 ul_fec_cod_u2:1;
9812 	u32 ul_ru_rate_u2:7;
9813 	u32 rsvd16:7;
9814 	u32 ul_ru_alo_idx_u2:8;
9815 	/* dword 19 */
9816 	u32 rsvd17:32;
9817 	/* dword 20 */
9818 	u32 macid_u3:8;
9819 	u32 ac_type_u3:2;
9820 	u32 mu_sta_pos_u3:2;
9821 	u32 dl_rate_idx_u3:9;
9822 	u32 dl_dcm_en_u3:1;
9823 	u32 rsvd18:2;
9824 	u32 ru_alo_idx_u3:8;
9825 	/* dword 21 */
9826 	u32 pwr_boost_u3:5;
9827 	u32 agg_bmp_alo_u3:3;
9828 	u32 ampdu_max_txnum_u3:8;
9829 	u32 user_define_u3:8;
9830 	u32 user_define_ext_u3:8;
9831 	/* dword 22 */
9832 	u32 ul_addr_idx_u3:8;
9833 	u32 ul_dcm_u3:1;
9834 	u32 ul_fec_cod_u3:1;
9835 	u32 ul_ru_rate_u3:7;
9836 	u32 rsvd20:7;
9837 	u32 ul_ru_alo_idx_u3:8;
9838 	/* dword 23 */
9839 	u32 rsvd21:32;
9840 	/* dword 24 */
9841 	u32 pkt_id_0:12;
9842 	u32 rsvd22:3;
9843 	u32 valid_0:1;
9844 	u32 ul_user_num_0:4;
9845 	u32 rsvd23:12;
9846 	/* dword 25 */
9847 	u32 pkt_id_1:12;
9848 	u32 rsvd24:3;
9849 	u32 valid_1:1;
9850 	u32 ul_user_num_1:4;
9851 	u32 rsvd25:12;
9852 	/* dword 26 */
9853 	u32 pkt_id_2:12;
9854 	u32 rsvd26:3;
9855 	u32 valid_2:1;
9856 	u32 ul_user_num_2:4;
9857 	u32 rsvd27:12;
9858 	/* dword 27 */
9859 	u32 pkt_id_3:12;
9860 	u32 rsvd28:3;
9861 	u32 valid_3:1;
9862 	u32 ul_user_num_3:4;
9863 	u32 rsvd29:12;
9864 	/* dword 28 */
9865 	u32 pkt_id_4:12;
9866 	u32 rsvd30:3;
9867 	u32 valid_4:1;
9868 	u32 ul_user_num_4:4;
9869 	u32 rsvd31:12;
9870 	/* dword 29 */
9871 	u32 pkt_id_5:12;
9872 	u32 rsvd32:3;
9873 	u32 valid_5:1;
9874 	u32 ul_user_num_5:4;
9875 	u32 rsvd33:12;
9876 };
9877 
9878 /*--------------------Define Sounding related struct -------------------------*/
9879 
9880 /**
9881  * @struct mac_reg_csi_para
9882  * @brief mac_reg_csi_para
9883  *
9884  * @var mac_reg_csi_para::band
9885  * Please Place Description here.
9886  * @var mac_reg_csi_para::portsel
9887  * Please Place Description here.
9888  * @var mac_reg_csi_para::nc
9889  * Please Place Description here.
9890  * @var mac_reg_csi_para::nr
9891  * Please Place Description here.
9892  * @var mac_reg_csi_para::ng
9893  * Please Place Description here.
9894  * @var mac_reg_csi_para::cb
9895  * Please Place Description here.
9896  * @var mac_reg_csi_para::cs
9897  * Please Place Description here.
9898  * @var mac_reg_csi_para::ldpc_en
9899  * Please Place Description here.
9900  * @var mac_reg_csi_para::stbc_en
9901  * Please Place Description here.
9902  * @var mac_reg_csi_para::bf_en
9903  * Please Place Description here.
9904  */
9905 struct mac_reg_csi_para {
9906 	u32 band: 1;
9907 	u32 portsel: 1;
9908 	u32 nc: 3;
9909 	u32 nr: 3;
9910 	u32 ng: 2;
9911 	u32 cb: 2;
9912 	u32 cs: 2;
9913 	u32 ldpc_en: 1;
9914 	u32 stbc_en: 1;
9915 	u32 bf_en: 1;
9916 };
9917 
9918 /**
9919  * @struct mac_cctl_csi_para
9920  * @brief mac_cctl_csi_para
9921  *
9922  * @var mac_cctl_csi_para::macid
9923  * Please Place Description here.
9924  * @var mac_cctl_csi_para::band
9925  * Please Place Description here.
9926  * @var mac_cctl_csi_para::nc
9927  * Please Place Description here.
9928  * @var mac_cctl_csi_para::nr
9929  * Please Place Description here.
9930  * @var mac_cctl_csi_para::ng
9931  * Please Place Description here.
9932  * @var mac_cctl_csi_para::cb
9933  * Please Place Description here.
9934  * @var mac_cctl_csi_para::cs
9935  * Please Place Description here.
9936  * @var mac_cctl_csi_para::bf_en
9937  * Please Place Description here.
9938  * @var mac_cctl_csi_para::stbc_en
9939  * Please Place Description here.
9940  * @var mac_cctl_csi_para::ldpc_en
9941  * Please Place Description here.
9942  * @var mac_cctl_csi_para::rate
9943  * Please Place Description here.
9944  * @var mac_cctl_csi_para::gi_ltf
9945  * Please Place Description here.
9946  * @var mac_cctl_csi_para::gid_sel
9947  * Please Place Description here.
9948  * @var mac_cctl_csi_para::bw
9949  * Please Place Description here.
9950  */
9951 struct mac_cctl_csi_para {
9952 	u8 macid;
9953 	u32 band: 1;
9954 	u32 nc: 3;
9955 	u32 nr: 3;
9956 	u32 ng: 2;
9957 	u32 cb: 2;
9958 	u32 cs: 2;
9959 	u32 bf_en: 1;
9960 	u32 stbc_en: 1;
9961 	u32 ldpc_en: 1;
9962 	u32 rate: 9;
9963 	u32 gi_ltf: 3;
9964 	u32 gid_sel: 1;
9965 	u32 bw: 2;
9966 };
9967 
9968 /**
9969  * @struct mac_bf_sup
9970  * @brief mac_bf_sup
9971  *
9972  * @var mac_bf_sup::bf_entry_num
9973  * Please Place Description here.
9974  * @var mac_bf_sup::su_buffer_num
9975  * Please Place Description here.
9976  * @var mac_bf_sup::mu_buffer_num
9977  * Please Place Description here.
9978  */
9979 struct mac_bf_sup {
9980 	u32 bf_entry_num;
9981 	u32 su_buffer_num;
9982 	u32 mu_buffer_num;
9983 };
9984 
9985 /**
9986  * @struct mac_gid_pos
9987  * @brief mac_gid_pos
9988  *
9989  * @var mac_gid_pos::gid_en
9990  * Please Place Description here.
9991  * @var mac_gid_pos::gid_pos
9992  * Please Place Description here.
9993  */
9994 struct mac_gid_pos {
9995 	u32 band;
9996 	u32 gid_tab[2];
9997 	u32 user_pos[4];
9998 };
9999 
10000 /**
10001  * @struct mac_ax_ndpa_hdr
10002  * @brief mac_ax_ndpa_hdr
10003  *
10004  * @var mac_ax_ndpa_hdr::frame_ctl
10005  * Please Place Description here.
10006  * @var mac_ax_ndpa_hdr::duration
10007  * Please Place Description here.
10008  * @var mac_ax_ndpa_hdr::addr1
10009  * Please Place Description here.
10010  * @var mac_ax_ndpa_hdr::addr2
10011  * Please Place Description here.
10012  */
10013 struct mac_ax_ndpa_hdr {
10014 	u16 frame_ctl;
10015 	u16 duration;
10016 	u8 addr1[6];
10017 	u8 addr2[6];
10018 };
10019 
10020 /**
10021  * @struct mac_ax_snd_dialog
10022  * @brief mac_ax_snd_dialog
10023  *
10024  * @var mac_ax_snd_dialog::he
10025  * Please Place Description here.
10026  * @var mac_ax_snd_dialog::dialog
10027  * Please Place Description here.
10028  * @var mac_ax_snd_dialog::rsvd
10029  * Please Place Description here.
10030  */
10031 struct mac_ax_snd_dialog {
10032 	u32 he: 1;
10033 	u32 dialog: 6;
10034 	u32 rsvd: 25;
10035 };
10036 
10037 /**
10038  * @struct mac_ax_ht_ndpa_para
10039  * @brief mac_ax_ht_ndpa_para
10040  *
10041  * @var mac_ax_ht_ndpa_para::addr3
10042  * Please Place Description here.
10043  * @var mac_ax_ht_ndpa_para::seq_control
10044  * Please Place Description here.
10045  */
10046 struct mac_ax_ht_ndpa_para {
10047 	u8 addr3[WLAN_ADDR_LEN];
10048 	u16 seq_control;
10049 };
10050 
10051 /**
10052  * @struct mac_ax_vht_ndpa_sta_info
10053  * @brief mac_ax_vht_ndpa_sta_info
10054  *
10055  * @var mac_ax_vht_ndpa_sta_info::aid
10056  * Please Place Description here.
10057  * @var mac_ax_vht_ndpa_sta_info::fb_type
10058  * Please Place Description here.
10059  * @var mac_ax_vht_ndpa_sta_info::nc
10060  * Please Place Description here.
10061  */
10062 struct mac_ax_vht_ndpa_sta_info {
10063 	u16 aid: 12;
10064 	u16 fb_type: 1;
10065 	u16 nc: 3;
10066 };
10067 
10068 /**
10069  * @struct mac_ax_vht_ndpa_para
10070  * @brief mac_ax_vht_ndpa_para
10071  *
10072  * @var mac_ax_vht_ndpa_para::sta_info
10073  * Please Place Description here.
10074  */
10075 struct mac_ax_vht_ndpa_para {
10076 	struct mac_ax_vht_ndpa_sta_info sta_info[MAX_VHT_SUPPORT_SOUND_STA];
10077 };
10078 
10079 /**
10080  * @struct mac_ax_he_ndpa_sta_info
10081  * @brief mac_ax_he_ndpa_sta_info
10082  *
10083  * @var mac_ax_he_ndpa_sta_info::aid
10084  * Please Place Description here.
10085  * @var mac_ax_he_ndpa_sta_info::bw
10086  * Please Place Description here.
10087  * @var mac_ax_he_ndpa_sta_info::fb_ng
10088  * Please Place Description here.
10089  * @var mac_ax_he_ndpa_sta_info::disambiguation
10090  * Please Place Description here.
10091  * @var mac_ax_he_ndpa_sta_info::cb
10092  * Please Place Description here.
10093  * @var mac_ax_he_ndpa_sta_info::nc
10094  * Please Place Description here.
10095  */
10096 struct mac_ax_he_ndpa_sta_info {
10097 	u32 aid: 11;
10098 	u32 bw: 14;
10099 	u32 fb_ng: 2;
10100 	u32 disambiguation: 1;
10101 	u32 cb: 1;
10102 	u32 nc: 3;
10103 };
10104 
10105 /**
10106  * @struct mac_ax_he_ndpa_para
10107  * @brief mac_ax_he_ndpa_para
10108  *
10109  * @var mac_ax_he_ndpa_para::sta_info
10110  * Please Place Description here.
10111  */
10112 struct mac_ax_he_ndpa_para {
10113 	struct mac_ax_he_ndpa_sta_info sta_info[MAX_HE_SUPPORT_SOUND_STA];
10114 };
10115 
10116 /**
10117  * @struct mac_ax_ndpa_para
10118  * @brief mac_ax_ndpa_para
10119  *
10120  * @var mac_ax_ndpa_para::common
10121  * Please Place Description here.
10122  * @var mac_ax_ndpa_para::snd_dialog
10123  * Please Place Description here.
10124  * @var mac_ax_ndpa_para::ht_para
10125  * Please Place Description here.
10126  * @var mac_ax_ndpa_para::vht_para
10127  * Please Place Description here.
10128  * @var mac_ax_ndpa_para::he_para
10129  * Please Place Description here.
10130  */
10131 struct mac_ax_ndpa_para {
10132 	struct mac_ax_ndpa_hdr common;
10133 	struct mac_ax_snd_dialog snd_dialog;
10134 	struct mac_ax_ht_ndpa_para ht_para;
10135 	struct mac_ax_vht_ndpa_para vht_para;
10136 	struct mac_ax_he_ndpa_para he_para;
10137 };
10138 
10139 /**
10140  * @struct mac_ax_bfrp_hdr
10141  * @brief mac_ax_bfrp_hdr
10142  *
10143  * @var mac_ax_bfrp_hdr::frame_ctl
10144  * Please Place Description here.
10145  * @var mac_ax_bfrp_hdr::duration
10146  * Please Place Description here.
10147  * @var mac_ax_bfrp_hdr::addr1
10148  * Please Place Description here.
10149  * @var mac_ax_bfrp_hdr::addr2
10150  * Please Place Description here.
10151  */
10152 struct mac_ax_bfrp_hdr {
10153 	u16 frame_ctl;
10154 	u16 duration;
10155 	u8 addr1[WLAN_ADDR_LEN];
10156 	u8 addr2[WLAN_ADDR_LEN];
10157 };
10158 
10159 /**
10160  * @struct mac_ax_vht_bfrp_para
10161  * @brief mac_ax_vht_bfrp_para
10162  *
10163  * @var mac_ax_vht_bfrp_para::retransmission_bitmap
10164  * Please Place Description here.
10165  */
10166 struct mac_ax_vht_bfrp_para {
10167 	u8 retransmission_bitmap;
10168 };
10169 
10170 /**
10171  * @struct mac_ax_he_bfrp_common
10172  * @brief mac_ax_he_bfrp_common
10173  *
10174  * @var mac_ax_he_bfrp_common::tgr_info
10175  * Please Place Description here.
10176  * @var mac_ax_he_bfrp_common::ul_len
10177  * Please Place Description here.
10178  * @var mac_ax_he_bfrp_common::more_tf
10179  * Please Place Description here.
10180  * @var mac_ax_he_bfrp_common::cs_rqd
10181  * Please Place Description here.
10182  * @var mac_ax_he_bfrp_common::ul_bw
10183  * Please Place Description here.
10184  * @var mac_ax_he_bfrp_common::gi_ltf
10185  * Please Place Description here.
10186  * @var mac_ax_he_bfrp_common::mimo_ltfmode
10187  * Please Place Description here.
10188  * @var mac_ax_he_bfrp_common::num_heltf
10189  * Please Place Description here.
10190  * @var mac_ax_he_bfrp_common::ul_pktext
10191  * Please Place Description here.
10192  * @var mac_ax_he_bfrp_common::ul_stbc
10193  * Please Place Description here.
10194  * @var mac_ax_he_bfrp_common::ldpc_extra_sym
10195  * Please Place Description here.
10196  * @var mac_ax_he_bfrp_common::dplr
10197  * Please Place Description here.
10198  * @var mac_ax_he_bfrp_common::ap_tx_pwr
10199  * Please Place Description here.
10200  * @var mac_ax_he_bfrp_common::ul_sr
10201  * Please Place Description here.
10202  * @var mac_ax_he_bfrp_common::ul_siga2_rsvd
10203  * Please Place Description here.
10204  * @var mac_ax_he_bfrp_common::rsvd
10205  * Please Place Description here.
10206  */
10207 struct mac_ax_he_bfrp_common {
10208 	u32 tgr_info: 4;
10209 	u32 ul_len: 12;
10210 	u32 more_tf: 1;
10211 	u32 cs_rqd: 1;
10212 	u32 ul_bw: 2;
10213 	u32 gi_ltf: 2;
10214 	u32 mimo_ltfmode: 1;
10215 	u32 num_heltf: 3;
10216 	u32 ul_pktext: 3;
10217 	u32 ul_stbc: 1;
10218 	u32 ldpc_extra_sym: 1;
10219 	u32 dplr: 1;
10220 
10221 	u32 ap_tx_pwr: 6;
10222 	u32 ul_sr: 16;
10223 	u32 ul_siga2_rsvd: 9;
10224 	u32 rsvd: 1;
10225 };
10226 
10227 /**
10228  * @struct mac_ax_he_bfrp_user
10229  * @brief mac_ax_he_bfrp_user
10230  *
10231  * @var mac_ax_he_bfrp_user::aid12
10232  * Please Place Description here.
10233  * @var mac_ax_he_bfrp_user::ru_pos
10234  * Please Place Description here.
10235  * @var mac_ax_he_bfrp_user::ul_fec_code
10236  * Please Place Description here.
10237  * @var mac_ax_he_bfrp_user::ul_mcs
10238  * Please Place Description here.
10239  * @var mac_ax_he_bfrp_user::ul_dcm
10240  * Please Place Description here.
10241  * @var mac_ax_he_bfrp_user::ss_alloc
10242  * Please Place Description here.
10243  * @var mac_ax_he_bfrp_user::fbseg_rexmit_bmp
10244  * Please Place Description here.
10245  * @var mac_ax_he_bfrp_user::ul_tgt_rssi
10246  * Please Place Description here.
10247  * @var mac_ax_he_bfrp_user::rsvd
10248  * Please Place Description here.
10249  */
10250 struct mac_ax_he_bfrp_user {
10251 	u32 aid12: 12;
10252 	u32 ru_pos: 8;
10253 	u32 ul_fec_code: 1;
10254 	u32 ul_mcs: 4;
10255 	u32 ul_dcm: 1;
10256 	u32 ss_alloc: 6;
10257 
10258 	u32 fbseg_rexmit_bmp: 8;
10259 	u32 ul_tgt_rssi: 7;
10260 	u32 rsvd: 17;
10261 };
10262 
10263 /**
10264  * @struct mac_ax_he_bfrp_para
10265  * @brief mac_ax_he_bfrp_para
10266  *
10267  * @var mac_ax_he_bfrp_para::common
10268  * Please Place Description here.
10269  * @var mac_ax_he_bfrp_para::user
10270  * Please Place Description here.
10271  */
10272 struct mac_ax_he_bfrp_para {
10273 	struct mac_ax_he_bfrp_common common;
10274 	struct mac_ax_he_bfrp_user user[4];
10275 };
10276 
10277 /**
10278  * @struct mac_ax_bfrp_para
10279  * @brief mac_ax_bfrp_para
10280  *
10281  * @var mac_ax_bfrp_para::hdr
10282  * Please Place Description here.
10283  * @var mac_ax_bfrp_para::he_para
10284  * Please Place Description here.
10285  * @var mac_ax_bfrp_para::vht_para
10286  * Please Place Description here.
10287  * @var mac_ax_bfrp_para::rsvd
10288  * Please Place Description here.
10289  */
10290 struct mac_ax_bfrp_para {
10291 	struct mac_ax_bfrp_hdr hdr[3];
10292 	struct mac_ax_he_bfrp_para he_para[2];
10293 	struct mac_ax_vht_bfrp_para vht_para[3];
10294 	u8 rsvd;
10295 };
10296 
10297 /**
10298  * @struct mac_ax_snd_wd_para
10299  * @brief mac_ax_snd_wd_para
10300  *
10301  * @var mac_ax_snd_wd_para::txpktsize
10302  * Please Place Description here.
10303  * @var mac_ax_snd_wd_para::ndpa_duration
10304  * Please Place Description here.
10305  * @var mac_ax_snd_wd_para::datarate
10306  * Please Place Description here.
10307  * @var mac_ax_snd_wd_para::macid
10308  * Please Place Description here.
10309  * @var mac_ax_snd_wd_para::force_txop
10310  * Please Place Description here.
10311  * @var mac_ax_snd_wd_para::data_bw
10312  * Please Place Description here.
10313  * @var mac_ax_snd_wd_para::gi_ltf
10314  * Please Place Description here.
10315  * @var mac_ax_snd_wd_para::data_er
10316  * Please Place Description here.
10317  * @var mac_ax_snd_wd_para::data_dcm
10318  * Please Place Description here.
10319  * @var mac_ax_snd_wd_para::data_stbc
10320  * Please Place Description here.
10321  * @var mac_ax_snd_wd_para::data_ldpc
10322  * Please Place Description here.
10323  * @var mac_ax_snd_wd_para::data_bw_er
10324  * Please Place Description here.
10325  * @var mac_ax_snd_wd_para::multiport_id
10326  * Please Place Description here.
10327  * @var mac_ax_snd_wd_para::mbssid
10328  * Please Place Description here.
10329  * @var mac_ax_snd_wd_para::signaling_ta_pkt_sc
10330  * Please Place Description here.
10331  * @var mac_ax_snd_wd_para::sw_define
10332  * Please Place Description here.
10333  * @var mac_ax_snd_wd_para::txpwr_ofset_type
10334  * Please Place Description here.
10335  * @var mac_ax_snd_wd_para::lifetime_sel
10336  * Please Place Description here.
10337  * @var mac_ax_snd_wd_para::stf_mode
10338  * Please Place Description here.
10339  * @var mac_ax_snd_wd_para::disdatafb
10340  * Please Place Description here.
10341  * @var mac_ax_snd_wd_para::data_txcnt_lmt_sel
10342  * Please Place Description here.
10343  * @var mac_ax_snd_wd_para::data_txcnt_lmt
10344  * Please Place Description here.
10345  * @var mac_ax_snd_wd_para::sifs_tx
10346  * Please Place Description here.
10347  * @var mac_ax_snd_wd_para::snd_pkt_sel
10348  * Please Place Description here.
10349  * @var mac_ax_snd_wd_para::ndpa
10350  * Please Place Description here.
10351  * @var mac_ax_snd_wd_para::rsvd
10352  * Please Place Description here.
10353  */
10354 struct mac_ax_snd_wd_para {
10355 	u16 txpktsize;
10356 	u16 ndpa_duration;
10357 
10358 	u16 datarate: 9;
10359 	u16 macid: 7;//wd
10360 	u8 force_txop: 1;
10361 	u8 data_bw: 2;
10362 	u8 gi_ltf: 3;
10363 	u8 data_er: 1;
10364 	u8 data_dcm: 1;
10365 	u8 data_stbc: 1;
10366 	u8 data_ldpc: 1;
10367 	u8 data_bw_er : 1;
10368 	u8 multiport_id: 1;
10369 	u8 mbssid: 4;
10370 
10371 	u8 signaling_ta_pkt_sc: 4;
10372 	u8 sw_define: 4;
10373 	u8 txpwr_ofset_type: 3;
10374 	u8 lifetime_sel: 3;
10375 	u8 stf_mode: 1;
10376 	u8 disdatafb: 1;
10377 	u8 data_txcnt_lmt_sel: 1;
10378 	u8 data_txcnt_lmt: 6;
10379 	u8 sifs_tx: 1;
10380 	u8 snd_pkt_sel: 3;
10381 	u8 ndpa: 2;
10382 	u8 rsvd: 3;
10383 };
10384 
10385 /**
10386  * @struct mac_ax_snd_f2P
10387  * @brief mac_ax_snd_f2P
10388  *
10389  * @var mac_ax_snd_f2P::csi_len_bfrp
10390  * Please Place Description here.
10391  * @var mac_ax_snd_f2P::tb_t_pe_bfrp
10392  * Please Place Description here.
10393  * @var mac_ax_snd_f2P::tri_pad_bfrp
10394  * Please Place Description here.
10395  * @var mac_ax_snd_f2P::ul_cqi_rpt_tri_bfrp
10396  * Please Place Description here.
10397  * @var mac_ax_snd_f2P::rf_gain_idx_bfrp
10398  * Please Place Description here.
10399  * @var mac_ax_snd_f2P::fix_gain_en_bfrp
10400  * Please Place Description here.
10401  * @var mac_ax_snd_f2P::rsvd
10402  * Please Place Description here.
10403  */
10404 struct mac_ax_snd_f2P {
10405 	u16 csi_len_bfrp: 12;
10406 	u16 tb_t_pe_bfrp: 2;
10407 	u16 tri_pad_bfrp: 2;
10408 
10409 	u16 ul_cqi_rpt_tri_bfrp: 1;
10410 	u16 rf_gain_idx_bfrp: 10;
10411 	u16 fix_gain_en_bfrp: 1;
10412 	u16 rsvd: 4;
10413 };
10414 
10415 /**
10416  * @struct mac_ax_snd_f2P_info
10417  * @brief mac_ax_snd_f2P_info
10418  *
10419  * @var mac_ax_snd_f2p_info::f2p_type
10420  * Please Place Description here.
10421  * @var mac_ax_snd_f2p_info::f2p_index
10422  * Please Place Description here.
10423  * @var mac_ax_snd_f2p_info::f2p_period
10424  * Please Place Description here.
10425  * @var mac_ax_snd_f2p_info::f2p_updcnt
10426  * Please Place Description here.
10427  * @var mac_ax_snd_f2p_info:cr_idx
10428  * Please Place Description here.
10429  * @var mac_ax_snd_f2p_info::rsvd
10430  * Please Place Description here..
10431  */
10432 struct mac_ax_snd_f2p_info {
10433 	u16 f2p_type: 8;
10434 	u16 f2p_index: 8;
10435 	u16 f2p_period;
10436 
10437 	u32 f2p_updcnt: 8;
10438 	u32 cr_idx: 22;
10439 	u32 rsvd: 2;
10440 };
10441 
10442 /**
10443  * @struct mac_ax_fwcmd_snd
10444  * @brief mac_ax_fwcmd_snd
10445  *
10446  * @var mac_ax_fwcmd_snd::frexgtype
10447  * Please Place Description here.
10448  * @var mac_ax_fwcmd_snd::mode
10449  * Please Place Description here.
10450  * @var mac_ax_fwcmd_snd::bfrp0_user_num
10451  * Please Place Description here.
10452  * @var mac_ax_fwcmd_snd::bfrp1_user_num
10453  * Please Place Description here.
10454  * @var mac_ax_fwcmd_snd::rsvd
10455  * Please Place Description here.
10456  * @var mac_ax_fwcmd_snd::macid
10457  * Please Place Description here.
10458  * @var mac_ax_fwcmd_snd::pndpa
10459  * Please Place Description here.
10460  * @var mac_ax_fwcmd_snd::pbfrp
10461  * Please Place Description here.
10462  * @var mac_ax_fwcmd_snd::wd
10463  * Please Place Description here.
10464  * @var mac_ax_fwcmd_snd::f2p
10465  * Please Place Description here.
10466  */
10467 struct mac_ax_fwcmd_snd {
10468 	u32 frexgtype: 6;
10469 	u32 mode: 2;
10470 	u32 bfrp0_user_num: 3;
10471 	u32 bfrp1_user_num: 3;
10472 	u32 rsvd: 18;
10473 	u8 macid[8];
10474 	struct mac_ax_ndpa_para pndpa;
10475 	struct mac_ax_bfrp_para pbfrp;
10476 	struct mac_ax_snd_wd_para wd[5];
10477 	struct mac_ax_snd_f2P f2p[2];
10478 	struct mac_ax_snd_f2p_info sfp;
10479 };
10480 
10481 /**
10482  * @struct mac_ax_ie_cam_info
10483  * @brief mac_ax_ie_cam_info
10484  *
10485  * @var mac_ax_ie_cam_info::type
10486  * Please Place Description here.
10487  * @var mac_ax_ie_cam_info::ienum_ie
10488  * Please Place Description here.
10489  * @var mac_ax_ie_cam_info::ie_ofst_len
10490  * Please Place Description here.
10491  * @var mac_ax_ie_cam_info::ie_msk_crc
10492  * Please Place Description here.
10493  * @var mac_ax_ie_cam_info::ie_val
10494  * Please Place Description here.
10495  * @var mac_ax_ie_cam_info::rsvd0
10496  * Please Place Description here.
10497  * @var mac_ax_ie_cam_info::rsvd1
10498  * Please Place Description here.
10499  * @var mac_ax_ie_cam_info::rsvd2
10500  * Please Place Description here.
10501  */
10502 struct mac_ax_ie_cam_info {
10503 	u8 type;
10504 	u8 ienum_ie;
10505 	u8 ie_ofst_len;
10506 	u8 ie_msk_crc;
10507 	u8 ie_val;
10508 	u8 rsvd0;
10509 	u8 rsvd1;
10510 	u8 rsvd2;
10511 };
10512 
10513 /*--------------------Define wowlan related struct ---------------------------*/
10514 
10515 /**
10516  * @struct mac_ax_keep_alive_info
10517  * @brief mac_ax_keep_alive_info
10518  *
10519  * @var mac_ax_keep_alive_info::keepalive_en
10520  * Please Place Description here.
10521  * @var mac_ax_keep_alive_info::rsvd
10522  * Please Place Description here.
10523  * @var mac_ax_keep_alive_info::packet_id
10524  * Please Place Description here.
10525  * @var mac_ax_keep_alive_info::period
10526  * Please Place Description here.
10527  */
10528 struct mac_ax_keep_alive_info {
10529 	u8 keepalive_en: 1;
10530 	u8 rsvd: 7;
10531 	u8 packet_id;
10532 	u8 period;
10533 };
10534 
10535 /**
10536  * @struct mac_ax_disconnect_det_info
10537  * @brief mac_ax_disconnect_det_info
10538  *
10539  * @var mac_ax_disconnect_det_info::disconnect_detect_en
10540  * Please Place Description here.
10541  * @var mac_ax_disconnect_det_info::tryok_bcnfail_count_en
10542  * Please Place Description here.
10543  * @var mac_ax_disconnect_det_info::disconnect_en
10544  * Please Place Description here.
10545  * @var mac_ax_disconnect_det_info::rsvd
10546  * Please Place Description here.
10547  * @var mac_ax_disconnect_det_info::check_period
10548  * Please Place Description here.
10549  * @var mac_ax_disconnect_det_info::try_pkt_count
10550  * Please Place Description here.
10551  * @var mac_ax_disconnect_det_info::tryok_bcnfail_count_limit
10552  * Please Place Description here.
10553  */
10554 struct mac_ax_disconnect_det_info {
10555 	u8 disconnect_detect_en: 1;
10556 	u8 tryok_bcnfail_count_en: 1;
10557 	u8 disconnect_en: 1;
10558 	u8 rsvd: 5;
10559 	u8 check_period;
10560 	u8 try_pkt_count;
10561 	u8 tryok_bcnfail_count_limit;
10562 };
10563 
10564 /**
10565  * @enum mac_ax_enc_alg
10566  *
10567  * @brief mac_ax_enc_alg
10568  *
10569  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_NONE
10570  * Please Place Description here.
10571  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_WEP40
10572  * Please Place Description here.
10573  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_WEP104
10574  * Please Place Description here.
10575  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_TKIP
10576  * Please Place Description here.
10577  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_WAPI
10578  * Please Place Description here.
10579  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_GCMSMS4
10580  * Please Place Description here.
10581  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_CCMP
10582  * Please Place Description here.
10583  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_CCMP256
10584  * Please Place Description here.
10585  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_GCMP
10586  * Please Place Description here.
10587  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_GCMP256
10588  * Please Place Description here.
10589  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_BIP_CCMP128
10590  * Please Place Description here.
10591  * @var mac_ax_enc_alg::MAC_AX_RTW_ENC_MAX
10592  * Please Place Description here.
10593  */
10594 enum mac_ax_enc_alg {
10595 	MAC_AX_RTW_ENC_NONE = 0,
10596 	MAC_AX_RTW_ENC_WEP40 = 1,
10597 	MAC_AX_RTW_ENC_WEP104,
10598 	MAC_AX_RTW_ENC_TKIP,
10599 	MAC_AX_RTW_ENC_WAPI,
10600 	MAC_AX_RTW_ENC_GCMSMS4,
10601 	MAC_AX_RTW_ENC_CCMP,
10602 	MAC_AX_RTW_ENC_CCMP256,
10603 	MAC_AX_RTW_ENC_GCMP,
10604 	MAC_AX_RTW_ENC_GCMP256,
10605 	MAC_AX_RTW_ENC_BIP_CCMP128,
10606 	MAC_AX_RTW_ENC_MAX
10607 };
10608 
10609 /**
10610  * @enum bip_sec_algo_type
10611  *
10612  * @brief bip_sec_algo_type
10613  *
10614  * @var bip_sec_algo_type::BIP_CMAC_128
10615  * Please Place Description here.
10616  * @var bip_sec_algo_type::BIP_CMAC_256
10617  * Please Place Description here.
10618  * @var bip_sec_algo_type::BIP_GMAC_128
10619  * Please Place Description here.
10620  * @var bip_sec_algo_type::BIP_GMAC_256
10621  * Please Place Description here.
10622  */
10623 enum bip_sec_algo_type {
10624 	BIP_CMAC_128 = 0,
10625 	BIP_CMAC_256 = 1,
10626 	BIP_GMAC_128 = 2,
10627 	BIP_GMAC_256 = 3
10628 };
10629 
10630 /**
10631  * @struct mac_ax_wow_wake_info
10632  * @brief mac_ax_wow_wake_info
10633  *
10634  * @var mac_ax_wow_wake_info::wow_en
10635  * Please Place Description here.
10636  * @var mac_ax_wow_wake_info::drop_all_pkt
10637  * Please Place Description here.
10638  * @var mac_ax_wow_wake_info::rx_parse_after_wake
10639  * Please Place Description here.
10640  * @var mac_ax_wow_wake_info::rsvd
10641  * Please Place Description here.
10642  * @var mac_ax_wow_wake_info::pairwise_sec_algo
10643  * Please Place Description here.
10644  * @var mac_ax_wow_wake_info::group_sec_algo
10645  * Please Place Description here.
10646  * @var mac_ax_wow_wake_info::remotectrl_info_content
10647  * Please Place Description here.
10648  * @var mac_ax_wow_wake_info::pattern_match_en
10649  * Please Place Description here.
10650  * @var mac_ax_wow_wake_info::magic_en
10651  * Please Place Description here.
10652  * @var mac_ax_wow_wake_info::hw_unicast_en
10653  * Please Place Description here.
10654  * @var mac_ax_wow_wake_info::fw_unicast_en
10655  * Please Place Description here.
10656  * @var mac_ax_wow_wake_info::deauth_wakeup
10657  * Please Place Description here.
10658  * @var mac_ax_wow_wake_info::rekey_wakeup
10659  * Please Place Description here.
10660  * @var mac_ax_wow_wake_info::eap_wakeup
10661  * Please Place Description here.
10662  * @var mac_ax_wow_wake_info::all_data_wakeup
10663  * Please Place Description here.
10664  */
10665 struct mac_ax_wow_wake_info {
10666 	u8 wow_en: 1;
10667 	u8 drop_all_pkt: 1;
10668 	u8 rx_parse_after_wake: 1;
10669 	u8 rsvd: 5;
10670 	enum mac_ax_enc_alg pairwise_sec_algo;
10671 	enum mac_ax_enc_alg group_sec_algo;
10672 	u32 remotectrl_info_content;
10673 	u8 pattern_match_en: 1;
10674 	u8 magic_en: 1;
10675 	u8 hw_unicast_en: 1;
10676 	u8 fw_unicast_en: 1;
10677 	u8 deauth_wakeup: 1;
10678 	u8 rekey_wakeup: 1;
10679 	u8 eap_wakeup: 1;
10680 	u8 all_data_wakeup: 1;
10681 };
10682 
10683 #define IV_LENGTH 8
10684 
10685 /**
10686  * @struct mac_ax_remotectrl_info_parm_
10687  * @brief mac_ax_remotectrl_info_parm_
10688  *
10689  * @var mac_ax_remotectrl_info_parm_::ptktxiv
10690  * Please Place Description here.
10691  * @var mac_ax_remotectrl_info_parm_::validcheck
10692  * Please Place Description here.
10693  * @var mac_ax_remotectrl_info_parm_::symbolchecken
10694  * Please Place Description here.
10695  * @var mac_ax_remotectrl_info_parm_::lastkeyid
10696  * Please Place Description here.
10697  * @var mac_ax_remotectrl_info_parm_::rsvd
10698  * Please Place Description here.
10699  * @var mac_ax_remotectrl_info_parm_::rxptkiv
10700  * Please Place Description here.
10701  * @var mac_ax_remotectrl_info_parm_::rxgtkiv_0
10702  * Please Place Description here.
10703  * @var mac_ax_remotectrl_info_parm_::rxgtkiv_1
10704  * Please Place Description here.
10705  * @var mac_ax_remotectrl_info_parm_::rxgtkiv_2
10706  * Please Place Description here.
10707  * @var mac_ax_remotectrl_info_parm_::rxgtkiv_3
10708  * Please Place Description here.
10709  */
10710 struct mac_ax_remotectrl_info_parm_ {
10711 	u8  ptktxiv[IV_LENGTH];
10712 	/* value = 0xdd */
10713 	u8  validcheck;
10714 	/* bit0 : check ptk, bit1 : check gtk */
10715 	u8  symbolchecken;
10716 	/* the last gtk index used by driver */
10717 	u8  lastkeyid;
10718 	u8  rsvd[5];
10719 	/* unicast iv */
10720 	u8  rxptkiv[IV_LENGTH];
10721 	/* broadcast/mulicast iv, 4 gtk index */
10722 	u8  rxgtkiv_0[IV_LENGTH];
10723 	u8  rxgtkiv_1[IV_LENGTH];
10724 	u8  rxgtkiv_2[IV_LENGTH];
10725 	u8  rxgtkiv_3[IV_LENGTH];
10726 };
10727 
10728 /**
10729  * @struct mac_ax_wake_ctrl_info
10730  * @brief mac_ax_wake_ctrl_info
10731  *
10732  * @var mac_ax_wake_ctrl_info::pattern_match_en
10733  * Please Place Description here.
10734  * @var mac_ax_wake_ctrl_info::magic_en
10735  * Please Place Description here.
10736  * @var mac_ax_wake_ctrl_info::hw_unicast_en
10737  * Please Place Description here.
10738  * @var mac_ax_wake_ctrl_info::fw_unicast_en
10739  * Please Place Description here.
10740  * @var mac_ax_wake_ctrl_info::deauth_wakeup
10741  * Please Place Description here.
10742  * @var mac_ax_wake_ctrl_info::rekey_wakeup
10743  * Please Place Description here.
10744  * @var mac_ax_wake_ctrl_info::eap_wakeup
10745  * Please Place Description here.
10746  * @var mac_ax_wake_ctrl_info::all_data_wakeup
10747  * Please Place Description here.
10748  */
10749 struct mac_ax_wake_ctrl_info {
10750 	u8 pattern_match_en: 1;
10751 	u8 magic_en: 1;
10752 	u8 hw_unicast_en: 1;
10753 	u8 fw_unicast_en: 1;
10754 	u8 deauth_wakeup: 1;
10755 	u8 rekey_wakeup: 1;
10756 	u8 eap_wakeup: 1;
10757 	u8 all_data_wakeup: 1;
10758 };
10759 
10760 /**
10761  * @struct mac_ax_gtk_ofld_info
10762  * @brief mac_ax_gtk_ofld_info
10763  *
10764  * @var mac_ax_gtk_ofld_info::gtk_en
10765  * Please Place Description here.
10766  * @var mac_ax_gtk_ofld_info::tkip_en
10767  * Please Place Description here.
10768  * @var mac_ax_gtk_ofld_info::ieee80211w_en
10769  * Please Place Description here.
10770  * @var mac_ax_gtk_ofld_info::pairwise_wakeup
10771  * Please Place Description here.
10772  * @var mac_ax_gtk_ofld_info::bip_sec_algo
10773  * Please Place Description here.
10774  * @var mac_ax_gtk_ofld_info::rsvd
10775  * Please Place Description here.
10776  * @var mac_ax_gtk_ofld_info::gtk_rsp_id
10777  * Please Place Description here.
10778  * @var mac_ax_gtk_ofld_info::pmf_sa_query_id
10779  * Please Place Description here.
10780  */
10781 struct mac_ax_gtk_ofld_info {
10782 	u8 gtk_en: 1;
10783 	u8 tkip_en: 1;
10784 	u8 ieee80211w_en: 1;
10785 	u8 pairwise_wakeup: 1;
10786 	u8 bip_sec_algo: 2;
10787 	u8 rsvd: 2;
10788 	u8 gtk_rsp_id: 8;
10789 	u8 pmf_sa_query_id: 8;
10790 	u8 algo_akm_suit: 8;
10791 };
10792 
10793 #define AOAC_REPORT_VERSION 1
10794 
10795 /**
10796  * @struct mac_ax_aoac_report
10797  * @brief mac_ax_aoac_report
10798  *
10799  * @var mac_ax_aoac_report::rpt_ver
10800  * Please Place Description here.
10801  * @var mac_ax_aoac_report::sec_type
10802  * Please Place Description here.
10803  * @var mac_ax_aoac_report::key_idx
10804  * Please Place Description here.
10805  * @var mac_ax_aoac_report::pattern_idx
10806  * Please Place Description here.
10807  * @var mac_ax_aoac_report::rekey_ok
10808  * Please Place Description here.
10809  * @var mac_ax_aoac_report::rsvd0
10810  * Please Place Description here.
10811  * @var mac_ax_aoac_report::rsvd1
10812  * Please Place Description here.
10813  * @var mac_ax_aoac_report::ptk_tx_iv
10814  * Please Place Description here.
10815  * @var mac_ax_aoac_report::eapol_key_replay_count
10816  * Please Place Description here.
10817  * @var mac_ax_aoac_report::gtk
10818  * Please Place Description here.
10819  * @var mac_ax_aoac_report::ptk_rx_iv
10820  * Please Place Description here.
10821  * @var mac_ax_aoac_report::gtk_rx_iv_0
10822  * Please Place Description here.
10823  * @var mac_ax_aoac_report::gtk_rx_iv_1
10824  * Please Place Description here.
10825  * @var mac_ax_aoac_report::gtk_rx_iv_2
10826  * Please Place Description here.
10827  * @var mac_ax_aoac_report::gtk_rx_iv_3
10828  * Please Place Description here.
10829  * @var mac_ax_aoac_report::igtk_key_id
10830  * Please Place Description here.
10831  * @var mac_ax_aoac_report::igtk_ipn
10832  * Please Place Description here.
10833  * @var mac_ax_aoac_report::igtk
10834  * Please Place Description here.
10835  */
10836 struct mac_ax_aoac_report {
10837 	u8 rpt_ver;
10838 	u8 sec_type;
10839 	u8 key_idx;
10840 	u8 pattern_idx;
10841 	u8 rekey_ok: 1;
10842 	u8 rsvd0: 7;
10843 	u8 rsvd1[3];
10844 	u8 ptk_tx_iv[IV_LENGTH];
10845 	u8 eapol_key_replay_count[8];
10846 	u8 gtk[32];
10847 	u8 ptk_rx_iv[IV_LENGTH];
10848 	u8 gtk_rx_iv_0[IV_LENGTH];
10849 	u8 gtk_rx_iv_1[IV_LENGTH];
10850 	u8 gtk_rx_iv_2[IV_LENGTH];
10851 	u8 gtk_rx_iv_3[IV_LENGTH];
10852 	u8 igtk_key_id[8];
10853 	u8 igtk_ipn[8];
10854 	u8 igtk[32];
10855 };
10856 
10857 #define EAPOL_KCK_LENGTH 32
10858 #define EAPOL_KEK_LENGTH 32
10859 #define TKIP_TK_LENGTH 16
10860 #define TKIP_MIC_KEY_LENGTH 8
10861 #define IGTK_KEY_ID_LENGTH 4
10862 #define IGTK_PKT_NUM_LENGTH 8
10863 #define IGTK_LENGTH 16
10864 #define IGTK_OFFSET 4
10865 
10866 union keytype {
10867 	u8 SKEY[32];
10868 	u32 LKEY[4];
10869 };
10870 
10871 /**
10872  * @struct mac_ax_gtk_info_parm_
10873  * @brief mac_ax_gtk_info_parm_
10874  *
10875  * @var mac_ax_gtk_info_parm_::kck
10876  * Please Place Description here.
10877  * @var mac_ax_gtk_info_parm_::kek
10878  * Please Place Description here.
10879  * @var mac_ax_gtk_info_parm_::tk1
10880  * Please Place Description here.
10881  * @var mac_ax_gtk_info_parm_::txmickey
10882  * Please Place Description here.
10883  * @var mac_ax_gtk_info_parm_::rxmickey
10884  * Please Place Description here.
10885  * @var mac_ax_gtk_info_parm_::igtk_keyid
10886  * Please Place Description here.
10887  * @var mac_ax_gtk_info_parm_::ipn
10888  * Please Place Description here.
10889  * @var mac_ax_gtk_info_parm_::igtk
10890  * Please Place Description here.
10891  * @var mac_ax_gtk_info_parm_::sk
10892  * Please Place Description here.
10893  */
10894 struct mac_ax_gtk_info_parm_ {
10895 	/* eapol - key confirmation key (kck) */
10896 	u8  kck[EAPOL_KCK_LENGTH];
10897 	/* eapol - key encryption key (kek) */
10898 	u8  kek[EAPOL_KEK_LENGTH];
10899 	/* temporal key 1 (tk1) */
10900 	u8  tk1[TKIP_TK_LENGTH];
10901 	u8  txmickey[TKIP_MIC_KEY_LENGTH];
10902 	u8  rxmickey[TKIP_MIC_KEY_LENGTH];
10903 	u8 igtk_keyid[IGTK_KEY_ID_LENGTH];
10904 	u8 ipn[IGTK_PKT_NUM_LENGTH];
10905 	union keytype igtk[2];
10906 	union keytype sk[1];
10907 };
10908 
10909 /**
10910  * @struct mac_ax_arp_ofld_info
10911  * @brief mac_ax_arp_ofld_info
10912  *
10913  * @var mac_ax_arp_ofld_info::arp_en
10914  * Please Place Description here.
10915  * @var mac_ax_arp_ofld_info::arp_action
10916  * Please Place Description here.
10917  * @var mac_ax_arp_ofld_info::rsvd
10918  * Please Place Description here.
10919  * @var mac_ax_arp_ofld_info::arp_rsp_id
10920  * Please Place Description here.
10921  */
10922 struct mac_ax_arp_ofld_info {
10923 	u8 arp_en: 1;
10924 	u8 arp_action: 1;
10925 	u8 rsvd: 6;
10926 	u8 arp_rsp_id: 8;
10927 };
10928 
10929 /**
10930  * @struct mac_ax_ndp_ofld_info
10931  * @brief mac_ax_ndp_ofld_info
10932  *
10933  * @var mac_ax_ndp_ofld_info::ndp_en
10934  * Please Place Description here.
10935  * @var mac_ax_ndp_ofld_info::rsvd
10936  * Please Place Description here.
10937  * @var mac_ax_ndp_ofld_info::na_id
10938  * Please Place Description here.
10939  */
10940 struct mac_ax_ndp_ofld_info {
10941 	u8 ndp_en: 1;
10942 	u8 rsvd: 7;
10943 	u8 na_id: 8;
10944 };
10945 
10946 #define MAC_ADDRESS_LENGTH    6
10947 #define IPV6_ADDRESS_LENGTH   16
10948 
10949 /**
10950  * @struct mac_ax_ndp_info_parm_
10951  * @brief mac_ax_ndp_info_parm_
10952  *
10953  * @var mac_ax_ndp_info_parm_::enable
10954  * Please Place Description here.
10955  * @var mac_ax_ndp_info_parm_::checkremoveip
10956  * Please Place Description here.
10957  * @var mac_ax_ndp_info_parm_::rsvd
10958  * Please Place Description here.
10959  * @var mac_ax_ndp_info_parm_::numberoftargetip
10960  * Please Place Description here.
10961  * @var mac_ax_ndp_info_parm_::targetlinkaddress
10962  * Please Place Description here.
10963  * @var mac_ax_ndp_info_parm_::remoteipv6address
10964  * Please Place Description here.
10965  * @var mac_ax_ndp_info_parm_::targetip
10966  * Please Place Description here.
10967  */
10968 struct mac_ax_ndp_info_parm_ {
10969 	u8 enable: 1;
10970 	/* need to check sender ip or not */
10971 	u8 checkremoveip: 1;
10972 	/* need to check sender ip or not */
10973 	u8 rsvd: 6;
10974 	/* number of check ip which na query ip */
10975 	u8 numberoftargetip;
10976 	/* maybe support change mac address !! */
10977 	u8 targetlinkaddress[MAC_ADDRESS_LENGTH];
10978 	/* just respond ip */
10979 	u8 remoteipv6address[IPV6_ADDRESS_LENGTH];
10980 	/* target ip */
10981 	u8 targetip[2][IPV6_ADDRESS_LENGTH];
10982 };
10983 
10984 /**
10985  * @struct mac_ax_realwow_info
10986  * @brief mac_ax_realwow_info
10987  *
10988  * @var mac_ax_realwow_info::realwow_en
10989  * Please Place Description here.
10990  * @var mac_ax_realwow_info::auto_wakeup
10991  * Please Place Description here.
10992  * @var mac_ax_realwow_info::rsvd0
10993  * Please Place Description here.
10994  * @var mac_ax_realwow_info::keepalive_id
10995  * Please Place Description here.
10996  * @var mac_ax_realwow_info::wakeup_pattern_id
10997  * Please Place Description here.
10998  * @var mac_ax_realwow_info::ack_pattern_id
10999  * Please Place Description here.
11000  */
11001 struct mac_ax_realwow_info {
11002 	u8 realwow_en: 1;
11003 	u8 auto_wakeup: 1;
11004 	u8 rsvd0: 6;
11005 	u8 keepalive_id: 8;
11006 	u8 wakeup_pattern_id: 8;
11007 	u8 ack_pattern_id: 8;
11008 };
11009 
11010 /**
11011  * @struct mac_ax_realwowv2_info_parm_
11012  * @brief mac_ax_realwowv2_info_parm_
11013  *
11014  * @var mac_ax_realwowv2_info_parm_::interval
11015  * Please Place Description here.
11016  * @var mac_ax_realwowv2_info_parm_::kapktsize
11017  * Please Place Description here.
11018  * @var mac_ax_realwowv2_info_parm_::acklostlimit
11019  * Please Place Description here.
11020  * @var mac_ax_realwowv2_info_parm_::ackpatternsize
11021  * Please Place Description here.
11022  * @var mac_ax_realwowv2_info_parm_::wakeuppatternsize
11023  * Please Place Description here.
11024  * @var mac_ax_realwowv2_info_parm_::rsvd
11025  * Please Place Description here.
11026  * @var mac_ax_realwowv2_info_parm_::wakeupsecnum
11027  * Please Place Description here.
11028  */
11029 struct mac_ax_realwowv2_info_parm_ {
11030 	u16 interval;   /*unit : 1 ms */
11031 	u16 kapktsize;
11032 	u16 acklostlimit;
11033 	u16 ackpatternsize;
11034 	u16 wakeuppatternsize;
11035 	u16 rsvd;
11036 	u32 wakeupsecnum;
11037 };
11038 
11039 /**
11040  * @struct mac_ax_nlo_info
11041  * @brief mac_ax_nlo_info
11042  *
11043  * @var mac_ax_nlo_info::nlo_en
11044  * Please Place Description here.
11045  * @var mac_ax_nlo_info::nlo_32k_en
11046  * Please Place Description here.
11047  * @var mac_ax_nlo_info::ignore_cipher_type
11048  * Please Place Description here.
11049  * @var mac_ax_nlo_info::rsvd
11050  * Please Place Description here.
11051  */
11052 struct mac_ax_nlo_info {
11053 	u8 nlo_en: 1;
11054 	u8 nlo_32k_en: 1;
11055 	u8 ignore_cipher_type: 1;
11056 	u8 rsvd: 5;
11057 };
11058 
11059 #define MAX_SUPPORT_NL_NUM   16
11060 #define MAX_PROBE_REQ_NUM    8
11061 #define SSID_MAX_LEN         32
11062 
11063 /**
11064  * @struct mac_ax_nlo_networklist_parm_
11065  * @brief mac_ax_nlo_networklist_parm_
11066  *
11067  * @var mac_ax_nlo_networklist_parm_::numofentries
11068  * Please Place Description here.
11069  * @var mac_ax_nlo_networklist_parm_::numofhiddenap
11070  * Please Place Description here.
11071  * @var mac_ax_nlo_networklist_parm_::rsvd
11072  * Please Place Description here.
11073  * @var mac_ax_nlo_networklist_parm_::patterncheck
11074  * Please Place Description here.
11075  * @var mac_ax_nlo_networklist_parm_::rsvd1
11076  * Please Place Description here.
11077  * @var mac_ax_nlo_networklist_parm_::rsvd2
11078  * Please Place Description here.
11079  * @var mac_ax_nlo_networklist_parm_::ssidlen
11080  * Please Place Description here.
11081  * @var mac_ax_nlo_networklist_parm_::chipertype
11082  * Please Place Description here.
11083  * @var mac_ax_nlo_networklist_parm_::rsvd3
11084  * Please Place Description here.
11085  * @var mac_ax_nlo_networklist_parm_::locprobereq
11086  * Please Place Description here.
11087  * @var mac_ax_nlo_networklist_parm_::ssid
11088  * Please Place Description here.
11089  */
11090 struct mac_ax_nlo_networklist_parm_ {
11091 	u8  numofentries;
11092 	u8  numofhiddenap;
11093 	u8  rsvd[2];
11094 	u32 patterncheck;
11095 	u32 rsvd1;
11096 	u32 rsvd2;
11097 	u8  ssidlen[MAX_SUPPORT_NL_NUM];
11098 	u8  chipertype[MAX_SUPPORT_NL_NUM];
11099 	u8  rsvd3[MAX_SUPPORT_NL_NUM];
11100 	u8  locprobereq[MAX_PROBE_REQ_NUM];
11101 	u8  ssid[MAX_SUPPORT_NL_NUM][SSID_MAX_LEN];
11102 };
11103 
11104 /**
11105  * @struct mac_ax_negative_pattern_info
11106  * @brief mac_ax_negative_pattern_info
11107  *
11108  * @var mac_ax_negative_pattern_info::negative_pattern_en
11109  * Please Place Description here.
11110  * @var mac_ax_negative_pattern_info::rsvd
11111  * Please Place Description here.
11112  * @var mac_ax_negative_pattern_info::pattern_count
11113  * Please Place Description here.
11114  */
11115 struct mac_ax_negative_pattern_info {
11116 	u8 negative_pattern_en: 1;
11117 	u8 rsvd: 3;
11118 	u8 pattern_count: 4;
11119 };
11120 
11121 /**
11122  * @struct mac_ax_dev2hst_gpio_info
11123  * @brief mac_ax_dev2hst_gpio_info
11124  *
11125  * @var mac_ax_dev2hst_gpio_info::dev2hst_gpio_en
11126  * Please Place Description here.
11127  * @var mac_ax_dev2hst_gpio_info::disable_inband
11128  * Please Place Description here.
11129  * @var mac_ax_dev2hst_gpio_info::gpio_output_input
11130  * Please Place Description here.
11131  * @var mac_ax_dev2hst_gpio_info::gpio_active
11132  * Please Place Description here.
11133  * @var mac_ax_dev2hst_gpio_info::toggle_pulse
11134  * Please Place Description here.
11135  * @var mac_ax_dev2hst_gpio_info::data_pin_wakeup
11136  * Please Place Description here.
11137  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_nonstop
11138  * Please Place Description here.
11139  * @var mac_ax_dev2hst_gpio_info::gpio_time_unit
11140  * Please Place Description here.
11141  * @var mac_ax_dev2hst_gpio_info::gpio_num
11142  * Please Place Description here.
11143  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_dura
11144  * Please Place Description here.
11145  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_period
11146  * Please Place Description here.
11147  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_count
11148  * Please Place Description here.
11149  * @var mac_ax_dev2hst_gpio_info::rsvd0
11150  * Please Place Description here.
11151  * @var mac_ax_dev2hst_gpio_info::customer_id
11152  * Please Place Description here.
11153  * @var mac_ax_dev2hst_gpio_info::rsvd1
11154  * Please Place Description here.
11155  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_en_a
11156  * Please Place Description here.
11157  * @var mac_ax_dev2hst_gpio_info::gpio_duration_unit_a
11158  * Please Place Description here.
11159  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_nonstop_a
11160  * Please Place Description here.
11161  * @var mac_ax_dev2hst_gpio_info::rsvd2
11162  * Please Place Description here.
11163  * @var mac_ax_dev2hst_gpio_info::special_reason_a
11164  * Please Place Description here.
11165  * @var mac_ax_dev2hst_gpio_info::gpio_duration_a
11166  * Please Place Description here.
11167  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_count_a
11168  * Please Place Description here.
11169  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_en_b
11170  * Please Place Description here.
11171  * @var mac_ax_dev2hst_gpio_info::gpio_duration_unit_b
11172  * Please Place Description here.
11173  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_nonstop_b
11174  * Please Place Description here.
11175  * @var mac_ax_dev2hst_gpio_info::rsvd3
11176  * Please Place Description here.
11177  * @var mac_ax_dev2hst_gpio_info::special_reason_b
11178  * Please Place Description here.
11179  * @var mac_ax_dev2hst_gpio_info::gpio_duration_b
11180  * Please Place Description here.
11181  * @var mac_ax_dev2hst_gpio_info::gpio_pulse_count_b
11182  * Please Place Description here.
11183  */
11184 struct mac_ax_dev2hst_gpio_info {
11185 	/* dword0 */
11186 	u32 dev2hst_gpio_en:1;
11187 	u32 disable_inband:1;
11188 	u32 gpio_output_input:1;
11189 	u32 gpio_active:1;
11190 	u32 toggle_pulse:1;
11191 	u32 data_pin_wakeup:1;
11192 	u32 gpio_pulse_nonstop:1;
11193 	u32 gpio_time_unit:1;
11194 	u32 gpio_num:8;
11195 	u32 gpio_pulse_dura:8;
11196 	u32 gpio_pulse_period:8;
11197 	/* dword1 */
11198 	u32 gpio_pulse_count:8;
11199 	u32 rsvd0:24;
11200 	/* dword2 */
11201 	u32 customer_id:8;
11202 	u32 rsvd1:24;
11203 	/* dword3 */
11204 	u32 rsn_a_en:1;
11205 	u32 rsn_a_toggle_pulse:1;
11206 	u32 rsn_a_pulse_nonstop:1;
11207 	u32 rsn_a_time_unit:1;
11208 	u32 rsvd2:28;
11209 	/* dword4 */
11210 	u32 rsn_a:8;
11211 	u32 rsn_a_pulse_duration:8;
11212 	u32 rsn_a_pulse_period:8;
11213 	u32 rsn_a_pulse_count:8;
11214 	/* dword5 */
11215 	u32 rsn_b_en:1;
11216 	u32 rsn_b_toggle_pulse:1;
11217 	u32 rsn_b_pulse_nonstop:1;
11218 	u32 rsn_b_time_unit:1;
11219 	u32 rsvd3:28;
11220 	/* dword6 */
11221 	u32 rsn_b:8;
11222 	u32 rsn_b_pulse_duration:8;
11223 	u32 rsn_b_pulse_period:8;
11224 	u32 rsn_b_pulse_count:8;
11225 	/* dword7 */
11226 	u32 gpio_pulse_en_a:8; /*deprecated*/
11227 	u32 gpio_duration_unit_a:8; /*deprecated*/
11228 	u32 gpio_pulse_nonstop_a:8; /*deprecated*/
11229 	u32 special_reason_a:8; /*deprecated*/
11230 	u32 gpio_duration_a:8; /*deprecated*/
11231 	u32 gpio_pulse_count_a:8; /*deprecated*/
11232 
11233 };
11234 
11235 /**
11236  * @struct mac_ax_uphy_ctrl_info
11237  * @brief mac_ax_uphy_ctrl_info
11238  *
11239  * @var mac_ax_uphy_ctrl_info::disable_uphy
11240  * Please Place Description here.
11241  * @var mac_ax_uphy_ctrl_info::handshake_mode
11242  * Please Place Description here.
11243  * @var mac_ax_uphy_ctrl_info::rsvd0
11244  * Please Place Description here.
11245  * @var mac_ax_uphy_ctrl_info::rise_hst2dev_dis_uphy
11246  * Please Place Description here.
11247  * @var mac_ax_uphy_ctrl_info::uphy_dis_delay_unit
11248  * Please Place Description here.
11249  * @var mac_ax_uphy_ctrl_info::pdn_as_uphy_dis
11250  * Please Place Description here.
11251  * @var mac_ax_uphy_ctrl_info::pdn_to_enable_uphy
11252  * Please Place Description here.
11253  * @var mac_ax_uphy_ctrl_info::rsvd1
11254  * Please Place Description here.
11255  * @var mac_ax_uphy_ctrl_info::hst2dev_gpio_num
11256  * Please Place Description here.
11257  * @var mac_ax_uphy_ctrl_info::uphy_dis_delay_count
11258  * Please Place Description here.
11259  */
11260 struct mac_ax_uphy_ctrl_info {
11261 	u8 disable_uphy: 1;
11262 	u8 handshake_mode: 3;
11263 	u8 rsvd0: 4;
11264 	u8 rise_hst2dev_dis_uphy: 1;
11265 	u8 uphy_dis_delay_unit: 1;
11266 	u8 pdn_as_uphy_dis: 1;
11267 	u8 pdn_to_enable_uphy: 1;
11268 	u8 rsvd1: 4;
11269 	u8 hst2dev_gpio_num: 8;
11270 	u8 uphy_dis_delay_count: 8;
11271 };
11272 
11273 /**
11274  * @struct mac_ax_wowcam_upd_info
11275  * @brief mac_ax_wowcam_upd_info
11276  *
11277  * @var mac_ax_wowcam_upd_info::r_w
11278  * Please Place Description here.
11279  * @var mac_ax_wowcam_upd_info::idx
11280  * Please Place Description here.
11281  * @var mac_ax_wowcam_upd_info::rsvd0
11282  * Please Place Description here.
11283  * @var mac_ax_wowcam_upd_info::wkfm1
11284  * Please Place Description here.
11285  * @var mac_ax_wowcam_upd_info::wkfm2
11286  * Please Place Description here.
11287  * @var mac_ax_wowcam_upd_info::wkfm3
11288  * Please Place Description here.
11289  * @var mac_ax_wowcam_upd_info::wkfm4
11290  * Please Place Description here.
11291  * @var mac_ax_wowcam_upd_info::crc
11292  * Please Place Description here.
11293  * @var mac_ax_wowcam_upd_info::rsvd1
11294  * Please Place Description here.
11295  * @var mac_ax_wowcam_upd_info::negative_pattern_match
11296  * Please Place Description here.
11297  * @var mac_ax_wowcam_upd_info::skip_mac_hdr
11298  * Please Place Description here.
11299  * @var mac_ax_wowcam_upd_info::uc
11300  * Please Place Description here.
11301  * @var mac_ax_wowcam_upd_info::mc
11302  * Please Place Description here.
11303  * @var mac_ax_wowcam_upd_info::bc
11304  * Please Place Description here.
11305  * @var mac_ax_wowcam_upd_info::rsvd2
11306  * Please Place Description here.
11307  * @var mac_ax_wowcam_upd_info::valid
11308  * Please Place Description here.
11309  */
11310 struct mac_ax_wowcam_upd_info {
11311 	u8 r_w: 1;
11312 	u8 idx: 7;
11313 	u8 rsvd0[3];
11314 	u32 wkfm1: 32;
11315 	u32 wkfm2: 32;
11316 	u32 wkfm3: 32;
11317 	u32 wkfm4: 32;
11318 	u16 crc: 16;
11319 	u8 rsvd1: 6;
11320 	u8 negative_pattern_match: 1;
11321 	u8 skip_mac_hdr: 1;
11322 	u8 uc: 1;
11323 	u8 mc: 1;
11324 	u8 bc: 1;
11325 	u8 rsvd2: 4;
11326 	u8 valid: 1;
11327 };
11328 
11329 /*--------------------Define SET/GET HW VALUE struct -------------------------*/
11330 
11331 /**
11332  * @struct mac_ax_sdio_info
11333  * @brief mac_ax_sdio_info
11334  *
11335  * @var mac_ax_sdio_info::sdio_4byte
11336  * Please Place Description here.
11337  * @var mac_ax_sdio_info::tx_mode
11338  * Please Place Description here.
11339  * @var mac_ax_sdio_info::spec_ver
11340  * Please Place Description here.
11341  * @var mac_ax_sdio_info::block_size
11342  * Please Place Description here.
11343  * @var mac_ax_sdio_info::tx_seq
11344  * Please Place Description here.
11345  * @var mac_ax_sdio_info::tx_align_size
11346  * Please Place Description here.
11347  * @var mac_ax_sdio_info::rpwm_bak
11348  * Please Place Description here.
11349  */
11350 struct mac_ax_sdio_info {
11351 	enum mac_ax_sdio_4byte_mode sdio_4byte;
11352 	enum mac_ax_sdio_tx_mode tx_mode;
11353 	enum mac_ax_sdio_spec_ver spec_ver;
11354 	enum mac_ax_sdio_opn_mode opn_mode;
11355 	u16 block_size;
11356 	u8 tx_seq;
11357 	u16 tx_align_size;
11358 	u32 rpwm_bak;
11359 };
11360 
11361 /**
11362  * @struct mac_ax_sdio_txagg_cfg
11363  * @brief mac_ax_sdio_txagg_cfg
11364  *
11365  * @var mac_ax_sdio_txagg_cfg::en
11366  * Please Place Description here.
11367  * @var mac_ax_sdio_txagg_cfg::align_size
11368  * Please Place Description here.
11369  */
11370 struct mac_ax_sdio_txagg_cfg {
11371 	u8 en;
11372 	u16 align_size;
11373 };
11374 
11375 /**
11376  * @struct mac_ax_usb_info
11377  * @brief mac_ax_usb_info
11378  *
11379  * @var mac_ax_usb_info::ep5
11380  * Please Place Description here.
11381  * @var mac_ax_usb_info::ep6
11382  * Please Place Description here.
11383  * @var mac_ax_usb_info::ep10
11384  * Please Place Description here.
11385  * @var mac_ax_usb_info::ep11
11386  * Please Place Description here.
11387  * @var mac_ax_usb_info::ep12
11388  * Please Place Description here.
11389  * @var mac_ax_usb_info::max_bulkout_wd_num
11390  * Please Place Description here.
11391  * @var mac_ax_usb_info::usb_mode
11392  * Please Place Description here.
11393  */
11394 struct mac_ax_usb_info {
11395 	u8 ep5;
11396 	u8 ep6;
11397 	u8 ep10;
11398 	u8 ep11;
11399 	u8 ep12;
11400 	u8 max_bulkout_wd_num;
11401 	enum mac_ax_use_mode usb_mode;
11402 };
11403 
11404 /**
11405  * @struct mac_ax_pcie_info
11406  * @brief mac_ax_pcie_info
11407  *
11408  * @var mac_ax_pcie_info::autok_total
11409  * @var mac_ax_pcie_info::autok_2s_cnt
11410  * Please Place Description here.
11411  */
11412 struct mac_ax_pcie_info {
11413 	u32 autok_total;
11414 	u8 autok_2s_cnt;
11415 };
11416 
11417 struct mac_ax_flash_info {
11418 	u8 read_done;
11419 	u8 reading;
11420 	u32 read_addr;
11421 	u8 write_done;
11422 	u8 writing;
11423 	u32 write_addr;
11424 	u8 erasing;
11425 	u8 erase_done;
11426 	u32 erase_addr;
11427 	u8 *buf_addr;
11428 	mac_ax_mutex lock;
11429 };
11430 
11431 /**
11432  * @struct mac_ax_fw_dbgcmd
11433  * @brief mac_ax_fw_dbgcmd
11434  *
11435  * @var mac_ax_fw_dbgcmd::buf
11436  * Please Place Description here.
11437  * @var mac_ax_fw_dbgcmd::out_len
11438  * Please Place Description here.
11439  * @var mac_ax_fw_dbgcmd::used
11440  * Please Place Description here.
11441  * @var mac_ax_fw_dbgcmd::cmd_idle
11442  * Please Place Description here.
11443  * @var mac_ax_fw_dbgcmd::lock
11444  * Please Place Description here.
11445  */
11446 struct mac_ax_fw_dbgcmd {
11447 	char *buf;
11448 	u32 out_len;
11449 	u32 used;
11450 	u32 cmd_idle;
11451 	mac_ax_mutex lock;
11452 };
11453 
11454 /**
11455  * @struct mac_ax_aval_page_cfg
11456  * @brief mac_ax_aval_page_cfg
11457  *
11458  * @var mac_ax_aval_page_cfg::thold_wd
11459  * Please Place Description here.
11460  * @var mac_ax_aval_page_cfg::thold_wp
11461  * Please Place Description here.
11462  * @var mac_ax_aval_page_cfg::ch_dma
11463  * Please Place Description here.
11464  * @var mac_ax_aval_page_cfg::en
11465  * Please Place Description here.
11466  */
11467 struct mac_ax_aval_page_cfg {
11468 	u32 thold_wd;
11469 	u32 thold_wp;
11470 	u8 ch_dma;
11471 	u8 en;
11472 };
11473 
11474 /**
11475  * @struct mac_ax_rx_agg_cfg
11476  * @brief mac_ax_rx_agg_cfg
11477  *
11478  * @var mac_ax_rx_agg_cfg::mode
11479  * Please Place Description here.
11480  * @var mac_ax_rx_agg_cfg::thold
11481  * Please Place Description here.
11482  */
11483 struct mac_ax_rx_agg_cfg {
11484 	enum mac_ax_rx_agg_mode mode;
11485 	struct mac_ax_rx_agg_thold thold;
11486 };
11487 
11488 /**
11489  * @struct mac_ax_usr_tx_rpt_cfg
11490  * @brief mac_ax_usr_tx_rpt_cfg
11491  *
11492  * @var mac_ax_usr_tx_rpt_cfg::mode
11493  * sel report mode
11494  * @var mac_ax_usr_tx_rpt_cfg::rpt_start
11495  * flag of first packet
11496  * @var mac_ax_usr_tx_rpt_cfg::macid
11497  * target macid
11498  * @var mac_ax_usr_tx_rpt_cfg::rpt_period_us
11499  * period of report, unit:us
11500  */
11501 struct mac_ax_usr_tx_rpt_cfg {
11502 	enum mac_ax_usr_tx_rpt_mode mode;
11503 	u8 rpt_start;
11504 	u8 macid;
11505 	u8 band;
11506 	u8 port;
11507 	u32 rpt_period_us;
11508 };
11509 
11510 /**
11511  * @struct mac_ax_ofld_cfg
11512  * @brief disable ofld feature
11513  *
11514  * @var mac_ax_ofld_cfg::usr_edca_dis
11515  * 1: disable; 0:enable
11516  */
11517 struct mac_ax_ofld_cfg {
11518 	enum mac_ax_ofld_mode mode;
11519 	u8 usr_txop_be;
11520 	u16 usr_txop_be_val;
11521 };
11522 
11523 /**
11524  * @struct mac_ax_ac_edca_param
11525  * @brief mac_ax_ac_edca_param
11526  *
11527  * @var mac_ax_ac_edca_param::txop_32us
11528  * Please Place Description here.
11529  * @var mac_ax_ac_edca_param::ecw_max
11530  * Please Place Description here.
11531  * @var mac_ax_ac_edca_param::ecw_min
11532  * Please Place Description here.
11533  * @var mac_ax_ac_edca_param::aifs_us
11534  * Please Place Description here.
11535  */
11536 struct mac_ax_ac_edca_param {
11537 	u16 txop_32us;
11538 	u8 ecw_max;
11539 	u8 ecw_min;
11540 	u8 aifs_us;
11541 };
11542 
11543 /**
11544  * @struct mac_ax_usr_edca_param
11545  * @brief mac_ax_usr_edca_param
11546  *
11547  * @var mac_ax_usr_edca_param::idx
11548  * Please Place Description here.
11549  * @var mac_ax_usr_edca_param::enable
11550  * Please Place Description here.
11551  * @var mac_ax_usr_edca_param::band
11552  * Please Place Description here.
11553  * @var mac_ax_usr_edca_param::wmm
11554  * Please Place Description here.
11555  * @var mac_ax_usr_edca_param::ac
11556  * Please Place Description here.
11557  * @var mac_ax_usr_edca_param::aggressive
11558  * Please Place Description here.
11559  * @var mac_ax_usr_edca_param::moderate
11560  * Please Place Description here.
11561  */
11562 struct mac_ax_usr_edca_param {
11563 	enum mac_ax_cmac_usr_edca_idx idx;
11564 	u8 enable;
11565 	u8 band;
11566 	enum mac_ax_cmac_wmm_sel wmm;
11567 	enum mac_ax_cmac_ac_sel ac;
11568 	struct mac_ax_ac_edca_param aggressive;
11569 	struct mac_ax_ac_edca_param moderate;
11570 };
11571 
11572 /**
11573  * @struct mac_ax_edca_param
11574  * @brief mac_ax_edca_param
11575  *
11576  * @var mac_ax_edca_param::band
11577  * Please Place Description here.
11578  * @var mac_ax_edca_param::path
11579  * Please Place Description here.
11580  * @var mac_ax_edca_param::txop_32us
11581  * Please Place Description here.
11582  * @var mac_ax_edca_param::ecw_max
11583  * Please Place Description here.
11584  * @var mac_ax_edca_param::ecw_min
11585  * Please Place Description here.
11586  * @var mac_ax_edca_param::aifs_us
11587  * Please Place Description here.
11588  */
11589 struct mac_ax_edca_param {
11590 	u8 band;
11591 	enum mac_ax_cmac_path_sel path;
11592 	u16 txop_32us;
11593 	u8 ecw_max;
11594 	u8 ecw_min;
11595 	u8 aifs_us;
11596 };
11597 
11598 /**
11599  * @struct mac_ax_muedca_param
11600  * @brief mac_ax_muedca_param
11601  *
11602  * @var mac_ax_muedca_param::band
11603  * Please Place Description here.
11604  * @var mac_ax_muedca_param::ac
11605  * Please Place Description here.
11606  * @var mac_ax_muedca_param::muedca_timer_32us
11607  * Please Place Description here.
11608  * @var mac_ax_muedca_param::ecw_max
11609  * Please Place Description here.
11610  * @var mac_ax_muedca_param::ecw_min
11611  * Please Place Description here.
11612  * @var mac_ax_muedca_param::aifs_us
11613  * Please Place Description here.
11614  */
11615 struct mac_ax_muedca_param {
11616 	u8 band;
11617 	enum mac_ax_cmac_ac_sel ac;
11618 	u16 muedca_timer_32us;
11619 	u8 ecw_max;
11620 	u8 ecw_min;
11621 	u8 aifs_us;
11622 };
11623 
11624 /**
11625  * @struct mac_ax_muedca_timer
11626  * @brief mac_ax_muedca_timer
11627  *
11628  * @var mac_ax_muedca_timer::band
11629  * Please Place Description here.
11630  * @var mac_ax_muedca_timer::ac
11631  * Please Place Description here.
11632  * @var mac_ax_muedca_timer::muedca_timer_32us
11633  * Please Place Description here.
11634  */
11635 struct mac_ax_muedca_timer {
11636 	u8 band;
11637 	enum mac_ax_cmac_ac_sel ac;
11638 	u16 muedca_timer_32us;
11639 };
11640 
11641 /**
11642  * @struct mac_ax_muedca_cfg
11643  * @brief mac_ax_muedca_cfg
11644  *
11645  * @var mac_ax_muedca_cfg::band
11646  * Please Place Description here.
11647  * @var mac_ax_muedca_cfg::wmm_sel
11648  * Please Place Description here.
11649  * @var mac_ax_muedca_cfg::countdown_en
11650  * Please Place Description here.
11651  * @var mac_ax_muedca_cfg::tb_update_en
11652  * Please Place Description here.
11653  */
11654 struct mac_ax_muedca_cfg {
11655 	u8 band;
11656 	enum mac_ax_cmac_wmm_sel wmm_sel;
11657 	u8 countdown_en;
11658 	u8 tb_update_en;
11659 };
11660 
11661 /**
11662  * @struct mac_ax_sch_tx_en_cfg
11663  * @brief mac_ax_sch_tx_en_cfg
11664  *
11665  * @var mac_ax_sch_tx_en_cfg::band
11666  * Please Place Description here.
11667  * @var mac_ax_sch_tx_en_cfg::tx_en
11668  * Please Place Description here.
11669  * @var mac_ax_sch_tx_en_cfg::tx_en_mask
11670  * Please Place Description here.
11671  */
11672 struct mac_ax_sch_tx_en_cfg {
11673 	u8 band;
11674 	struct mac_ax_sch_tx_en tx_en;
11675 	struct mac_ax_sch_tx_en tx_en_mask;
11676 };
11677 
11678 struct mac_ax_tx_idle_poll_cfg {
11679 	u8 band;
11680 	enum mac_ax_tx_idle_poll_sel sel;
11681 };
11682 
11683 /**
11684  * @struct mac_ax_lifetime_cfg
11685  * @brief mac_ax_lifetime_cfg
11686  *
11687  * @var mac_ax_lifetime_cfg::band
11688  * Please Place Description here.
11689  * @var mac_ax_lifetime_cfg::en
11690  * Please Place Description here.
11691  * @var mac_ax_lifetime_cfg::val
11692  * Please Place Description here.
11693  */
11694 struct mac_ax_lifetime_cfg {
11695 	u8 band;
11696 	struct mac_ax_lifetime_en en;
11697 	struct mac_ax_lifetime_val val;
11698 };
11699 
11700 /**
11701  * @struct mac_ax_tb_ppdu_ctrl
11702  * @brief mac_ax_tb_ppdu_ctrl
11703  *
11704  * @var mac_ax_tb_ppdu_ctrl::band
11705  * Please Place Description here.
11706  * @var mac_ax_tb_ppdu_ctrl::pri_ac
11707  * Please Place Description here.
11708  * @var mac_ax_tb_ppdu_ctrl::be_dis
11709  * Please Place Description here.
11710  * @var mac_ax_tb_ppdu_ctrl::bk_dis
11711  * Please Place Description here.
11712  * @var mac_ax_tb_ppdu_ctrl::vi_dis
11713  * Please Place Description here.
11714  * @var mac_ax_tb_ppdu_ctrl::vo_dis
11715  * Please Place Description here.
11716  */
11717 struct mac_ax_tb_ppdu_ctrl {
11718 	u8 band;
11719 	enum mac_ax_cmac_ac_sel pri_ac;
11720 	u8 be_dis;
11721 	u8 bk_dis;
11722 	u8 vi_dis;
11723 	u8 vo_dis;
11724 };
11725 
11726 /**
11727  * @struct macid_tx_bak
11728  * @brief macid_tx_bak
11729  *
11730  * @var macid_tx_bak::sch_bak
11731  * Please Place Description here.
11732  * @var macid_tx_bak::ac_dis_bak
11733  * Please Place Description here.
11734  */
11735 struct macid_tx_bak {
11736 	struct mac_ax_sch_tx_en_cfg sch_bak;
11737 	struct mac_ax_tb_ppdu_ctrl ac_dis_bak;
11738 };
11739 
11740 /**
11741  * @struct mac_ax_edcca_param
11742  * @brief mac_ax_edcca_param
11743  *
11744  * @var mac_ax_edcca_param::band
11745  * Please Place Description here.
11746  * @var mac_ax_edcca_param::tb_check_en
11747  * Please Place Description here.
11748  * @var mac_ax_edcca_param::sifs_check_en
11749  * Please Place Description here.
11750  * @var mac_ax_edcca_param::ctn_check_en
11751  * Please Place Description here.
11752  * @var mac_ax_edcca_param::rsvd
11753  * Please Place Description here.
11754  * @var mac_ax_edcca_param::sel
11755  * Please Place Description here.
11756  */
11757 struct mac_ax_edcca_param {
11758 	u8 band:1;
11759 	u8 tb_check_en:1;
11760 	u8 sifs_check_en:1;
11761 	u8 ctn_check_en:1;
11762 	u8 rsvd:4;
11763 	enum mac_ax_edcca_sel sel;
11764 };
11765 
11766 /**
11767  * @struct mac_ax_host_rpr_cfg
11768  * @brief mac_ax_host_rpr_cfg
11769  *
11770  * @var mac_ax_host_rpr_cfg::agg
11771  * Please Place Description here.
11772  * @var mac_ax_host_rpr_cfg::tmr
11773  * Please Place Description here.
11774  * @var mac_ax_host_rpr_cfg::agg_def
11775  * Please Place Description here.
11776  * @var mac_ax_host_rpr_cfg::tmr_def
11777  * Please Place Description here.
11778  * @var mac_ax_host_rpr_cfg::rsvd
11779  * Please Place Description here.
11780  * @var mac_ax_host_rpr_cfg::txok_en
11781  * Please Place Description here.
11782  * @var mac_ax_host_rpr_cfg::rty_lmt_en
11783  * Please Place Description here.
11784  * @var mac_ax_host_rpr_cfg::lft_drop_en
11785  * Please Place Description here.
11786  * @var mac_ax_host_rpr_cfg::macid_drop_en
11787  * Please Place Description here.
11788  */
11789 struct mac_ax_host_rpr_cfg {
11790 	u8 agg;
11791 	u8 tmr;
11792 	u8 agg_def:1;
11793 	u8 tmr_def:1;
11794 	u8 rsvd:5;
11795 	enum mac_ax_func_sw txok_en;
11796 	enum mac_ax_func_sw rty_lmt_en;
11797 	enum mac_ax_func_sw lft_drop_en;
11798 	enum mac_ax_func_sw macid_drop_en;
11799 };
11800 
11801 /**
11802  * @struct mac_ax_macid_pause_cfg
11803  * @brief mac_ax_macid_pause_cfg
11804  *
11805  * @var mac_ax_macid_pause_cfg::macid
11806  * Please Place Description here.
11807  * @var mac_ax_macid_pause_cfg::pause
11808  * Please Place Description here.
11809  */
11810 struct mac_ax_macid_pause_cfg {
11811 	u8 macid;
11812 	u8 pause;
11813 };
11814 
11815 /**
11816  * @struct mac_ax_macid_pause_grp
11817  * @brief mac_ax_macid_pause_grp
11818  *
11819  * @var mac_ax_macid_pause_grp::pause_grp
11820  * Please Place Description here.
11821  * @var mac_ax_macid_pause_grp::mask_grp
11822  * Please Place Description here.
11823  */
11824 struct mac_ax_macid_pause_grp {
11825 	u32 pause_grp[4];
11826 	u32 mask_grp[4];
11827 };
11828 
11829 /**
11830  * @struct mac_ax_ampdu_cfg
11831  * @brief mac_ax_ampdu_cfg
11832  *
11833  * @var mac_ax_ampdu_cfg::band
11834  * Please Place Description here.
11835  * @var mac_ax_ampdu_cfg::wdbk_mode
11836  * Please Place Description here.
11837  * @var mac_ax_ampdu_cfg::rty_bk_mode
11838  * Please Place Description here.
11839  * @var mac_ax_ampdu_cfg::max_agg_num
11840  * Please Place Description here.
11841  * @var mac_ax_ampdu_cfg::max_agg_time_32us
11842  * Please Place Description here.
11843  */
11844 struct mac_ax_ampdu_cfg {
11845 	u8 band;
11846 	enum mac_ax_wdbk_mode wdbk_mode;
11847 	enum mac_ax_rty_bk_mode rty_bk_mode;
11848 	u16 max_agg_num;
11849 	u8 max_agg_time_32us;
11850 };
11851 
11852 /**
11853  * @struct mac_ax_ch_stat_cnt
11854  * @brief mac_ax_ch_stat_cnt
11855  *
11856  * @var mac_ax_ch_stat_cnt::band
11857  * Please Place Description here.
11858  * @var mac_ax_ch_stat_cnt::busy_cnt
11859  * Please Place Description here.
11860  * @var mac_ax_ch_stat_cnt::idle_cnt
11861  * Please Place Description here.
11862  */
11863 struct mac_ax_ch_stat_cnt {
11864 	u8 band;
11865 	u32 busy_cnt;
11866 	u32 idle_cnt;
11867 };
11868 
11869 /**
11870  * @struct mac_ax_ch_busy_cnt_cfg
11871  * @brief mac_ax_ch_busy_cnt_cfg
11872  *
11873  * @var mac_ax_ch_busy_cnt_cfg::band
11874  * Please Place Description here.
11875  * @var mac_ax_ch_busy_cnt_cfg::cnt_ctrl
11876  * Please Place Description here.
11877  * @var mac_ax_ch_busy_cnt_cfg::ref
11878  * Please Place Description here.
11879  */
11880 struct mac_ax_ch_busy_cnt_cfg {
11881 	u8 band;
11882 	enum mac_ax_ch_busy_cnt_ctrl cnt_ctrl;
11883 	struct mac_ax_ch_busy_cnt_ref ref;
11884 };
11885 
11886 /**
11887  * @struct mac_ax_ss_wmm_tbl_ctrl
11888  * @brief mac_ax_ss_wmm_tbl_ctrl
11889  *
11890  * @var mac_ax_ss_wmm_tbl_ctrl::wmm
11891  * Please Place Description here.
11892  * @var mac_ax_ss_wmm_tbl_ctrl::wmm_mapping
11893  * Please Place Description here.
11894  */
11895 struct mac_ax_ss_wmm_tbl_ctrl {
11896 	u8 wmm;
11897 	enum mac_ax_ss_wmm_tbl wmm_mapping;
11898 };
11899 
11900 /**
11901  * @struct mac_ax_bt_block_tx
11902  * @brief mac_ax_bt_block_tx
11903  *
11904  * @var mac_ax_bt_block_tx::band
11905  * Please Place Description here.
11906  * @var mac_ax_bt_block_tx::en
11907  * Please Place Description here.
11908  */
11909 struct mac_ax_block_tx {
11910 	u8 band;
11911 	u8 en;
11912 };
11913 
11914 /**
11915  * @struct mac_ax_gt3_cfg
11916  * @brief mac_ax_gt3_cfg
11917  *
11918  * @var mac_ax_gt3_cfg::count_en
11919  * Please Place Description here.
11920  * @var mac_ax_gt3_cfg::mode
11921  * Please Place Description here.
11922  * @var mac_ax_gt3_cfg::gt3_en
11923  * Please Place Description here.
11924  * @var mac_ax_gt3_cfg::sort_en
11925  * Please Place Description here.
11926  * @var mac_ax_gt3_cfg::timeout
11927  * Please Place Description here.
11928  */
11929 struct mac_ax_gt3_cfg {
11930 	u32 count_en:1;
11931 	u32 mode:1; /*0 = counter mode; 1 = timer mode"*/
11932 	u32 gt3_en:1; /*HW clear when count down to zero in counter mode."*/
11933 	u32 sort_en:1;
11934 	u32 timeout:28;
11935 };
11936 
11937 /**
11938  * @struct mac_ax_rty_lmt
11939  * @brief mac_ax_rty_lmt
11940  *
11941  * @var mac_ax_rty_lmt::tx_cnt
11942  * Please Place Description here.
11943  * @var mac_ax_rty_lmt::macid
11944  * Please Place Description here.
11945  */
11946 struct mac_ax_rty_lmt {
11947 	u32 tx_cnt;
11948 	u8 macid;
11949 };
11950 
11951 /**
11952  * @struct mac_ax_cctl_rty_lmt_cfg
11953  * @brief mac_ax_cctl_rty_lmt_cfg
11954  *
11955  * @var mac_ax_cctl_rty_lmt_cfg::macid
11956  * Please Place Description here.
11957  * @var mac_ax_cctl_rty_lmt_cfg::data_lmt_sel
11958  * Please Place Description here.
11959  * @var mac_ax_cctl_rty_lmt_cfg::data_lmt_val
11960  * Please Place Description here.
11961  * @var mac_ax_cctl_rty_lmt_cfg::rsvd0
11962  * Please Place Description here.
11963  * @var mac_ax_cctl_rty_lmt_cfg::rts_lmt_sel
11964  * Please Place Description here.
11965  * @var mac_ax_cctl_rty_lmt_cfg::rts_lmt_val
11966  * Please Place Description here.
11967  * @var mac_ax_cctl_rty_lmt_cfg::rsvd1
11968  * Please Place Description here.
11969  */
11970 struct mac_ax_cctl_rty_lmt_cfg {
11971 	u8 macid;
11972 	u8 data_lmt_sel:1;
11973 	u8 data_lmt_val:6;
11974 	u8 rsvd0:1;
11975 	u8 rts_lmt_sel:1;
11976 	u8 rts_lmt_val:4;
11977 	u8 rsvd1:3;
11978 };
11979 
11980 /**
11981  * @struct mac_ax_cr_rty_lmt_cfg
11982  * @brief mac_ax_cr_rty_lmt_cfg
11983  *
11984  * @var mac_ax_cr_rty_lmt_cfg::long_tx_cnt_lmt
11985  * Please Place Description here.
11986  * @var mac_ax_cr_rty_lmt_cfg::short_tx_cnt_lmt
11987  * Please Place Description here.
11988  * @var mac_ax_cr_rty_lmt_cfg::band
11989  * Please Place Description here.
11990  */
11991 struct mac_ax_cr_rty_lmt_cfg {
11992 	u16 long_tx_cnt_lmt:6; /*CR: long rty*/
11993 	u16 short_tx_cnt_lmt:6; /*CR: short rty*/
11994 	enum mac_ax_band band;
11995 };
11996 
11997 /**
11998  * @struct mac_ax_rrsr_cfg
11999  * @brief mac_ax_rrsr_cfg
12000  *
12001  * @var mac_ax_rrsr_cfg::rrsr_rate_en
12002  * Please Place Description here.
12003  * @var mac_ax_rrsr_cfg::rsc
12004  * Please Place Description here.
12005  * @var mac_ax_rrsr_cfg::doppler_en
12006  * Please Place Description here.
12007  * @var mac_ax_rrsr_cfg::dcm_en
12008  * Please Place Description here.
12009  * @var mac_ax_rrsr_cfg::ref_rate_sel
12010  * Please Place Description here.
12011  * @var mac_ax_rrsr_cfg::ref_rate
12012  * Please Place Description here.
12013  * @var mac_ax_rrsr_cfg::cck_cfg
12014  * Please Place Description here.
12015  * @var mac_ax_rrsr_cfg::rsvd
12016  * Please Place Description here.
12017  * @var mac_ax_rrsr_cfg::ofdm_cfg
12018  * Please Place Description here.
12019  * @var mac_ax_rrsr_cfg::ht_cfg
12020  * Please Place Description here.
12021  * @var mac_ax_rrsr_cfg::vht_cfg
12022  * Please Place Description here.
12023  * @var mac_ax_rrsr_cfg::he_cfg
12024  * Please Place Description here.
12025  */
12026 struct mac_ax_rrsr_cfg {
12027 	u32 rrsr_rate_en:4;
12028 	u32 rsc:2;
12029 	u32 doppler_en:1;
12030 	u32 dcm_en:1;
12031 	u32 ref_rate_sel:1;
12032 	u32 ref_rate:9;
12033 	u32 cck_cfg:4;
12034 	u32 rsvd:10;
12035 
12036 	u32 ofdm_cfg:8;
12037 	u32 ht_cfg:8;
12038 	u32 vht_cfg:8;
12039 	u32 he_cfg:8;
12040 	u8 band;
12041 };
12042 
12043 /**
12044  * @struct mac_ax_cts_rrsr_cfg
12045  * @brief mac_ax_cts_rrsr_cfg
12046  *
12047  * @var mac_ax_rrsr_cfg::cts_rrsr_rsc
12048  * Please Place Description here.
12049  * @var mac_ax_rrsr_cfg::cts_rrsr_opt
12050  * Please Place Description here.
12051  * @var mac_ax_rrsr_cfg::cts_rrsr_cck_cfg
12052  * Please Place Description here.
12053  * @var mac_ax_rrsr_cfg::cts_rrsr_ofdm_cfg
12054  * Please Place Description here.
12055  * @var mac_ax_rrsr_cfg::rsvd
12056  * Please Place Description here.
12057  */
12058 struct mac_ax_cts_rrsr_cfg {
12059 	u32 cts_rrsr_rsc:2;
12060 	u32 cts_rrsr_opt:1;
12061 	u32 cts_rrsr_cck_cfg:4;
12062 	u32 cts_rrsr_ofdm_cfg:8;
12063 	u32 rsvd:17;
12064 	u8 band;
12065 };
12066 
12067 /**
12068  * @struct mac_ax_ss_quota_mode_ctrl
12069  * @brief mac_ax_ss_quota_mode_ctrl
12070  *
12071  * @var mac_ax_ss_quota_mode_ctrl::wmm
12072  * Please Place Description here.
12073  * @var mac_ax_ss_quota_mode_ctrl::mode
12074  * Please Place Description here.
12075  */
12076 struct mac_ax_ss_quota_mode_ctrl {
12077 	enum mac_ax_ss_wmm wmm;
12078 	enum mac_ax_ss_quota_mode mode;
12079 };
12080 
12081 /**
12082  * @struct mac_ax_ss_quota_setting
12083  * @brief mac_ax_ss_quota_setting
12084  *
12085  * @var mac_ax_ss_quota_setting::macid
12086  * Please Place Description here.
12087  * @var mac_ax_ss_quota_setting::ac_type
12088  * Please Place Description here.
12089  * @var mac_ax_ss_quota_setting::val
12090  * Please Place Description here.
12091  * @var mac_ax_ss_quota_setting::ul_dl
12092  * Please Place Description here.
12093  */
12094 struct mac_ax_ss_quota_setting {
12095 	u8 macid;
12096 	u8 ac_type;
12097 	u8 val;
12098 	enum mac_ax_issue_uldl_type ul_dl;
12099 };
12100 
12101 /**
12102  * @struct mac_ax_bt_polt_cnt
12103  * @brief mac_ax_bt_polt_cnt
12104  *
12105  * @var mac_ax_bt_polt_cnt::band
12106  * Please Place Description here.
12107  * @var mac_ax_bt_polt_cnt::cnt
12108  * Please Place Description here.
12109  */
12110 struct mac_ax_bt_polt_cnt {
12111 	u8 band;
12112 	u16 cnt;
12113 };
12114 
12115 /**
12116  * @struct mac_ax_prebkf_setting
12117  * @brief mac_ax_prebkf_setting
12118  *
12119  * @var mac_ax_prebkf_setting::band
12120  * Please Place Description here.
12121  * @var mac_ax_prebkf_setting::val
12122  * Please Place Description here.
12123  */
12124 struct mac_ax_prebkf_setting {
12125 	u8 band;
12126 	u8 val;
12127 };
12128 
12129 /*--------------------Define SRAM FIFO ---------------------------------------*/
12130 
12131 /**
12132  * @struct mac_ax_bacam_info
12133  * @brief mac_ax_bacam_info
12134  *
12135  * @var mac_ax_bacam_info::valid
12136  * Please Place Description here.
12137  * @var mac_ax_bacam_info::init_req
12138  * Please Place Description here.
12139  * @var mac_ax_bacam_info::entry_idx
12140  * Tha var is only for 8852A.
12141  * @var mac_ax_bacam_info::tid
12142  * Please Place Description here.
12143  * @var mac_ax_bacam_info::macid
12144  * Please Place Description here.
12145  * @var mac_ax_bacam_info::bmap_size
12146  * Please Place Description here.
12147  * @var mac_ax_bacam_info::ssn
12148  * Please Place Description here.
12149  * @var mac_ax_bacam_info::uid_value
12150  * The var is for 8852C.
12151  * @var mac_ax_bacam_info::std_entry_en
12152  * The var is for 8852C.
12153  * @var mac_ax_bacam_info::band_sel
12154  * The var is for 8852C.
12155  * @var mac_ax_bacam_info::entry_idx_v1
12156  * The var is for 8852C.
12157  */
12158 struct mac_ax_bacam_info {
12159 	u32 valid: 1;
12160 	u32 init_req: 1;
12161 	u32 entry_idx: 2;
12162 	u32 tid: 4;
12163 	u32 macid: 8;
12164 	u32 bmap_size: 4;
12165 	u32 ssn: 12;
12166 	u32 uid_value: 8;
12167 	u32 std_entry_en: 1;
12168 	u32 band_sel: 1;
12169 	u32 rsvd: 18;
12170 	u32 entry_idx_v1: 4;
12171 };
12172 
12173 /**
12174  * @struct mac_ax_shcut_mhdr
12175  * @brief mac_ax_shcut_mhdr
12176  *
12177  * @var mac_ax_shcut_mhdr::mac_header_length
12178  * Please Place Description here.
12179  * @var mac_ax_shcut_mhdr::dword0
12180  * Please Place Description here.
12181  * @var mac_ax_shcut_mhdr::dword1
12182  * Please Place Description here.
12183  * @var mac_ax_shcut_mhdr::dword2
12184  * Please Place Description here.
12185  * @var mac_ax_shcut_mhdr::dword3
12186  * Please Place Description here.
12187  * @var mac_ax_shcut_mhdr::dword4
12188  * Please Place Description here.
12189  * @var mac_ax_shcut_mhdr::dword5
12190  * Please Place Description here.
12191  * @var mac_ax_shcut_mhdr::dword6
12192  * Please Place Description here.
12193  * @var mac_ax_shcut_mhdr::dword7
12194  * Please Place Description here.
12195  * @var mac_ax_shcut_mhdr::dword8
12196  * Please Place Description here.
12197  * @var mac_ax_shcut_mhdr::dword9
12198  * Please Place Description here.
12199  * @var mac_ax_shcut_mhdr::dword10
12200  * Please Place Description here.
12201  * @var mac_ax_shcut_mhdr::dword11
12202  * Please Place Description here.
12203  * @var mac_ax_shcut_mhdr::dword12
12204  * Please Place Description here.
12205  * @var mac_ax_shcut_mhdr::dword13
12206  * Please Place Description here.
12207  */
12208 struct mac_ax_shcut_mhdr {/*need to revise note by kkbomb 0204*/
12209 // dword 0
12210 	u32 mac_header_length:8;
12211 	u32 dword0:24;
12212 	u32 dword1;
12213 	u32 dword2;
12214 	u32 dword3;
12215 	u32 dword4;
12216 	u32 dword5;
12217 	u32 dword6;
12218 	u32 dword7;
12219 	u32 dword8;
12220 	u32 dword9;
12221 	u32 dword10;
12222 	u32 dword11;
12223 	u32 dword12;
12224 	u32 dword13;
12225 };
12226 
12227 /**
12228  * @struct mac_ax_fwstatus_payload
12229  * @brief mac_ax_fwstatus_payload
12230  *
12231  * @var mac_ax_fwstatus_payload::dword0
12232  * Please Place Description here.
12233  * @var mac_ax_fwstatus_payload::dword1
12234  * Please Place Description here.
12235  */
12236 struct mac_ax_fwstatus_payload {
12237 	u32 dword0;
12238 	u32 dword1;
12239 };
12240 
12241 /**
12242  * @struct mac_ax_ie_cam_cmd_info
12243  * @brief mac_ax_ie_cam_cmd_info
12244  *
12245  * @var mac_ax_ie_cam_cmd_info::en
12246  * Please Place Description here.
12247  * @var mac_ax_ie_cam_cmd_info::band
12248  * Please Place Description here.
12249  * @var mac_ax_ie_cam_cmd_info::port
12250  * Please Place Description here.
12251  * @var mac_ax_ie_cam_cmd_info::hit_en
12252  * Please Place Description here.
12253  * @var mac_ax_ie_cam_cmd_info::miss_en
12254  * Please Place Description here.
12255  * @var mac_ax_ie_cam_cmd_info::rst
12256  * Please Place Description here.
12257  * @var mac_ax_ie_cam_cmd_info::hit_sel
12258  * Please Place Description here.
12259  * @var mac_ax_ie_cam_cmd_info::miss_sel
12260  * Please Place Description here.
12261  * @var mac_ax_ie_cam_cmd_info::rsvd0
12262  * Please Place Description here.
12263  * @var mac_ax_ie_cam_cmd_info::num
12264  * Please Place Description here.
12265  * @var mac_ax_ie_cam_cmd_info::rsvd1
12266  * Please Place Description here.
12267  * @var mac_ax_ie_cam_cmd_info::buf
12268  * Please Place Description here.
12269  * @var mac_ax_ie_cam_cmd_info::buf_len
12270  * Please Place Description here.
12271  */
12272 struct mac_ax_ie_cam_cmd_info {
12273 	u8 en:1;
12274 	u8 band:1;
12275 	u8 port:3;
12276 	u8 hit_en:1;
12277 	u8 miss_en:1;
12278 	u8 rst:1;
12279 	u8 hit_sel:2;
12280 	u8 miss_sel:2;
12281 	u8 rsvd0:4;
12282 	u8 num:5;
12283 	u8 rsvd1:3;
12284 	u8 *buf;
12285 	u32 buf_len;
12286 };
12287 
12288 /**
12289  * @struct mac_ax_addr_cam_info
12290  * @brief mac_ax_addr_cam_info
12291  *
12292  * @var mac_ax_addr_cam_info::addr_cam_idx
12293  * Please Place Description here.
12294  * @var mac_ax_addr_cam_info::offset
12295  * Please Place Description here.
12296  * @var mac_ax_addr_cam_info::len
12297  * Please Place Description here.
12298  * @var mac_ax_addr_cam_info::valid
12299  * Please Place Description here.
12300  * @var mac_ax_addr_cam_info::net_type
12301  * Please Place Description here.
12302  * @var mac_ax_addr_cam_info::bcn_hit_cond
12303  * Please Place Description here.
12304  * @var mac_ax_addr_cam_info::hit_rule
12305  * Please Place Description here.
12306  * @var mac_ax_addr_cam_info::bb_sel
12307  * Please Place Description here.
12308  * @var mac_ax_addr_cam_info::addr_mask
12309  * Please Place Description here.
12310  * @var mac_ax_addr_cam_info::mask_sel
12311  * Please Place Description here.
12312  * @var mac_ax_addr_cam_info::bssid_cam_idx
12313  * Please Place Description here.
12314  * @var mac_ax_addr_cam_info::is_mul_ent
12315  * Please Place Description here.
12316  * @var mac_ax_addr_cam_info::sma
12317  * Please Place Description here.
12318  * @var mac_ax_addr_cam_info::tma
12319  * Please Place Description here.
12320  * @var mac_ax_addr_cam_info::macid
12321  * Please Place Description here.
12322  * @var mac_ax_addr_cam_info::port_int
12323  * Please Place Description here.
12324  * @var mac_ax_addr_cam_info::tsf_sync
12325  * Please Place Description here.
12326  * @var mac_ax_addr_cam_info::tf_trs
12327  * Please Place Description here.
12328  * @var mac_ax_addr_cam_info::lsig_txop
12329  * Please Place Description here.
12330  * @var mac_ax_addr_cam_info::tgt_ind
12331  * Please Place Description here.
12332  * @var mac_ax_addr_cam_info::frm_tgt_ind
12333  * Please Place Description here.
12334  * @var mac_ax_addr_cam_info::aid12
12335  * Please Place Description here.
12336  * @var mac_ax_addr_cam_info::wol_pattern
12337  * Please Place Description here.
12338  * @var mac_ax_addr_cam_info::wol_uc
12339  * Please Place Description here.
12340  * @var mac_ax_addr_cam_info::wol_magic
12341  * Please Place Description here.
12342  * @var mac_ax_addr_cam_info::wapi
12343  * Please Place Description here.
12344  * @var mac_ax_addr_cam_info::sec_ent_mode
12345  * Please Place Description here.
12346  * @var mac_ax_addr_cam_info::sec_ent_keyid
12347  * Please Place Description here.
12348  * @var mac_ax_addr_cam_info::sec_ent_valid
12349  * Please Place Description here.
12350  * @var mac_ax_addr_cam_info::sec_ent
12351  * Please Place Description here.
12352  */
12353 struct mac_ax_addr_cam_info {
12354 	u8 addr_cam_idx;	/* Addr cam entry index */
12355 	u8 offset;		/* Offset */
12356 	u8 len;			/* Length */
12357 	u8 valid : 1;
12358 	u8 net_type : 2;
12359 	u8 bcn_hit_cond : 2;
12360 	u8 hit_rule : 2;
12361 	u8 bb_sel : 1;
12362 	u8 addr_mask : 6;
12363 	u8 mask_sel : 2;
12364 	u8 bssid_cam_idx : 6;
12365 	u8 is_mul_ent : 1;
12366 	u8 sma[6];
12367 	u8 tma[6];
12368 	u8 macid;
12369 	u8 port_int: 3;
12370 	u8 tsf_sync: 3;
12371 	u8 tf_trs: 1;
12372 	u8 lsig_txop: 1;
12373 	u8 tgt_ind: 3;
12374 	u8 frm_tgt_ind: 3;
12375 	u16 aid12: 12;
12376 	u8 wol_pattern: 1;
12377 	u8 wol_uc: 1;
12378 	u8 wol_magic: 1;
12379 	u8 wapi: 1;
12380 	u8 sec_ent_mode: 2;
12381 	u8 sec_ent_keyid[7];
12382 	u8 sec_ent_valid;
12383 	u8 sec_ent[7];
12384 };
12385 
12386 /**
12387  * @struct mac_ax_bssid_cam_info
12388  * @brief mac_ax_bssid_cam_info
12389  *
12390  * @var mac_ax_bssid_cam_info::bssid_cam_idx
12391  * Please Place Description here.
12392  * @var mac_ax_bssid_cam_info::offset
12393  * Please Place Description here.
12394  * @var mac_ax_bssid_cam_info::len
12395  * Please Place Description here.
12396  * @var mac_ax_bssid_cam_info::valid
12397  * Please Place Description here.
12398  * @var mac_ax_bssid_cam_info::bb_sel
12399  * Please Place Description here.
12400  * @var mac_ax_bssid_cam_info::bss_color
12401  * Please Place Description here.
12402  * @var mac_ax_bssid_cam_info::bssid
12403  * Please Place Description here.
12404  */
12405 struct mac_ax_bssid_cam_info {
12406 	u8 bssid_cam_idx;	/* BSSID cam entry index */
12407 	u8 offset;		/* Offset */
12408 	u8 len;			/* Length */
12409 	u8 valid : 1;
12410 	u8 bb_sel : 1;
12411 	u8 addr_mask : 6;
12412 	u8 bss_color : 7;
12413 	u8 bssid[6];
12414 };
12415 
12416 /**
12417  * @struct mac_ax_sec_cam_info
12418  * @brief mac_ax_sec_cam_info
12419  *
12420  * @var mac_ax_sec_cam_info::sec_cam_idx
12421  * Please Place Description here.
12422  * @var mac_ax_sec_cam_info::offset
12423  * Please Place Description here.
12424  * @var mac_ax_sec_cam_info::len
12425  * Please Place Description here.
12426  * @var mac_ax_sec_cam_info::type
12427  * Please Place Description here.
12428  * @var mac_ax_sec_cam_info::ext_key
12429  * Please Place Description here.
12430  * @var mac_ax_sec_cam_info::spp_mode
12431  * Please Place Description here.
12432  * @var mac_ax_sec_cam_info::key
12433  * Please Place Description here.
12434  */
12435 struct mac_ax_sec_cam_info {
12436 	u8 sec_cam_idx;		/* Security cam entry index */
12437 	u8 offset;		/* Offset */
12438 	u8 len;			/* Length */
12439 	u8 type : 4;
12440 	u8 ext_key : 1;
12441 	u8 spp_mode : 1;
12442 	u32 key[4];
12443 };
12444 
12445 struct mac_ax_ftm_para {
12446 	u8 pktid;
12447 	u8 rsp_ch;
12448 	u8 tsf_timer_offset;
12449 	u8 asap;
12450 };
12451 
12452 /**
12453  * @struct mac_ax_macaddr
12454  * @brief mac_ax_macaddr
12455  *
12456  * @var mac_ax_macaddr::macaddr
12457  * Please Place Description here.
12458  */
12459 struct mac_ax_macaddr {
12460 	u8 macaddr[6];
12461 };
12462 
12463 /**
12464  * @struct mac_ax_sta_init_info
12465  * @brief mac_ax_sta_init_info
12466  *
12467  * @var mac_ax_sta_init_info::macid
12468  * Please Place Description here.
12469  * @var mac_ax_sta_init_info::opmode
12470  * Please Place Description here.
12471  * @var mac_ax_sta_init_info::band
12472  * Please Place Description here.
12473  * @var mac_ax_sta_init_info::wmm
12474  * Please Place Description here.
12475  * @var mac_ax_sta_init_info::trigger
12476  * Please Place Description here.
12477  * @var mac_ax_sta_init_info::is_hesta
12478  * Please Place Description here.
12479  * @var mac_ax_sta_init_info::dl_bw
12480  * Please Place Description here.
12481  * @var mac_ax_sta_init_info::tf_mac_padding
12482  * Please Place Description here.
12483  * @var mac_ax_sta_init_info::dl_t_pe
12484  * Please Place Description here.
12485  * @var mac_ax_sta_init_info::port_id
12486  * Please Place Description here.
12487  * @var mac_ax_sta_init_info::net_type
12488  * Please Place Description here.
12489  * @var mac_ax_sta_init_info::wifi_role
12490  * Please Place Description here.
12491  * @var mac_ax_sta_init_info::self_role
12492  * Please Place Description here.
12493  */
12494 struct mac_ax_sta_init_info {
12495 	u8 macid;
12496 	u8 opmode:1;
12497 	u8 band:1;
12498 	u8 wmm:2;
12499 	u8 trigger:1;
12500 	u8 is_hesta: 1;
12501 	u8 dl_bw: 2;
12502 	u8 tf_mac_padding:2;
12503 	u8 dl_t_pe:3;
12504 	u8 port_id:3;
12505 	u8 net_type:2;
12506 	u8 wifi_role:4;
12507 	u8 self_role:2;
12508 };
12509 
12510 /**
12511  * @struct mac_ax_fwrole_maintain
12512  * @brief mac_ax_fwrole_maintain
12513  *
12514  * @var mac_ax_fwrole_maintain::macid
12515  * Please Place Description here.
12516  * @var mac_ax_fwrole_maintain::self_role
12517  * Please Place Description here.
12518  * @var mac_ax_fwrole_maintain::upd_mode
12519  * Please Place Description here.
12520  * @var mac_ax_fwrole_maintain::wifi_role
12521  * Please Place Description here.
12522  */
12523 struct mac_ax_fwrole_maintain {
12524 	u8 macid;
12525 	u8 self_role : 2;
12526 	u8 upd_mode : 3;
12527 	u8 wifi_role : 4;
12528 };
12529 
12530 /**
12531  * @struct mac_ax_cctl_info
12532  * @brief mac_ax_cctl_info
12533  *
12534  * @var mac_ax_cctl_info::datarate
12535  * Please Place Description here.
12536  * @var mac_ax_cctl_info::force_txop
12537  * Please Place Description here.
12538  * @var mac_ax_cctl_info::data_bw
12539  * Please Place Description here.
12540  * @var mac_ax_cctl_info::data_gi_ltf
12541  * Please Place Description here.
12542  * @var mac_ax_cctl_info::darf_tc_index
12543  * Please Place Description here.
12544  * @var mac_ax_cctl_info::arfr_ctrl
12545  * Please Place Description here.
12546  * @var mac_ax_cctl_info::acq_rpt_en
12547  * Please Place Description here.
12548  * @var mac_ax_cctl_info::mgq_rpt_en
12549  * Please Place Description here.
12550  * @var mac_ax_cctl_info::ulq_rpt_en
12551  * Please Place Description here.
12552  * @var mac_ax_cctl_info::twtq_rpt_en
12553  * Please Place Description here.
12554  * @var mac_ax_cctl_info::rsvd0
12555  * Please Place Description here.
12556  * @var mac_ax_cctl_info::disrtsfb
12557  * Please Place Description here.
12558  * @var mac_ax_cctl_info::disdatafb
12559  * Please Place Description here.
12560  * @var mac_ax_cctl_info::tryrate
12561  * Please Place Description here.
12562  * @var mac_ax_cctl_info::ampdu_density
12563  * Please Place Description here.
12564  * @var mac_ax_cctl_info::data_rty_lowest_rate
12565  * Please Place Description here.
12566  * @var mac_ax_cctl_info::ampdu_time_sel
12567  * Please Place Description here.
12568  * @var mac_ax_cctl_info::ampdu_len_sel
12569  * Please Place Description here.
12570  * @var mac_ax_cctl_info::rts_txcnt_lmt_sel
12571  * Please Place Description here.
12572  * @var mac_ax_cctl_info::rts_txcnt_lmt
12573  * Please Place Description here.
12574  * @var mac_ax_cctl_info::rtsrate
12575  * Please Place Description here.
12576  * @var mac_ax_cctl_info::rsvd1
12577  * Please Place Description here.
12578  * @var mac_ax_cctl_info::vcs_stbc
12579  * Please Place Description here.
12580  * @var mac_ax_cctl_info::rts_rty_lowest_rate
12581  * Please Place Description here.
12582  * @var mac_ax_cctl_info::data_tx_cnt_lmt
12583  * Please Place Description here.
12584  * @var mac_ax_cctl_info::data_txcnt_lmt_sel
12585  * Please Place Description here.
12586  * @var mac_ax_cctl_info::max_agg_num_sel
12587  * Please Place Description here.
12588  * @var mac_ax_cctl_info::rts_en
12589  * Please Place Description here.
12590  * @var mac_ax_cctl_info::cts2self_en
12591  * Please Place Description here.
12592  * @var mac_ax_cctl_info::cca_rts
12593  * Please Place Description here.
12594  * @var mac_ax_cctl_info::hw_rts_en
12595  * Please Place Description here.
12596  * @var mac_ax_cctl_info::rts_drop_data_mode
12597  * Please Place Description here.
12598  * @var mac_ax_cctl_info::rsvd2
12599  * Please Place Description here.
12600  * @var mac_ax_cctl_info::ampdu_max_len
12601  * Please Place Description here.
12602  * @var mac_ax_cctl_info::ul_mu_dis
12603  * Please Place Description here.
12604  * @var mac_ax_cctl_info::ampdu_max_time
12605  * Please Place Description here.
12606  * @var mac_ax_cctl_info::max_agg_num
12607  * Please Place Description here.
12608  * @var mac_ax_cctl_info::ba_bmap
12609  * Please Place Description here.
12610  * @var mac_ax_cctl_info::rsvd3
12611  * Please Place Description here.
12612  * @var mac_ax_cctl_info::vo_lftime_sel
12613  * Please Place Description here.
12614  * @var mac_ax_cctl_info::vi_lftime_sel
12615  * Please Place Description here.
12616  * @var mac_ax_cctl_info::be_lftime_sel
12617  * Please Place Description here.
12618  * @var mac_ax_cctl_info::bk_lftime_sel
12619  * Please Place Description here.
12620  * @var mac_ax_cctl_info::sectype
12621  * Please Place Description here.
12622  * @var mac_ax_cctl_info::multi_port_id
12623  * Please Place Description here.
12624  * @var mac_ax_cctl_info::bmc
12625  * Please Place Description here.
12626  * @var mac_ax_cctl_info::mbssid
12627  * Please Place Description here.
12628  * @var mac_ax_cctl_info::navusehdr
12629  * Please Place Description here.
12630  * @var mac_ax_cctl_info::txpwr_mode
12631  * Please Place Description here.
12632  * @var mac_ax_cctl_info::data_dcm
12633  * Please Place Description here.
12634  * @var mac_ax_cctl_info::data_er
12635  * Please Place Description here.
12636  * @var mac_ax_cctl_info::data_ldpc
12637  * Please Place Description here.
12638  * @var mac_ax_cctl_info::data_stbc
12639  * Please Place Description here.
12640  * @var mac_ax_cctl_info::a_ctrl_bqr
12641  * Please Place Description here.
12642  * @var mac_ax_cctl_info::a_ctrl_uph
12643  * Please Place Description here.
12644  * @var mac_ax_cctl_info::a_ctrl_bsr
12645  * Please Place Description here.
12646  * @var mac_ax_cctl_info::a_ctrl_cas
12647  * Please Place Description here.
12648  * @var mac_ax_cctl_info::data_bw_er
12649  * Please Place Description here.
12650  * @var mac_ax_cctl_info::lsig_txop_en
12651  * Please Place Description here.
12652  * @var mac_ax_cctl_info::rsvd4
12653  * Please Place Description here.
12654  * @var mac_ax_cctl_info::ctrl_cnt_vld
12655  * Please Place Description here.
12656  * @var mac_ax_cctl_info::ctrl_cnt
12657  * Please Place Description here.
12658  * @var mac_ax_cctl_info::resp_ref_rate
12659  * Please Place Description here.
12660  * @var mac_ax_cctl_info::rsvd5
12661  * Please Place Description here.
12662  * @var mac_ax_cctl_info::all_ack_support
12663  * Please Place Description here.
12664  * @var mac_ax_cctl_info::bsr_queue_size_format
12665  * Please Place Description here.
12666  * @var mac_ax_cctl_info::rsvd6
12667  * Please Place Description here.
12668  * @var mac_ax_cctl_info::rsvd7
12669  * Please Place Description here.
12670  * @var mac_ax_cctl_info::ntx_path_en
12671  * Please Place Description here.
12672  * @var mac_ax_cctl_info::path_map_a
12673  * Please Place Description here.
12674  * @var mac_ax_cctl_info::path_map_b
12675  * Please Place Description here.
12676  * @var mac_ax_cctl_info::path_map_c
12677  * Please Place Description here.
12678  * @var mac_ax_cctl_info::path_map_d
12679  * Please Place Description here.
12680  * @var mac_ax_cctl_info::antsel_a
12681  * Please Place Description here.
12682  * @var mac_ax_cctl_info::antsel_b
12683  * Please Place Description here.
12684  * @var mac_ax_cctl_info::antsel_c
12685  * Please Place Description here.
12686  * @var mac_ax_cctl_info::antsel_d
12687  * Please Place Description here.
12688  * @var mac_ax_cctl_info::addr_cam_index
12689  * Please Place Description here.
12690  * @var mac_ax_cctl_info::paid
12691  * Please Place Description here.
12692  * @var mac_ax_cctl_info::uldl
12693  * Please Place Description here.
12694  * @var mac_ax_cctl_info::doppler_ctrl
12695  * Please Place Description here.
12696  * @var mac_ax_cctl_info::nominal_pkt_padding
12697  * Please Place Description here.
12698  * @var mac_ax_cctl_info::nominal_pkt_padding40
12699  * Please Place Description here.
12700  * @var mac_ax_cctl_info::txpwr_tolerence
12701  * Please Place Description here.
12702  * @var mac_ax_cctl_info::rsvd9
12703  * Please Place Description here.
12704  * @var mac_ax_cctl_info::nominal_pkt_padding80
12705  * Please Place Description here.
12706  * @var mac_ax_cctl_info::nc
12707  * Please Place Description here.
12708  * @var mac_ax_cctl_info::nr
12709  * Please Place Description here.
12710  * @var mac_ax_cctl_info::ng
12711  * Please Place Description here.
12712  * @var mac_ax_cctl_info::cb
12713  * Please Place Description here.
12714  * @var mac_ax_cctl_info::cs
12715  * Please Place Description here.
12716  * @var mac_ax_cctl_info::csi_txbf_en
12717  * Please Place Description here.
12718  * @var mac_ax_cctl_info::csi_stbc_en
12719  * Please Place Description here.
12720  * @var mac_ax_cctl_info::csi_ldpc_en
12721  * Please Place Description here.
12722  * @var mac_ax_cctl_info::csi_para_en
12723  * Please Place Description here.
12724  * @var mac_ax_cctl_info::csi_fix_rate
12725  * Please Place Description here.
12726  * @var mac_ax_cctl_info::csi_gi_ltf
12727  * Please Place Description here.
12728  * @var mac_ax_cctl_info::nominal_pkt_padding160
12729  * Please Place Description here.
12730  * @var mac_ax_cctl_info::csi_bw
12731  * Please Place Description here.
12732  */
12733 struct mac_ax_cctl_info {
12734 	/* dword 0 */
12735 	u32 datarate:9;
12736 	u32 force_txop:1;
12737 	u32 data_bw:2;
12738 	u32 data_gi_ltf:3;
12739 	u32 darf_tc_index:1;
12740 	u32 arfr_ctrl:4;
12741 	u32 acq_rpt_en:1;
12742 	u32 mgq_rpt_en:1;
12743 	u32 ulq_rpt_en:1;
12744 	u32 twtq_rpt_en:1;
12745 	u32 rsvd0:1;
12746 	u32 disrtsfb:1;
12747 	u32 disdatafb:1;
12748 	u32 tryrate:1;
12749 	u32 ampdu_density:4;
12750 	/* dword 1 */
12751 	u32 data_rty_lowest_rate:9;
12752 	u32 ampdu_time_sel:1;
12753 	u32 ampdu_len_sel:1;
12754 	u32 rts_txcnt_lmt_sel:1;
12755 	u32 rts_txcnt_lmt:4;
12756 	u32 rtsrate:9;
12757 	u32 rsvd1:2;
12758 	u32 vcs_stbc:1;
12759 	u32 rts_rty_lowest_rate:4;
12760 	/* dword 2 */
12761 	u32 data_tx_cnt_lmt:6;
12762 	u32 data_txcnt_lmt_sel:1;
12763 	u32 max_agg_num_sel:1;
12764 	u32 rts_en:1;
12765 	u32 cts2self_en:1;
12766 	u32 cca_rts:2;
12767 	u32 hw_rts_en:1;
12768 	u32 rts_drop_data_mode:2;
12769 	u32 rsvd2:1;
12770 	u32 ampdu_max_len:11;
12771 	u32 ul_mu_dis:1;
12772 	u32 ampdu_max_time:4;
12773 	/* dword 3 */
12774 	u32 max_agg_num:8;
12775 	u32 ba_bmap:2;
12776 	u32 rsvd3:6;
12777 	u32 vo_lftime_sel:3;
12778 	u32 vi_lftime_sel:3;
12779 	u32 be_lftime_sel:3;
12780 	u32 bk_lftime_sel:3;
12781 	u32 sectype:4;
12782 	/* dword 4 */
12783 	u32 multi_port_id:3;
12784 	u32 bmc:1;
12785 	u32 mbssid:4;
12786 	u32 navusehdr:1;
12787 	u32 txpwr_mode:3;
12788 	u32 data_dcm:1;
12789 	u32 data_er:1;
12790 	u32 data_ldpc:1;
12791 	u32 data_stbc:1;
12792 	u32 a_ctrl_bqr:1;
12793 	u32 a_ctrl_uph:1;
12794 	u32 a_ctrl_bsr:1;
12795 	u32 a_ctrl_cas:1;
12796 	u32 data_bw_er:1;
12797 	u32 lsig_txop_en:1;
12798 	u32 rsvd4:5;
12799 	u32 ctrl_cnt_vld:1;
12800 	u32 ctrl_cnt:4;
12801 	/* dword 5 */
12802 	u32 resp_ref_rate:9;
12803 	u32 rsvd5:3;
12804 	u32 all_ack_support:1;
12805 	u32 bsr_queue_size_format:1;
12806 	u32 rsvd6:1;
12807 	u32 rsvd7:1;
12808 	u32 ntx_path_en:4;
12809 	u32 path_map_a:2;
12810 	u32 path_map_b:2;
12811 	u32 path_map_c:2;
12812 	u32 path_map_d:2;
12813 	u32 antsel_a:1;
12814 	u32 antsel_b:1;
12815 	u32 antsel_c:1;
12816 	u32 antsel_d:1;
12817 	/* dword 6 */
12818 	u32 addr_cam_index:8;
12819 	u32 paid:9;
12820 	u32 uldl:1;
12821 	u32 doppler_ctrl:2;
12822 	u32 nominal_pkt_padding:2;
12823 	u32 nominal_pkt_padding40:2;
12824 	u32 txpwr_tolerence:4;
12825 	u32 rsvd9:2;
12826 	u32 nominal_pkt_padding80:2;
12827 	/* dword 7 */
12828 	u32 nc:3;
12829 	u32 nr:3;
12830 	u32 ng:2;
12831 	u32 cb:2;
12832 	u32 cs:2;
12833 	u32 csi_txbf_en:1;
12834 	u32 csi_stbc_en:1;
12835 	u32 csi_ldpc_en:1;
12836 	u32 csi_para_en:1;
12837 	u32 csi_fix_rate:9;
12838 	u32 csi_gi_ltf:3;
12839 	u32 nominal_pkt_padding160:2;
12840 	u32 csi_bw:2;
12841 };
12842 
12843 /**
12844  * @struct mac_ax_dctl_info
12845  * @brief mac_ax_dctl_info
12846  *
12847  * @var mac_ax_dctl_info::qos_field_h
12848  * Please Place Description here.
12849  * @var mac_ax_dctl_info::hw_exseq_macid
12850  * Please Place Description here.
12851  * @var mac_ax_dctl_info::qos_field_h_en
12852  * Please Place Description here.
12853  * @var mac_ax_dctl_info::aes_iv_l
12854  * Please Place Description here.
12855  * @var mac_ax_dctl_info::aes_iv_h
12856  * Please Place Description here.
12857  * @var mac_ax_dctl_info::seq0
12858  * Please Place Description here.
12859  * @var mac_ax_dctl_info::seq1
12860  * Please Place Description here.
12861  * @var mac_ax_dctl_info::amsdu_max_length
12862  * Please Place Description here.
12863  * @var mac_ax_dctl_info::sta_amsdu_en
12864  * Please Place Description here.
12865  * @var mac_ax_dctl_info::chksum_offload_en
12866  * Please Place Description here.
12867  * @var mac_ax_dctl_info::with_llc
12868  * Please Place Description here.
12869  * @var mac_ax_dctl_info::rsvd0
12870  * Please Place Description here.
12871  * @var mac_ax_dctl_info::sec_hw_enc
12872  * Please Place Description here.
12873  * @var mac_ax_dctl_info::seq2
12874  * Please Place Description here.
12875  * @var mac_ax_dctl_info::seq3
12876  * Please Place Description here.
12877  * @var mac_ax_dctl_info::sec_cam_idx
12878  * Please Place Description here.
12879  */
12880 struct mac_ax_dctl_info {
12881 	/* dword 0 */
12882 	u32 qos_field_h:8;
12883 	u32 hw_exseq_macid:7;
12884 	u32 qos_field_h_en:1;
12885 	u32 aes_iv_l:16;
12886 	/* dword 1 */
12887 	u32 aes_iv_h:32;
12888 	/* dword 2 */
12889 	u32 seq0:12;
12890 	u32 seq1:12;
12891 	u32 amsdu_max_length:3;
12892 	u32 sta_amsdu_en:1;
12893 	u32 chksum_offload_en:1;
12894 	u32 with_llc:1;
12895 	u32 rsvd0:1;
12896 	u32 sec_hw_enc:1;
12897 	/* dword 3 */
12898 	u32 seq2:12;
12899 	u32 seq3:12;
12900 	u32 sec_cam_idx:8;
12901 };
12902 
12903 /**
12904  * struct mac_ax_role_info - role information
12905  * @macid: MAC ID.
12906  * @band: Band selection, band0 or band1.
12907  * @wmm: WMM selection, wmm0 ow wmm1.
12908  *	There are four sets about band and wmm,
12909  *	band0+wmm0, band0+wmm1, band1+wmm0,band1+wmm1.
12910  */
12911 
12912 /**
12913  * @struct mac_ax_role_info
12914  * @brief mac_ax_role_info
12915  *
12916  * @var mac_ax_role_info::self_role
12917  * Please Place Description here.
12918  * @var mac_ax_role_info::wifi_role
12919  * Please Place Description here.
12920  * @var mac_ax_role_info::net_type
12921  * Please Place Description here.
12922  * @var mac_ax_role_info::upd_mode
12923  * Please Place Description here.
12924  * @var mac_ax_role_info::opmode
12925  * Please Place Description here.
12926  * @var mac_ax_role_info::band
12927  * Please Place Description here.
12928  * @var mac_ax_role_info::port
12929  * Please Place Description here.
12930  * @var mac_ax_role_info::macid
12931  * Please Place Description here.
12932  * @var mac_ax_role_info::self_mac
12933  * Please Place Description here.
12934  * @var mac_ax_role_info::target_mac
12935  * Please Place Description here.
12936  * @var mac_ax_role_info::bssid
12937  * Please Place Description here.
12938  * @var mac_ax_role_info::bss_color
12939  * Please Place Description here.
12940  * @var mac_ax_role_info::bcn_hit_cond
12941  * Please Place Description here.
12942  * @var mac_ax_role_info::hit_rule
12943  * Please Place Description here.
12944  * @var mac_ax_role_info::is_mul_ent
12945  * Please Place Description here.
12946  * @var mac_ax_role_info::tsf_sync
12947  * Please Place Description here.
12948  * @var mac_ax_role_info::trigger
12949  * Please Place Description here.
12950  * @var mac_ax_role_info::lsig_txop
12951  * Please Place Description here.
12952  * @var mac_ax_role_info::tgt_ind
12953  * Please Place Description here.
12954  * @var mac_ax_role_info::frm_tgt_ind
12955  * Please Place Description here.
12956  * @var mac_ax_role_info::wol_pattern
12957  * Please Place Description here.
12958  * @var mac_ax_role_info::wol_uc
12959  * Please Place Description here.
12960  * @var mac_ax_role_info::wol_magic
12961  * Please Place Description here.
12962  * @var mac_ax_role_info::wapi
12963  * Please Place Description here.
12964  * @var mac_ax_role_info::sec_ent_mode
12965  * Please Place Description here.
12966  * @var mac_ax_role_info::wmm
12967  * Please Place Description here.
12968  * @var mac_ax_role_info::dbcc_role
12969  * Please Place Description here.
12970  * @var mac_ax_role_info::is_hesta
12971  * Please Place Description here.
12972  * @var mac_ax_role_info::dl_bw
12973  * Please Place Description here.
12974  * @var mac_ax_role_info::tf_mac_padding
12975  * Please Place Description here.
12976  * @var mac_ax_role_info::dl_t_pe
12977  * Please Place Description here.
12978  * @var mac_ax_role_info::aid
12979  * Please Place Description here.
12980  * @var mac_ax_role_info::a_info
12981  * Please Place Description here.
12982  * @var mac_ax_role_info::b_info
12983  * Please Place Description here.
12984  * @var mac_ax_role_info::s_info
12985  * Please Place Description here.
12986  * @var mac_ax_role_info::c_info
12987  * Please Place Description here.
12988  */
12989 struct mac_ax_role_info {
12990 	enum mac_ax_self_role self_role;
12991 	enum mac_ax_wifi_role wifi_role;
12992 	enum mac_ax_net_type net_type;
12993 	enum mac_ax_upd_mode upd_mode;
12994 	enum mac_ax_opmode opmode;
12995 	enum mac_ax_band band;
12996 	enum mac_ax_port port;
12997 	enum mac_ax_addr_msk_sel mask_sel;
12998 	enum mac_ax_addr_msk addr_mask;
12999 	u8 macid;
13000 	u8 self_mac[6];
13001 	u8 target_mac[6];
13002 	u8 bssid[6];
13003 
13004 	u8 bss_color:6;
13005 	u8 bcn_hit_cond:2;
13006 
13007 	u8 hit_rule:2;
13008 	u8 is_mul_ent:1;
13009 	u8 tsf_sync:3;
13010 	u8 trigger:1;
13011 	u8 lsig_txop:1;
13012 
13013 	u8 tgt_ind:3;
13014 	u8 frm_tgt_ind:3;
13015 	u8 wol_pattern:1;
13016 	u8 wol_uc:1;
13017 
13018 	u8 wol_magic:1;
13019 	u8 wapi:1;
13020 	u8 sec_ent_mode:2;
13021 	u8 wmm:2;
13022 	u8 dbcc_role:1;
13023 	u8 rsvd:1;
13024 
13025 	u8 is_hesta:1;
13026 	u8 dl_bw:2;
13027 	u8 tf_mac_padding:2;
13028 	u8 dl_t_pe: 3;
13029 
13030 	u16 aid;
13031 	struct mac_ax_addr_cam_info a_info;
13032 	struct mac_ax_bssid_cam_info b_info;
13033 	struct mac_ax_sec_cam_info s_info;
13034 	struct rtw_hal_mac_ax_cctl_info c_info;
13035 };
13036 
13037 /**
13038  * @struct mac_role_tbl
13039  * @brief mac_role_tbl
13040  *
13041  * @var mac_role_tbl::next
13042  * Please Place Description here.
13043  * @var mac_role_tbl::prev
13044  * Please Place Description here.
13045  * @var mac_role_tbl::info
13046  * Please Place Description here.
13047  * @var mac_role_tbl::macid
13048  * Please Place Description here.
13049  * @var mac_role_tbl::wmm
13050  * Please Place Description here.
13051  */
13052 struct mac_role_tbl {
13053 	/* keep first */
13054 	struct mac_role_tbl *next;
13055 	struct mac_role_tbl *prev;
13056 	struct mac_ax_role_info info;
13057 	u8 macid;
13058 	u8 wmm;
13059 };
13060 
13061 /**
13062  * @struct mac_role_tbl_head
13063  * @brief mac_role_tbl_head
13064  *
13065  * @var mac_role_tbl_head::next
13066  * Please Place Description here.
13067  * @var mac_role_tbl_head::prev
13068  * Please Place Description here.
13069  * @var mac_role_tbl_head::role_tbl_pool
13070  * Please Place Description here.
13071  * @var mac_role_tbl_head::qlen
13072  * Please Place Description here.
13073  * @var mac_role_tbl_head::lock
13074  * Please Place Description here.
13075  */
13076 struct mac_role_tbl_head {
13077 	/* keep first */
13078 	struct mac_role_tbl *next;
13079 	struct mac_role_tbl *prev;
13080 	struct mac_role_tbl_head *role_tbl_pool;
13081 	u32 qlen;
13082 	mac_ax_mutex lock;
13083 };
13084 
13085 /**
13086  * @struct mac_ax_coex
13087  * @brief mac_ax_coex
13088  *
13089  * @var mac_ax_coex::pta_mode
13090  * Please Place Description here.
13091  * @var mac_ax_coex::direction
13092  * Please Place Description here.
13093  */
13094 struct mac_ax_coex {
13095 #define MAC_AX_COEX_RTK_MODE 0
13096 #define MAC_AX_COEX_CSR_MODE 1
13097 	u8 pta_mode;
13098 #define MAC_AX_COEX_INNER 0
13099 #define MAC_AX_COEX_OUTPUT 1
13100 #define MAC_AX_COEX_INPUT 2
13101 	u8 direction;
13102 };
13103 
13104 /**
13105  * @struct mac_ax_port_tsf
13106  * @brief mac_ax_port_tsf
13107  *
13108  * @var mac_ax_port_tsf::tsf_l
13109  * Please Place Description here.
13110  * @var mac_ax_port_tsf::tsf_h
13111  * Please Place Description here.
13112  * @var mac_ax_port_tsf::port
13113  * Please Place Description here.
13114  */
13115 struct mac_ax_port_tsf {
13116 	u32 tsf_l;
13117 	u32 tsf_h;
13118 	u8 port;
13119 };
13120 
13121 /**
13122  * @struct mac_ax_gnt
13123  * @brief mac_ax_gnt
13124  *
13125  * @var mac_ax_gnt::gnt_bt_sw_en
13126  * Please Place Description here.
13127  * @var mac_ax_gnt::gnt_bt
13128  * Please Place Description here.
13129  * @var mac_ax_gnt::gnt_wl_sw_en
13130  * Please Place Description here.
13131  * @var mac_ax_gnt::gnt_wl
13132  * Please Place Description here.
13133  */
13134 struct mac_ax_gnt {
13135 	u8 gnt_bt_sw_en;
13136 	u8 gnt_bt;
13137 	u8 gnt_wl_sw_en;
13138 	u8 gnt_wl;
13139 };
13140 
13141 /**
13142  * @struct mac_ax_coex_gnt
13143  * @brief mac_ax_coex_gnt
13144  *
13145  * @var mac_ax_coex_gnt::band0
13146  * Please Place Description here.
13147  * @var mac_ax_coex_gnt::band1
13148  * Please Place Description here.
13149  */
13150 struct mac_ax_coex_gnt {
13151 	struct mac_ax_gnt band0;
13152 	struct mac_ax_gnt band1;
13153 };
13154 
13155 /**
13156  * @struct mac_ax_plt
13157  * @brief mac_ax_plt
13158  *
13159  * @var mac_ax_plt::band
13160  * Please Place Description here.
13161  * @var mac_ax_plt::tx
13162  * Please Place Description here.
13163  * @var mac_ax_plt::rx
13164  * Please Place Description here.
13165  */
13166 struct mac_ax_plt {
13167 #define MAC_AX_PLT_LTE_RX BIT(0)
13168 #define MAC_AX_PLT_GNT_BT_TX BIT(1)
13169 #define MAC_AX_PLT_GNT_BT_RX BIT(2)
13170 #define MAC_AX_PLT_GNT_WL BIT(3)
13171 	u8 band;
13172 	u8 tx;
13173 	u8 rx;
13174 };
13175 
13176 /**
13177  * @struct mac_ax_rx_cnt
13178  * @brief mac_ax_rx_cnt
13179  *
13180  * @var mac_ax_rx_cnt::type
13181  * Please Place Description here.
13182  * @var mac_ax_rx_cnt::op
13183  * Please Place Description here.
13184  * @var mac_ax_rx_cnt::idx
13185  * Please Place Description here.
13186  * @var mac_ax_rx_cnt::band
13187  * Please Place Description here.
13188  * @var mac_ax_rx_cnt::buf
13189  * Please Place Description here.
13190  */
13191 struct mac_ax_rx_cnt {
13192 #define MAC_AX_RX_CRC_OK 0
13193 #define MAC_AX_RX_CRC_FAIL 1
13194 #define MAC_AX_RX_FA 2
13195 #define MAC_AX_RX_PPDU 3
13196 #define MAC_AX_RX_IDX 4
13197 	u8 type;
13198 #define MAC_AX_RXCNT_R 0
13199 #define MAC_AX_RXCNT_RST_ALL 1
13200 	u8 op;
13201 	u8 idx;
13202 	u8 band;
13203 	u16 *buf;
13204 };
13205 
13206 /**
13207  * @struct mac_ax_tx_cnt
13208  * @brief mac_ax_tx_cnt
13209  *
13210  * @var mac_ax_tx_cnt::band
13211  * Please Place Description here.
13212  * @var mac_ax_tx_cnt::sel
13213  * Please Place Description here.
13214  * @var mac_ax_tx_cnt::txcnt
13215  * Please Place Description here.
13216  */
13217 struct mac_ax_tx_cnt {
13218 #define MAC_AX_TX_LCCK 0
13219 #define MAC_AX_TX_SCCK 1
13220 #define MAC_AX_TX_OFDM 2
13221 #define MAC_AX_TX_HT 3
13222 #define MAC_AX_TX_HTGF 4
13223 #define MAC_AX_TX_VHTSU 5
13224 #define MAC_AX_TX_VHTMU 6
13225 #define MAC_AX_TX_HESU 7
13226 #define MAC_AX_TX_HEERSU 8
13227 #define MAC_AX_TX_HEMU 9
13228 #define MAC_AX_TX_HETB 10
13229 #define MAC_AX_TX_ALLTYPE 11
13230 	u8 band;
13231 	u8 sel;
13232 	u16 txcnt[MAC_AX_TX_ALLTYPE];
13233 };
13234 
13235 /**
13236  * @struct mac_ax_mcc_role
13237  * @brief mac_ax_mcc_role
13238  *
13239  * @var mac_ax_mcc_role::macid
13240  * Please Place Description here.
13241  * @var mac_ax_mcc_role::central_ch_seg0
13242  * Please Place Description here.
13243  * @var mac_ax_mcc_role::central_ch_seg1
13244  * Please Place Description here.
13245  * @var mac_ax_mcc_role::primary_ch
13246  * Please Place Description here.
13247  * @var mac_ax_mcc_role::bandwidth
13248  * Please Place Description here.
13249  * @var mac_ax_mcc_role::group
13250  * Please Place Description here.
13251  * @var mac_ax_mcc_role::c2h_rpt
13252  * Please Place Description here.
13253  * @var mac_ax_mcc_role::dis_tx_null
13254  * Please Place Description here.
13255  * @var mac_ax_mcc_role::dis_sw_retry
13256  * Please Place Description here.
13257  * @var mac_ax_mcc_role::in_curr_ch
13258  * Please Place Description here.
13259  * @var mac_ax_mcc_role::sw_retry_count
13260  * Please Place Description here.
13261  * @var mac_ax_mcc_role::tx_null_early
13262  * Please Place Description here.
13263  * @var mac_ax_mcc_role::rsvd0
13264  * Please Place Description here.
13265  * @var mac_ax_mcc_role::duration
13266  * Please Place Description here.
13267  */
13268 struct mac_ax_mcc_role {
13269 	/* dword0 */
13270 	u32 macid: 8;
13271 	u32 central_ch_seg0: 8;
13272 	u32 central_ch_seg1: 8;
13273 	u32 primary_ch: 8;
13274 	/* dword1 */
13275 	enum channel_width bandwidth: 4;
13276 	u32 group: 2;
13277 #define MCC_C2H_RPT_OFF 0
13278 #define MCC_C2H_RPT_FAIL_ONLY 1
13279 #define MCC_C2H_RPT_ALL 2
13280 	u32 c2h_rpt: 2;
13281 	u32 dis_tx_null: 1;
13282 	u32 dis_sw_retry: 1;
13283 	u32 in_curr_ch: 1;
13284 	u32 sw_retry_count: 3;
13285 	u32 tx_null_early: 4;
13286 	u32 btc_in_2g: 1;
13287 	u32 pta_en: 1;
13288 	u32 rfk_by_pass: 1;
13289 	u32 rsvd0: 11;
13290 	/* dword2 */
13291 	u32 duration: 32;
13292 	/* dword3 */
13293 	u8 courtesy_en;
13294 	u8 courtesy_num;
13295 	u8 courtesy_target;
13296 	u8 rsvd1;
13297 };
13298 
13299 struct mac_ax_mcc_start {
13300 	/* dword0 */
13301 	u32 group: 2;
13302 	u32 btc_in_group: 1;
13303 	u32 old_group_action: 2;
13304 	u32 old_group:2;
13305 	u32 rsvd0: 17;
13306 	u32 macid: 8;
13307 	/* dword1 */
13308 	u32 tsf_low;
13309 	/* dword2 */
13310 	u32 tsf_high;
13311 };
13312 
13313 /**
13314  * @struct mac_ax_mcc_duration_info
13315  * @brief mac_ax_mcc_duration_info
13316  *
13317  * @var mac_ax_mcc_duration_info::group
13318  * Please Place Description here.
13319  * @var mac_ax_mcc_duration_info::rsvd0
13320  * Please Place Description here.
13321  * @var mac_ax_mcc_duration_info::start_macid
13322  * Please Place Description here.
13323  * @var mac_ax_mcc_duration_info::macid_x
13324  * Please Place Description here.
13325  * @var mac_ax_mcc_duration_info::macid_y
13326  * Please Place Description here.
13327  * @var mac_ax_mcc_duration_info::start_tsf_low
13328  * Please Place Description here.
13329  * @var mac_ax_mcc_duration_info::start_tsf_high
13330  * Please Place Description here.
13331  * @var mac_ax_mcc_duration_info::duration_x
13332  * Please Place Description here.
13333  * @var mac_ax_mcc_duration_info::duration_y
13334  * Please Place Description here.
13335  */
13336 struct mac_ax_mcc_duration_info {
13337 	/* dword0 */
13338 	u32 group: 2;
13339 	u32 btc_in_group:1;
13340 	u32 rsvd0: 5;
13341 	u32 start_macid: 8;
13342 	u32 macid_x: 8;
13343 	u32 macid_y: 8;
13344 	/* dword1 */
13345 	u32 start_tsf_low;
13346 	/* dword2 */
13347 	u32 start_tsf_high;
13348 	/* dword3 */
13349 	u32 duration_x;
13350 	/* dword4 */
13351 	u32 duration_y;
13352 };
13353 
13354 /**
13355  * @struct mac_ax_mcc_group
13356  * @brief mac_ax_mcc_group
13357  *
13358  * @var mac_ax_mcc_group::rpt_status
13359  * Please Place Description here.
13360  * @var mac_ax_mcc_group::rpt_macid
13361  * Please Place Description here.
13362  * @var mac_ax_mcc_group::macid_x
13363  * Please Place Description here.
13364  * @var mac_ax_mcc_group::macid_y
13365  * Please Place Description here.
13366  * @var mac_ax_mcc_group::rpt_tsf_high
13367  * Please Place Description here.
13368  * @var mac_ax_mcc_group::rpt_tsf_low
13369  * Please Place Description here.
13370  * @var mac_ax_mcc_group::tsf_x_high
13371  * Please Place Description here.
13372  * @var mac_ax_mcc_group::tsf_x_low
13373  * Please Place Description here.
13374  * @var mac_ax_mcc_group::tsf_y_high
13375  * Please Place Description here.
13376  * @var mac_ax_mcc_group::tsf_y_low
13377  * Please Place Description here.
13378  */
13379 struct mac_ax_mcc_group {
13380 	u8 rpt_status;
13381 	u8 rpt_macid;
13382 	u8 macid_x;
13383 	u8 macid_y;
13384 	u32 rpt_tsf_high;
13385 	u32 rpt_tsf_low;
13386 	u32 tsf_x_high;
13387 	u32 tsf_x_low;
13388 	u32 tsf_y_high;
13389 	u32 tsf_y_low;
13390 };
13391 
13392 /**
13393  * @struct mac_ax_mcc_group_info
13394  * @brief mac_ax_mcc_group_info
13395  *
13396  * @var mac_ax_mcc_group_info::groups
13397  * Please Place Description here.
13398  */
13399 struct mac_ax_mcc_group_info {
13400 	struct mac_ax_mcc_group groups[4];
13401 };
13402 
13403 /**
13404  * @struct mac_ax_tx_tf_info
13405  * @brief mac_ax_tx_tf_info
13406  *
13407  * @var mac_ax_tx_tf_info::tx_tf_infol
13408  * Please Place Description here.
13409  * @var mac_ax_tx_tf_info::tx_tf_infoh
13410  * Please Place Description here.
13411  * @var mac_ax_tx_tf_info::tx_tf_infosel
13412  * Please Place Description here.
13413  */
13414 struct mac_ax_tx_tf_info {
13415 	u32 tx_tf_infol;
13416 	u32 tx_tf_infoh;
13417 	u8 tx_tf_infosel;//4:common info; 0~3: user0 ~ user3 info
13418 };
13419 
13420 /**
13421  * @struct mac_ax_sr_info
13422  * @brief mac_ax_sr_info
13423  *
13424  * @var mac_ax_sr_info::sr_en
13425  * Please Place Description here.
13426  * @var mac_ax_sr_info::sr_field_v15_allowed
13427  * Please Place Description here.
13428  * @var mac_ax_sr_info::srg_obss_pd_min
13429  * Please Place Description here.
13430  * @var mac_ax_sr_info::srg_obss_pd_max
13431  * Please Place Description here.
13432  * @var mac_ax_sr_info::non_srg_obss_pd_min
13433  * Please Place Description here.
13434  * @var mac_ax_sr_info::non_srg_obss_pd_max
13435  * Please Place Description here.
13436  * @var mac_ax_sr_info::srg_bsscolor_bitmap_0
13437  * Please Place Description here.
13438  * @var mac_ax_sr_info::srg_bsscolor_bitmap_1
13439  * Please Place Description here.
13440  * @var mac_ax_sr_info::srg_partbsid_bitmap_0
13441  * Please Place Description here.
13442  * @var mac_ax_sr_info::srg_partbsid_bitmap_1
13443  * Please Place Description here.
13444  */
13445 struct mac_ax_sr_info {
13446 	u8 sr_en: 1;
13447 	u8 sr_field_v15_allowed: 1;
13448 	u8 srg_obss_pd_min;
13449 	u8 srg_obss_pd_max;
13450 	u8 non_srg_obss_pd_min;
13451 	u8 non_srg_obss_pd_max;
13452 	u32 srg_bsscolor_bitmap_0;
13453 	u32 srg_bsscolor_bitmap_1;
13454 	u32 srg_partbsid_bitmap_0;
13455 	u32 srg_partbsid_bitmap_1;
13456 };
13457 
13458 /**
13459  * @struct mac_ax_nav_padding
13460  * @brief mac_ax_nav_padding
13461  *
13462  * @var mac_ax_nav_padding::band
13463  * Please Place Description here.
13464  * @var mac_ax_nav_padding::nav_pad_en
13465  * Please Place Description here.
13466  * @var mac_ax_nav_padding::over_txop_en
13467  * Please Place Description here.
13468  * @var mac_ax_nav_padding::nav_padding
13469  * Please Place Description here.
13470  */
13471 struct mac_ax_nav_padding {
13472 	u8 band;
13473 	u8 nav_pad_en;
13474 	u8 over_txop_en;
13475 	u16 nav_padding;
13476 };
13477 
13478 /**
13479  * @struct mac_ax_max_tx_time
13480  * @brief mac_ax_max_tx_time
13481  *
13482  * @var mac_ax_max_tx_time::macid
13483  * Please Place Description here.
13484  * @var mac_ax_max_tx_time::is_cctrl
13485  * Please Place Description here.
13486  * @var mac_ax_max_tx_time::max_tx_time
13487  * Please Place Description here.
13488  */
13489 struct mac_ax_max_tx_time {
13490 	u8 macid;
13491 	u8 is_cctrl;
13492 	u32 max_tx_time; /* us */
13493 };
13494 
13495 /**
13496  * @struct mac_ax_hw_rts_th
13497  * @brief Config HW RTS time/len threshold
13498  *
13499  * @var mac_ax_hw_rts_th::band
13500  * the mac_band to setup/query
13501  * @var mac_ax_hw_rts_th::time_th
13502  * HW RTS time threshold
13503  * @var mac_ax_hw_rts_th::time_th
13504  * HW RTS length threshold
13505  */
13506 struct mac_ax_hw_rts_th {
13507 	u8 band;
13508 	u16 time_th; /* us */
13509 	u16 len_th; /* byte */
13510 };
13511 
13512 /**
13513  * @struct mac_ax_io_stat
13514  * @brief Get IO state from HCI (PCIE: LBC)
13515  *
13516  * @var mac_ax_io_stat::to_flag
13517  * timeout flag is set
13518  * @var mac_ax_io_stat::io_st
13519  * IO state from sm.io_st
13520  * @var mac_ax_io_stat::rsvd
13521  * reserved
13522  * @var mac_ax_io_stat::addr
13523  * the last timeout addr when timeout flag is set
13524  */
13525 struct mac_ax_io_stat {
13526 	u8 to_flag:1;
13527 	u8 io_st:1;
13528 	u8 rsvd:6;
13529 	u32 addr;
13530 };
13531 
13532 /**
13533  * @struct mac_ax_drv_stats
13534  * @brief
13535  *
13536  * The driver status in halmac
13537  *
13538  * @var mac_ax_drv_stats::rx_ok
13539  * RX status
13540  * @var mac_ax_drv_stats::drv_rm
13541  * Driver is removed
13542  */
13543 struct mac_ax_drv_stats {
13544 	u8 rx_ok;
13545 	u8 drv_rm;
13546 };
13547 
13548 /**
13549  * @struct mac_ax_wps_cfg
13550  * @brief
13551  *
13552  * WPS is a driver feature to detect button pressed or released.
13553  * In HW view, the feature is to check the GPIO input value is 0->1 or 1->0
13554  * We use FW to detect GPIO val.
13555  * In a specified interval, if FW detects value changed, it will send a C2H
13556  *
13557  * @var mac_ax_wps_cfg::en
13558  * Enable WPS function i.e, Enable FW reports C2H
13559  * @var mac_ax_wps_cfg::gpio
13560  * The GPIO to be detected
13561  * @var mac_ax_wps_cfg::interval
13562  * The detecting interval in ms
13563  */
13564 struct mac_ax_cfg_wps {
13565 	u8 en;
13566 	u8 gpio;
13567 	u8 interval; /* ms */
13568 };
13569 
13570 /**
13571  * @struct mac_fw_msg
13572  * @brief
13573  *
13574  * fw message encode/decode table
13575  *
13576  * @var mac_fw_msg::msgno
13577  * @var mac_fw_msg::msg
13578  */
13579 struct mac_fw_msg {
13580 	u32 msgno;
13581 	char *msg;
13582 };
13583 
13584 /**
13585  * @struct mac_ax_ss_link_info
13586  * @brief mac_ax_ss_link_info
13587  *
13588  * @var mac_ax_ss_link_info::wmm
13589  * Please Place Description here.
13590  * @var mac_ax_ss_link_info::ac
13591  * Please Place Description here.
13592  * @var mac_ax_ss_link_info::ul
13593  * Please Place Description here.
13594  * @var mac_ax_ss_link_info::link_list
13595  * Please Place Description here.
13596  * @var mac_ax_ss_link_info::link_head
13597  * Please Place Description here.
13598  * @var mac_ax_ss_link_info::link_tail
13599  * Please Place Description here.
13600  * @var mac_ax_ss_link_info::link_len
13601  * Please Place Description here.
13602  * @var mac_ax_ss_link_info::macid0
13603  * Please Place Description here.
13604  * @var mac_ax_ss_link_info::macid1
13605  * Please Place Description here.
13606  * @var mac_ax_ss_link_info::macid2
13607  * Please Place Description here.
13608  * @var mac_ax_ss_link_info::link_bitmap
13609  * Please Place Description here.
13610  */
13611 struct mac_ax_ss_link_info {
13612 	u8 wmm;
13613 	u8 ac;
13614 	u8 ul;
13615 	u8 link_list[SS_LINK_SIZE];
13616 	u8 link_head;
13617 	u8 link_tail;
13618 	u8 link_len;
13619 	u8 macid0;
13620 	u8 macid1;
13621 	u8 macid2;
13622 	u8 link_bitmap[SS_LINK_SIZE];
13623 };
13624 
13625 /**
13626  * @struct mac_ax_dbcc_pcie_ctrl
13627  * @brief mac_ax_dbcc_pcie_ctrl
13628  *
13629  * @var mac_ax_dbcc_pcie_ctrl::out_host_idx_l
13630  * Please Place Description here.
13631  * @var mac_ax_dbcc_pcie_ctrl::out_hw_idx_l
13632  * Please Place Description here.
13633  * @var mac_ax_dbcc_pcie_ctrl::clr_txch_map
13634  * Please Place Description here.
13635  */
13636 struct mac_ax_dbcc_pcie_ctrl {
13637 	u16 out_host_idx_l[MAC_AX_DMA_CH_NUM];
13638 	u16 out_hw_idx_l[MAC_AX_DMA_CH_NUM];
13639 	struct mac_ax_txdma_ch_map clr_txch_map;
13640 };
13641 
13642 /**
13643  * @struct mac_ax_dbcc_usb_ctrl
13644  * @brief mac_ax_dbcc_usb_ctrl
13645  *
13646  * @var mac_ax_dbcc_usb_ctrl::rsvd
13647  * Please Place Description here.
13648  */
13649 struct mac_ax_dbcc_usb_ctrl {
13650 	u32 rsvd;
13651 };
13652 
13653 /**
13654  * @struct mac_ax_dbcc_sdio_ctrl
13655  * @brief mac_ax_dbcc_sdio_ctrl
13656  *
13657  * @var mac_ax_dbcc_sdio_ctrl::rsvd
13658  * Please Place Description here.
13659  */
13660 struct mac_ax_dbcc_sdio_ctrl {
13661 	u32 rsvd;
13662 };
13663 
13664 /**
13665  * @struct mac_ax_dbcc_hci_ctrl
13666  * @brief mac_ax_dbcc_hci_ctrl
13667  *
13668  * @var mac_ax_dbcc_hci_ctrl::band
13669  * Please Place Description here.
13670  * @var mac_ax_dbcc_hci_ctrl::pause
13671  * Please Place Description here.
13672  * @var mac_ax_dbcc_hci_ctrl::u
13673  * Please Place Description here.
13674  */
13675 struct mac_ax_dbcc_hci_ctrl {
13676 	enum mac_ax_band band;
13677 	u8 pause;
13678 	union {
13679 		struct mac_ax_dbcc_pcie_ctrl pcie_ctrl;
13680 		struct mac_ax_dbcc_usb_ctrl usb_ctrl;
13681 		struct mac_ax_dbcc_sdio_ctrl sdio_ctrl;
13682 	} u;
13683 };
13684 
13685 /*------------------- Define FAST_CH_SW related structure ---------------------------*/
13686 
13687 /**
13688  * @struct mac_ax_fast_ch_sw_param
13689  * @brief
13690  *
13691  * FAST_CH_SW H2C params in driver
13692  *
13693  * @var mac_ax_fast_ch_sw_param::ap_port_id
13694  * ap port id
13695  * @var mac_ax_fast_ch_sw_param::ch_idx
13696  * mapped channel idx for restoring rf param
13697  * @var mac_ax_fast_ch_sw_param::thermal_idx
13698  * thermal idx for restoring rf param
13699  * @var mac_ax_fast_ch_sw_param::pause_rel_mode
13700  * pause and release mode
13701  * @var mac_ax_fast_ch_sw_param::con_sta_num
13702  * num of connected sta currently
13703  * @var mac_ax_fast_ch_sw_param::band
13704  * PHY band
13705  * @var mac_ax_fast_ch_sw_param::bandwidth
13706  * bw of 20/40/80
13707  * @var mac_ax_fast_ch_sw_param::pri_ch
13708  * pri channel of target channel
13709  * @var mac_ax_fast_ch_sw_param::central_ch
13710  * central channel of target channel
13711  * @var mac_ax_fast_ch_sw_param::rel_pause_tsfl
13712  * release pause tsfl
13713  * @var mac_ax_fast_ch_sw_param::rel_pause_tsfh
13714  * release pause tsfh
13715  * @var mac_ax_fast_ch_sw_param::rel_pause_delay_time
13716  * release pause delay time
13717  * @var mac_ax_fast_ch_sw_param::csa_pkt_id[MAC_AX_FAST_CH_SW_MAX_STA_NUM]
13718  * offloaded CSA packet id for at most 4 stas
13719  */
13720 struct mac_ax_fast_ch_sw_param {
13721 	/* dword0 */
13722 	u8 ap_port_id:4;
13723 	u8 ch_idx:4;
13724 	u8 thermal_idx:4;
13725 	u8 pause_rel_mode:4;
13726 	u8 con_sta_num;
13727 	u8 band:1;
13728 	u8 bandwidth:2;
13729 	u8 rsvd0:5;
13730 	/* dword1 */
13731 	u8 pri_ch;
13732 	u8 central_ch;
13733 	u16 rsvd1;
13734 	/* dword2 */
13735 	u32 rel_pause_tsfl;
13736 	/* dword3 */
13737 	u32 rel_pause_tsfh;
13738 	/* dword4 */
13739 	u32 rel_pause_delay_time;
13740 	/* dword5 */
13741 	u8 csa_pkt_id[MAC_AX_FAST_CH_SW_MAX_STA_NUM];
13742 };
13743 
13744 /**
13745  * @struct mac_ax_fast_ch_sw_info
13746  * @brief
13747  *
13748  * FAST_CH_SW status in driver
13749  *
13750  * @var mac_ax_fast_ch_sw_info::busy
13751  * FW handling or not
13752  * @var mac_ax_fast_ch_sw_info::status
13753  * Last status of FCS
13754  */
13755 struct mac_ax_fast_ch_sw_info{
13756 	bool busy;
13757 	u32 status;
13758 };
13759 
13760 /*------------------- END Define FAST_CH_SW related structure ---------------------------*/
13761 
13762 /*------------------- Define ch_switch related structure ---------------------------*/
13763 /**
13764  * @struct ch_switch_rpt
13765  * @brief ch_switch_rpt
13766  *
13767  * @var ch_switch_rpt::result
13768  * result
13769  * @var ch_switch_rpt::mac_time
13770  * mac_time
13771  * @var ch_switch_rpt::bb_time
13772  * bb_time
13773  * @var ch_switch_rpt::rf_time
13774  * rf_time
13775  * @var ch_switch_rpt::rf_reload_time
13776  * rf_reload_time
13777  * @var ch_switch_rpt::total_time
13778  * total_time
13779  */
13780 struct mac_ax_ch_switch_rpt {
13781 	u8 result;
13782 };
13783 
13784 /**
13785  * @struct ch_switch_parm
13786  * @brief ch_switch_parm
13787  *
13788  * @var ch_switch_parm::pri_ch
13789  * pri ch
13790  * @var ch_switch_parm::central_ch
13791  * central ch
13792  * @var ch_switch_parm::port
13793  * port
13794  * @var ch_switch_parm::bw
13795  * bw
13796  * @var ch_switch_parm::ch_band
13797  * ch_band
13798  * @var ch_switch_parm::band
13799  * band
13800  * @var ch_switch_parm::reload_rf
13801  * reload rf
13802  * @var ch_switch_parm::c2h_rpt
13803  * c2h report
13804  * @var ch_switch_parm::rsvd
13805  * rsvd
13806  */
13807 struct mac_ax_ch_switch_parm {
13808 	u8 pri_ch;
13809 	u8 central_ch;
13810 	u8 bw:3;
13811 	u8 ch_band:2;
13812 	u8 band:1;
13813 	u8 reload_rf:1;
13814 	u16 rsvd:9;
13815 };
13816 
13817 /*------------------- ENDDefine ch_switch related structure ---------------------------*/
13818 
13819 struct mac_ax_tf_user_sts {
13820 	u8 macid;
13821 	u8 tb_rate;
13822 	u8 tb_fail_per;
13823 	u8 avg_tb_rssi;
13824 	u8 cca_miss_per;
13825 	u8 avg_uph;
13826 	u8 minflag_per;
13827 	u8 avg_tb_evm;
13828 };
13829 
13830 struct mac_ax_tf_sts {
13831 	u8 user_num;
13832 	u8 ru_su_per;
13833 	u16 rsvd;
13834 	struct mac_ax_tf_user_sts tf_user_sts[UL_PER_STA_DBGINFO_NUM];
13835 };
13836 
13837 struct mac_ax_fwc2h_sts {
13838 	struct mac_ax_tf_sts tfsts;
13839 };
13840 
13841 struct mac_ax_fwsts_para {
13842 	u16 en:1;
13843 	u16 rsvd:15;
13844 	u16 intvl_ms;
13845 };
13846 
13847 /*--------------------Define power saving related struct -------------------------*/
13848 /**
13849  * @struct mac_ax_lps_info
13850  * @brief mac_ax_lps_info
13851  *
13852  * @var mac_ax_lps_info::listen_bcn_mode
13853  * Please Place Description here.
13854  * @var mac_ax_lps_info::awake_interval
13855  * Please Place Description here.
13856  * @var mac_ax_lps_info::smart_ps_mode
13857  * Please Place Description here.
13858  */
13859 struct mac_ax_lps_info {
13860 	enum mac_ax_listern_bcn_mode listen_bcn_mode;
13861 	u8 awake_interval;
13862 	enum mac_ax_smart_ps_mode smart_ps_mode;
13863 };
13864 
13865 /**
13866  * @struct mac_ax_ps_adv_parm
13867  * @brief mac_ax_ps_adv_parm
13868  *
13869  * @var mac_ax_ps_adv_parm::macid
13870  * Please Place Description here.
13871  * @var mac_ax_ps_adv_parm::TRXTimeOutTimeSet
13872  * Please Place Description here.
13873  * @var mac_ax_ps_adv_parm::rsvd0
13874  * Please Place Description here.
13875  * @var mac_ax_ps_adv_parm::TRXTimeOutTimeVal
13876  * Please Place Description here.
13877  * @var mac_ax_ps_adv_parm::rsvd1
13878  * Please Place Description here.
13879  */
13880 struct mac_ax_ps_adv_parm {
13881 	u32 macid:8;
13882 	u32 trxtimeouttimeset:2;
13883 	u32 rsvd0:22;
13884 	u32 trxtimeouttimeval:8;
13885 	u32 rsvd1:24;
13886 };
13887 
13888 /**
13889  * @struct mac_ax_bcn_fltr
13890  * @brief mac_ax_bcn_fltr
13891  *
13892  * @var mac_ax_bcn_fltr::mon_rssi
13893  * Please Place Description here.
13894  * @var mac_ax_bcn_fltr::mon_bcn
13895  * Please Place Description here.
13896  * @var mac_ax_bcn_fltr::mon_tp
13897  * Please Place Description here.
13898  * @var mac_ax_bcn_fltr::tp_thld
13899  * Please Place Description here.
13900  * @var mac_ax_bcn_fltr::bcn_loss_cnt
13901  * Please Place Description here.
13902  * @var mac_ax_bcn_fltr::rssi_hys
13903  * Please Place Description here.
13904  * @var mac_ax_bcn_fltr::rssi_thld
13905  * Please Place Description here.
13906  * @var mac_ax_bcn_fltr::macid
13907  * Please Place Description here.
13908  */
13909 struct mac_ax_bcn_fltr {
13910 	u32 mon_rssi: 1;
13911 	u32 mon_bcn: 1;
13912 	u32 mon_tp: 1;
13913 	u32 tp_thld: 2;
13914 	u32 rsvd0: 3;
13915 	u32 bcn_loss_cnt: 4;
13916 	u32 rssi_hys: 4;
13917 	u32 rssi_thld: 8;
13918 	u32 macid: 8;
13919 };
13920 
13921 /**
13922  * @struct mac_ax_bcn_fltr_rpt
13923  * @brief mac_ax_bcn_fltr_rpt
13924  *
13925  * @var mac_ax_bcn_fltr_rpt::macid
13926  * Please Place Description here.
13927  * @var mac_ax_bcn_fltr_rpt::type
13928  * Please Place Description here.
13929  * @var mac_ax_bcn_fltr_rpt::rssi_evt
13930  * Please Place Description here.
13931  * @var mac_ax_bcn_fltr_rpt::rssi_ma
13932  * Please Place Description here.
13933  */
13934 struct mac_ax_bcn_fltr_rpt {
13935 	u32 macid: 8;
13936 	u32 type: 2;
13937 	u32 rssi_evt: 2;
13938 	u32 rsvd0: 4;
13939 	u32 rssi_ma: 8;
13940 	u32 rsvd1: 8;
13941 };
13942 
13943 /*--------------------Define Adapter & OPs------------------------------------*/
13944 #ifndef CONFIG_NEW_HALMAC_INTERFACE
13945 
13946 /**
13947  * @struct mac_ax_pltfm_cb
13948  * @brief mac_ax_pltfm_cb
13949  *
13950  * @var mac_ax_pltfm_cb::sdio_cmd52_r8
13951  * Please Place Description here.
13952  * @var mac_ax_pltfm_cb::sdio_cmd53_r8
13953  * Please Place Description here.
13954  * @var mac_ax_pltfm_cb::sdio_cmd53_r16
13955  * Please Place Description here.
13956  * @var mac_ax_pltfm_cb::sdio_cmd53_r32
13957  * Please Place Description here.
13958  * @var mac_ax_pltfm_cb::sdio_cmd53_rn
13959  * Please Place Description here.
13960  * @var mac_ax_pltfm_cb::sdio_cmd52_w8
13961  * Please Place Description here.
13962  * @var mac_ax_pltfm_cb::sdio_cmd53_w8
13963  * Please Place Description here.
13964  * @var mac_ax_pltfm_cb::sdio_cmd53_w16
13965  * Please Place Description here.
13966  * @var mac_ax_pltfm_cb::sdio_cmd53_w32
13967  * Please Place Description here.
13968  * @var mac_ax_pltfm_cb::sdio_cmd53_wn
13969  * Please Place Description here.
13970  * @var mac_ax_pltfm_cb::sdio_cmd52_cia_r8
13971  * Please Place Description here.
13972  * @var mac_ax_pltfm_cb::reg_r8
13973  * Please Place Description here.
13974  * @var mac_ax_pltfm_cb::reg_r16
13975  * Please Place Description here.
13976  * @var mac_ax_pltfm_cb::reg_r32
13977  * Please Place Description here.
13978  * @var mac_ax_pltfm_cb::reg_w8
13979  * Please Place Description here.
13980  * @var mac_ax_pltfm_cb::reg_w16
13981  * Please Place Description here.
13982  * @var mac_ax_pltfm_cb::reg_w32
13983  * Please Place Description here.
13984  * @var mac_ax_pltfm_cb::tx
13985  * Please Place Description here.
13986  * @var mac_ax_pltfm_cb::rtl_query_h2c
13987  * Please Place Description here.
13988  * @var mac_ax_pltfm_cb::tx
13989  * Please Place Description here.
13990  * @var mac_ax_pltfm_cb::rtl_free
13991  * Please Place Description here.
13992  * @var mac_ax_pltfm_cb::rtl_malloc
13993  * Please Place Description here.
13994  * @var mac_ax_pltfm_cb::rtl_memcpy
13995  * Please Place Description here.
13996  * @var mac_ax_pltfm_cb::rtl_memset
13997  * Please Place Description here.
13998  * @var mac_ax_pltfm_cb::rtl_memcmp
13999  * Please Place Description here.
14000  * @var mac_ax_pltfm_cb::rtl_delay_us
14001  * Please Place Description here.
14002  * @var mac_ax_pltfm_cb::rtl_delay_ms
14003  * Please Place Description here.
14004  * @var mac_ax_pltfm_cb::rtl_mutex_init
14005  * Please Place Description here.
14006  * @var mac_ax_pltfm_cb::rtl_mutex_deinit
14007  * Please Place Description here.
14008  * @var mac_ax_pltfm_cb::rtl_mutex_lock
14009  * Please Place Description here.
14010  * @var mac_ax_pltfm_cb::rtl_mutex_unlock
14011  * Please Place Description here.
14012  * @var mac_ax_pltfm_cb::msg_print
14013  * Please Place Description here.
14014  * @var mac_ax_pltfm_cb::event_notify
14015  * Please Place Description here.
14016  */
14017 struct mac_ax_pltfm_cb {
14018 #if MAC_AX_SDIO_SUPPORT
14019 	u8 (*sdio_cmd52_r8)(void *drv_adapter, u32 addr);
14020 	u8 (*sdio_cmd53_r8)(void *drv_adapter, u32 addr);
14021 	u16 (*sdio_cmd53_r16)(void *drv_adapter, u32 addr);
14022 	u32 (*sdio_cmd53_r32)(void *drv_adapter, u32 addr);
14023 	u8 (*sdio_cmd53_rn)(void *drv_adapter, u32 addr, u32 size, u8 *val);
14024 	void (*sdio_cmd52_w8)(void *drv_adapter, u32 addr, u8 val);
14025 	void (*sdio_cmd53_w8)(void *drv_adapter, u32 addr, u8 val);
14026 	void (*sdio_cmd53_w16)(void *drv_adapter, u32 addr, u16 val);
14027 	void (*sdio_cmd53_w32)(void *drv_adapter, u32 addr, u32 val);
14028 	u8 (*sdio_cmd53_wn)(void *drv_adapter, u32 addr, u32 size, u8 *val);
14029 	u8 (*sdio_cmd52_cia_r8)(void *drv_adapter, u32 addr);
14030 #endif
14031 #if (MAC_AX_USB_SUPPORT || MAC_AX_PCIE_SUPPORT)
14032 	u8 (*reg_r8)(void *drv_adapter, u32 addr);
14033 	u16 (*reg_r16)(void *drv_adapter, u32 addr);
14034 	u32 (*reg_r32)(void *drv_adapter, u32 addr);
14035 	void (*reg_w8)(void *drv_adapter, u32 addr, u8 val);
14036 	void (*reg_w16)(void *drv_adapter, u32 addr, u16 val);
14037 	void (*reg_w32)(void *drv_adapter, u32 addr, u32 val);
14038 #endif
14039 #if MAC_AX_PHL_H2C
14040 	enum rtw_hal_status (*tx)(struct rtw_phl_com_t *phl_com,
14041 				  struct rtw_hal_com_t *hal_com,
14042 				  struct rtw_h2c_pkt *pkt);
14043 	struct rtw_h2c_pkt *(*rtl_query_h2c)(struct rtw_phl_com_t *phl_com,
14044 					     struct rtw_hal_com_t *hal_com,
14045 					     enum h2c_buf_class  type);
14046 	enum rtw_hal_status (*rtl_recycle_h2c)(struct rtw_phl_com_t *phl_com,
14047 					       struct rtw_h2c_pkt *h2c_pkt);
14048 #else
14049 	u32 (*tx)(void *drv_adapter, u8 *buf, u32 len);
14050 #endif
14051 	void (*rtl_free)(void *drv_adapter, void *buf, u32 size);
14052 	void* (*rtl_malloc)(void *drv_adapter, u32 size);
14053 	void (*rtl_memcpy)(void *drv_adapter, void *dest, void *src, u32 size);
14054 	void (*rtl_memset)(void *drv_adapter, void *addr, u8 val, u32 size);
14055 	s32 (*rtl_memcmp)(void *drv_adapter, void *ptr1, void *ptr2, u32 num);
14056 	void (*rtl_delay_us)(void *drv_adapter, u32 us);
14057 	void (*rtl_delay_ms)(void *drv_adapter, u32 ms);
14058 
14059 	void (*rtl_mutex_init)(void *drv_adapter, mac_ax_mutex *mutex);
14060 	void (*rtl_mutex_deinit)(void *drv_adapter, mac_ax_mutex *mutex);
14061 	void (*rtl_mutex_lock)(void *drv_adapter, mac_ax_mutex *mutex);
14062 	void (*rtl_mutex_unlock)(void *drv_adapter, mac_ax_mutex *mutex);
14063 	void (*msg_print)(void *drv_adapter, u8 dbg_level, s8 *fmt, ...);
14064 	void (*event_notify)(void *drv_adapter,
14065 			     enum mac_ax_feature mac_ft,
14066 			     enum mac_ax_status stat, u8 *buf, u32 size);
14067 #if MAC_AX_FEATURE_DBGCMD
14068 	s32 (*rtl_sprintf)(void *drv_adapter, char *buf, size_t size, const char *fmt, ...);
14069 	s32 (*rtl_strcmp)(void *drv_adapter, const char *s1, const char *s2);
14070 	char* (*rtl_strsep)(void *drv_adapter, char **s, const char *ct);
14071 	u32 (*rtl_strlen)(void *drv_adapter, char *buf);
14072 	char* (*rtl_strcpy)(void *drv_adapter, char *dest, const char *src);
14073 	char* (*rtl_strpbrk)(void *drv_adapter, const char *cs, const char *ct);
14074 	u32 (*rtl_strtoul)(void *drv_adapter, const char *buf, u32 base);
14075 #endif
14076 	void (*ser_l2_notify)(void *phl_com,
14077 			      void *hal_com);
14078 
14079 	u8 (*ld_fw_symbol)(void *phl_adapter, void *drv_adapter,
14080 			   const char *name, u8 **buf, u32 *buf_size);
14081 };
14082 #endif/*CONFIG_NEW_HALMAC_INTERFACE*/
14083 
14084 /**
14085  * @struct mac_ax_adapter
14086  * @brief mac_ax_adapter
14087  *
14088  * @var mac_ax_adapter::ops
14089  * Please Place Description here.
14090  * @var mac_ax_adapter::drv_adapter
14091  * Please Place Description here.
14092  * @var mac_ax_adapter::phl_adapter
14093  * Please Place Description here.
14094  * @var mac_ax_adapter::pltfm_cb
14095  * Please Place Description here.
14096  * @var mac_ax_adapter::sm
14097  * Please Place Description here.
14098  * @var mac_ax_adapter::hw_info
14099  * Please Place Description here.
14100  * @var mac_ax_adapter::fw_info
14101  * Please Place Description here.
14102  * @var mac_ax_adapter::efuse_param
14103  * Please Place Description here.
14104  * @var mac_ax_adapter::mac_pwr_info
14105  * Please Place Description here.
14106  * @var mac_ax_adapter::ft_stat
14107  * Please Place Description here.
14108  * @var mac_ax_adapter::hfc_param
14109  * Please Place Description here.
14110  * @var mac_ax_adapter::dle_info
14111  * Please Place Description here.
14112  * @var mac_ax_adapter::gpio_info
14113  * Please Place Description here.
14114  * @var mac_ax_adapter::role_tbl
14115  * Please Place Description here.
14116  * @var mac_ax_adapter::read_ofld_info
14117  * Please Place Description here.
14118  * @var mac_ax_adapter::read_ofld_value
14119  * Please Place Description here.
14120  * @var mac_ax_adapter::write_ofld_info
14121  * Please Place Description here.
14122  * @var mac_ax_adapter::efuse_ofld_info
14123  * Please Place Description here.
14124  * @var mac_ax_adapter::conf_ofld_info
14125  * Please Place Description here.
14126  * @var mac_ax_adapter::pkt_ofld_info
14127  * Please Place Description here.
14128  * @var mac_ax_adapter::pkt_ofld_pkt
14129  * Please Place Description here.
14130  * @var mac_ax_adapter::mcc_group_info
14131  * Please Place Description here.
14132  * @var mac_ax_adapter::wowlan_info
14133  * Please Place Description here.
14134  * @var mac_ax_adapter::sdio_info
14135  * Please Place Description here.
14136  * @var mac_ax_adapter::usb_info
14137  * Please Place Description here.
14138  * @var mac_ax_adapter::hv_ops
14139  * Please Place Description here.
14140  */
14141 struct mac_ax_adapter {
14142 	struct mac_ax_ops *ops;
14143 	void *drv_adapter; //hal_com adapter
14144 	void *phl_adapter; //phl_com adapter
14145 	struct mac_ax_pltfm_cb *pltfm_cb;
14146 	struct mac_ax_state_mach sm;
14147 	struct mac_ax_hw_info *hw_info;
14148 	struct mac_ax_fw_info fw_info;
14149 	struct mac_ax_efuse_param efuse_param;
14150 	struct mac_ax_mac_pwr_info mac_pwr_info;
14151 	struct mac_ax_ft_status *ft_stat;
14152 	struct mac_ax_hfc_param *hfc_param;
14153 	struct mac_ax_dle_info dle_info;
14154 	struct mac_ax_gpio_info gpio_info;
14155 	struct mac_role_tbl_head *role_tbl;
14156 	struct mac_ax_read_ofld_info read_ofld_info;
14157 	struct mac_ax_read_ofld_value read_ofld_value;
14158 	struct mac_ax_write_ofld_info write_ofld_info;
14159 	struct mac_ax_efuse_ofld_info efuse_ofld_info;
14160 	struct mac_ax_conf_ofld_info conf_ofld_info;
14161 	struct mac_ax_pkt_ofld_info pkt_ofld_info;
14162 	struct mac_ax_pkt_ofld_pkt pkt_ofld_pkt;
14163 	struct mac_ax_cmd_ofld_info cmd_ofld_info;
14164 	struct mac_ax_mcc_group_info mcc_group_info;
14165 	struct mac_ax_wowlan_info wowlan_info;
14166 	struct mac_ax_p2p_info *p2p_info;
14167 	struct mac_ax_t32_togl_rpt *t32_togl_rpt;
14168 	struct mac_ax_port_info *port_info;
14169 	struct mac_ax_int_stats stats;
14170 	struct mac_ax_drv_stats drv_stats;
14171 	struct mac_ax_h2c_agg_info h2c_agg_info;
14172 #if MAC_AX_SDIO_SUPPORT
14173 	struct mac_ax_sdio_info sdio_info;
14174 #endif
14175 #if MAC_AX_USB_SUPPORT
14176 	struct mac_ax_usb_info usb_info;
14177 #endif
14178 #if MAC_AX_PCIE_SUPPORT
14179 	struct mac_ax_pcie_info pcie_info;
14180 #endif
14181 	struct mac_ax_flash_info flash_info;
14182 	struct mac_ax_fast_ch_sw_info fast_ch_sw_info;
14183 #if MAC_AX_FEATURE_HV
14184 	struct hv_ax_ops *hv_ops;
14185 	u8 env;
14186 #endif
14187 #if MAC_AX_FEATURE_DBGCMD
14188 	struct mac_ax_fw_dbgcmd fw_dbgcmd;
14189 #endif
14190 #if MAC_AX_FEATURE_DBGDEC
14191 	struct mac_fw_msg *fw_log_array;
14192 	struct mac_fw_msg *fw_log_array_dl;
14193 	u32 fw_log_array_dl_size;
14194 #endif
14195 	struct mac_ax_fw_log log_cfg;
14196 	struct mac_ax_scanofld_info scanofld_info;
14197 	struct mac_ax_ch_switch_rpt *ch_switch_rpt;
14198 	struct mac_ax_dbcc_info *dbcc_info;
14199 };
14200 
14201 /**
14202  * mac_ax_intf_ops - interface related callbacks
14203  * @reg_read8:
14204  * @reg_write8:
14205  * @reg_read16:
14206  * @reg_write16:
14207  * @reg_read32:
14208  * @reg_write32:
14209  * @tx_allow_sdio:
14210  * @tx_cmd_addr_sdio:
14211  * @init_intf:
14212  * @reg_read_n_sdio:
14213  * @get_bulkout_id:
14214  */
14215 
14216 /**
14217  * @struct mac_ax_intf_ops
14218  * @brief mac_ax_intf_ops
14219  *
14220  * @var mac_ax_intf_ops::reg_read8
14221  * Please Place Description here.
14222  * @var mac_ax_intf_ops::reg_write8
14223  * Please Place Description here.
14224  * @var mac_ax_intf_ops::reg_read16
14225  * Please Place Description here.
14226  * @var mac_ax_intf_ops::reg_write16
14227  * Please Place Description here.
14228  * @var mac_ax_intf_ops::reg_read32
14229  * Please Place Description here.
14230  * @var mac_ax_intf_ops::reg_write32
14231  * Please Place Description here.
14232  * @var mac_ax_intf_ops::tx_allow_sdio
14233  * Please Place Description here.
14234  * @var mac_ax_intf_ops::tx_cmd_addr_sdio
14235  * Please Place Description here.
14236  * @var mac_ax_intf_ops::intf_pre_init
14237  * Please Place Description here.
14238  * @var mac_ax_intf_ops::intf_init
14239  * Please Place Description here.
14240  * @var mac_ax_intf_ops::intf_deinit
14241  * Please Place Description here.
14242  * @var mac_ax_intf_ops::reg_read_n_sdio
14243  * Please Place Description here.
14244  * @var mac_ax_intf_ops::get_bulkout_id
14245  * Please Place Description here.
14246  * @var mac_ax_intf_ops::ltr_set_pcie
14247  * Please Place Description here.
14248  * @var mac_ax_intf_ops::u2u3_switch
14249  * Please Place Description here.
14250  * @var mac_ax_intf_ops::get_usb_mode
14251  * Please Place Description here.
14252  * @var mac_ax_intf_ops::get_usb_support_ability
14253  * Please Place Description here.
14254  * @var mac_ax_intf_ops::usb_tx_agg_cfg
14255  * Please Place Description here.
14256  * @var mac_ax_intf_ops::usb_rx_agg_cfg
14257  * Please Place Description here.
14258  * @var mac_ax_intf_ops::set_wowlan
14259  * Please Place Description here.
14260  */
14261 struct mac_ax_intf_ops {
14262 	u8 (*reg_read8)(struct mac_ax_adapter *adapter, u32 addr);
14263 	void (*reg_write8)(struct mac_ax_adapter *adapter, u32 addr, u8 val);
14264 	u16 (*reg_read16)(struct mac_ax_adapter *adapter, u32 addr);
14265 	void (*reg_write16)(struct mac_ax_adapter *adapter, u32 addr, u16 val);
14266 	u32 (*reg_read32)(struct mac_ax_adapter *adapter, u32 addr);
14267 	void (*reg_write32)(struct mac_ax_adapter *adapter, u32 addr, u32 val);
14268 	/**
14269 	 * @tx_allow_sdio
14270 	 * Only support SDIO interface. Using this API in other interface
14271 	 * may cause system crash or segmentation fault.
14272 	 */
14273 	u32 (*tx_allow_sdio)(struct mac_ax_adapter *adapter,
14274 			     struct mac_ax_sdio_tx_info *info);
14275 	/**
14276 	 * @tx_cmd_addr_sdio
14277 	 * Only support SDIO interface. Using this API in other interface
14278 	 * may cause system crash or segmentation fault.
14279 	 */
14280 	u32 (*tx_cmd_addr_sdio)(struct mac_ax_adapter *adapter,
14281 				struct mac_ax_sdio_tx_info *info,
14282 				u32 *cmd_addr);
14283 	u32 (*intf_pre_init)(struct mac_ax_adapter *adapter, void *param);
14284 	u32 (*intf_init)(struct mac_ax_adapter *adapter, void *param);
14285 	u32 (*intf_deinit)(struct mac_ax_adapter *adapter, void *param);
14286 	/**
14287 	 * @reg_read_n_sdio
14288 	 * Only support SDIO interface. Using this API in other interface
14289 	 * may cause system crash or segmentation fault.
14290 	 */
14291 	u32 (*reg_read_n_sdio)(struct mac_ax_adapter *adapter, u32 addr,
14292 			       u32 size, u8 *val);
14293 	/**
14294 	 * @get_bulkout_id
14295 	 * Only support USB interface. Using this API in other interface
14296 	 * may cause system crash or segmentation fault.
14297 	 */
14298 	u8 (*get_bulkout_id)(struct mac_ax_adapter *adapter, u8 ch_dma,
14299 			     u8 mode);
14300 	/**
14301 	 * @ltr_set_pcie
14302 	 * Only support PCIe interface. Using this API in other interface
14303 	 * may cause system crash or segmentation fault.
14304 	 */
14305 	u32 (*ltr_set_pcie)(struct mac_ax_adapter *adapter,
14306 			    struct mac_ax_pcie_ltr_param *param);
14307 	/**
14308 	 * @u2u3_switch
14309 	 * Only support USB interface. Using this API in other interface
14310 	 * may cause system crash or segmentation fault.
14311 	 */
14312 	u32 (*u2u3_switch)(struct mac_ax_adapter *adapter);
14313 	/**
14314 	 * @get_usb_mode
14315 	 * Only support USB interface. Using this API in other interface
14316 	 * may cause system crash or segmentation fault.
14317 	 */
14318 	u32 (*get_usb_mode)(struct mac_ax_adapter *adapter);
14319 	/**
14320 	 * @get_usb_support_ability
14321 	 * Only support USB interface. Using this API in other interface
14322 	 * may cause system crash or segmentation fault.
14323 	 */
14324 	u32 (*get_usb_support_ability)(struct mac_ax_adapter *adapter);
14325 	/**
14326 	 * @usb_tx_agg_cfg
14327 	 * Only support USB interface. Using this API in other interface
14328 	 * may cause system crash or segmentation fault.
14329 	 */
14330 	u32 (*usb_tx_agg_cfg)(struct mac_ax_adapter *adapter,
14331 			      struct mac_ax_usb_tx_agg_cfg *agg);
14332 	/**
14333 	 * @usb_rx_agg_cfg
14334 	 * Only support USB interface. Using this API in other interface
14335 	 * may cause system crash or segmentation fault.
14336 	 */
14337 	u32 (*usb_rx_agg_cfg)(struct mac_ax_adapter *adapter,
14338 			      struct mac_ax_rx_agg_cfg *cfg);
14339 
14340 	u32 (*set_wowlan)(struct mac_ax_adapter *adapter,
14341 			  enum mac_ax_wow_ctrl w_c);
14342 	/**
14343 	 * @ctrl_txdma_ch
14344 	 * Only support PCIE interface. Using this API in other interface
14345 	 * may cause system crash or segmentation fault.
14346 	 */
14347 	u32 (*ctrl_txdma_ch)(struct mac_ax_adapter *adapter,
14348 			     struct mac_ax_txdma_ch_map *ch_map);
14349 	/**
14350 	 * @clr_idx_all
14351 	 * Only support PCIE interface. Using this API in other interface
14352 	 * may cause system crash or segmentation fault.
14353 	 */
14354 	u32 (*clr_idx_all)(struct mac_ax_adapter *adapter);
14355 	/**
14356 	 * @poll_txdma_ch_idle
14357 	 * Only support PCIE interface. Using this API in other interface
14358 	 * may cause system crash or segmentation fault.
14359 	 */
14360 	u32 (*poll_txdma_ch_idle)(struct mac_ax_adapter *adapter,
14361 				  struct mac_ax_txdma_ch_map *ch_map);
14362 	/**
14363 	 * @poll_rxdma_ch_idle
14364 	 * Only support PCIE interface. Using this API in other interface
14365 	 * may cause system crash or segmentation fault.
14366 	 */
14367 	u32 (*poll_rxdma_ch_idle)(struct mac_ax_adapter *adapter,
14368 				  struct mac_ax_rxdma_ch_map *ch_map);
14369 	/**
14370 	 * @ctrl_txhci
14371 	 * Only support PCIE interface. Using this API in other interface
14372 	 * may cause system crash or segmentation fault.
14373 	 */
14374 	u32 (*ctrl_txhci)(struct mac_ax_adapter *adapter,
14375 			  enum mac_ax_func_sw en);
14376 	/**
14377 	 * @ctrl_rxhci
14378 	 * Only support PCIE interface. Using this API in other interface
14379 	 * may cause system crash or segmentation fault.
14380 	 */
14381 	u32 (*ctrl_rxhci)(struct mac_ax_adapter *adapter,
14382 			  enum mac_ax_func_sw en);
14383 	/**
14384 	 * @ctrl_dma_io
14385 	 * Only support PCIE interface. Using this API in other interface
14386 	 * may cause system crash or segmentation fault.
14387 	 */
14388 	u32 (*ctrl_dma_io)(struct mac_ax_adapter *adapter,
14389 			   enum mac_ax_func_sw en);
14390 	/**
14391 	 * @get_io_stat
14392 	 * Only support PCIE interface. Using this API in other interface
14393 	 * may cause system crash or segmentation fault.
14394 	 */
14395 	u32 (*get_io_stat)(struct mac_ax_adapter *adapter,
14396 			   struct mac_ax_io_stat *out_st);
14397 	/**
14398 	 * @get_txagg_num
14399 	 */
14400 	u32 (*get_txagg_num)(struct mac_ax_adapter *adapter,
14401 			     u8 band);
14402 	/**
14403 	 * @get_rx_state
14404 	 * Only support USB interface. Using this API in other interface
14405 	 * may cause system crash or segmentation fault.
14406 	 */
14407 	u32 (*get_rx_state)(struct mac_ax_adapter *adapter, u32 *val);
14408 
14409 	/**
14410 	 * @pcie_autok_counter_avg
14411 	 * Only support PCIE interface. Using this API in other interface
14412 	 * may cause system crash or segmentation fault.
14413 	 */
14414 	u32 (*pcie_autok_counter_avg)(struct mac_ax_adapter *adapter);
14415 	/**
14416 	 * @dbcc_hci_pause
14417 	 * Support all interface.
14418 	 */
14419 	u32 (*dbcc_hci_ctrl)(struct mac_ax_adapter *adapter,
14420 			     struct mac_ax_dbcc_hci_ctrl *info);
14421 };
14422 
14423 /**
14424  * struct mac_ax_ops - callbacks for mac control
14425  * All callbacks can be used after initializing mac_ax_ops by mac_ax_ops_init.
14426  * @intf_ops: interface related callbacks, refer struct mac_ax_intf_ops to get
14427  *	more deatails.
14428  * @get_hw_info: get mac hardware information
14429  * @mac_txdesc_len:
14430  * @build_mac_txdesc:
14431  */
14432 
14433 /**
14434  * @struct mac_ax_ops
14435  * @brief mac_ax_ops
14436  *
14437  * @var mac_ax_ops::intf_ops
14438  * Please Place Description here.
14439  * @var mac_ax_ops::hal_init
14440  * Please Place Description here.
14441  * @var mac_ax_ops::hal_fast_init
14442  * Please Place Description here.
14443  * @var mac_ax_ops::hal_deinit
14444  * Please Place Description here.
14445  * @var mac_ax_ops::hal_fast_deinit
14446  * Please Place Description here.
14447  * @var mac_ax_ops::add_role
14448  * Please Place Description here.
14449  * @var mac_ax_ops::remove_role
14450  * Please Place Description here.
14451  * @var mac_ax_ops::change_role
14452  * Please Place Description here.
14453  * @var mac_ax_ops::pwr_switch
14454  * Please Place Description here.
14455  * @var mac_ax_ops::sys_init
14456  * Please Place Description here.
14457  * @var mac_ax_ops::trx_init
14458  * Please Place Description here.
14459  * @var mac_ax_ops::romdl
14460  * Please Place Description here.
14461  * @var mac_ax_ops::enable_cpu
14462  * Please Place Description here.
14463  * @var mac_ax_ops::disable_cpu
14464  * Please Place Description here.
14465  * @var mac_ax_ops::fwredl
14466  * Please Place Description here.
14467  * @var mac_ax_ops::fwdl
14468  * Please Place Description here.
14469  * @var mac_ax_ops::enable_fw
14470  * Please Place Description here.
14471  * @var mac_ax_ops::lv1_rcvy
14472  * Please Place Description here.
14473  * @var mac_ax_ops::get_macaddr
14474  * Please Place Description here.
14475  * @var mac_ax_ops::build_txdesc
14476  * Please Place Description here.
14477  * @var mac_ax_ops::refill_txdesc
14478  * Please Place Description here.
14479  * @var mac_ax_ops::parse_rxdesc
14480  * Please Place Description here.
14481  * @var mac_ax_ops::reset_fwofld_state
14482  * Please Place Description here.
14483  * @var mac_ax_ops::check_fwofld_done
14484  * Please Place Description here.
14485  * @var mac_ax_ops::read_pkt_ofld
14486  * Please Place Description here.
14487  * @var mac_ax_ops::del_pkt_ofld
14488  * Please Place Description here.
14489  * @var mac_ax_ops::add_pkt_ofld
14490  * Please Place Description here.
14491  * @var mac_ax_ops::pkt_ofld_packet
14492  * Please Place Description here.
14493  * @var mac_ax_ops::dump_efuse_ofld
14494  * Please Place Description here.
14495  * @var mac_ax_ops::efuse_ofld_map
14496  * Please Place Description here.
14497  * @var mac_ax_ops::upd_dctl_info
14498  * Please Place Description here.
14499  * @var mac_ax_ops::upd_cctl_info
14500  * Please Place Description here.
14501  * @var mac_ax_ops::ie_cam_upd
14502  * Please Place Description here.
14503  * @var mac_ax_ops::twt_info_upd_h2c
14504  * Please Place Description here.
14505  * @var mac_ax_ops::twt_act_h2c
14506  * Please Place Description here.
14507  * @var mac_ax_ops::twt_anno_h2c
14508  * Please Place Description here.
14509  * @var mac_ax_ops::twt_wait_anno
14510  * Please Place Description here.
14511  * @var mac_ax_ops::mac_host_getpkt_h2c
14512  * Please Place Description here.
14513  * @var mac_ax_ops::p2p_act_h2c
14514  * Please Place Description here.
14515  * @var mac_ax_ops::sta_add_key
14516  * Please Place Description here.
14517  * @var mac_ax_ops::sta_del_key
14518  * Please Place Description here.
14519  * @var mac_ax_ops::sta_search_key_idx
14520  * Please Place Description here.
14521  * @var mac_ax_ops::sta_hw_security_support
14522  * Please Place Description here.
14523  * @var mac_ax_ops::set_mu_table
14524  * Please Place Description here.
14525  * @var mac_ax_ops::ss_dl_grp_upd
14526  * Please Place Description here.
14527  * @var mac_ax_ops::ss_ul_grp_upd
14528  * Please Place Description here.
14529  * @var mac_ax_ops::ss_ul_sta_upd
14530  * Please Place Description here.
14531  * @var mac_ax_ops::bacam_info
14532  * Please Place Description here.
14533  * @var mac_ax_ops::txdesc_len
14534  * Please Place Description here.
14535  * @var mac_ax_ops::upd_shcut_mhdr
14536  * Please Place Description here.
14537  * @var mac_ax_ops::enable_hwmasdu
14538  * Please Place Description here.
14539  * @var mac_ax_ops::enable_cut_hwamsdu
14540  * Please Place Description here.
14541  * @var mac_ax_ops::hdr_conv
14542  * Please Place Description here.
14543  * @var mac_ax_ops::set_hwseq_reg
14544  * Please Place Description here.
14545  * @var mac_ax_ops::process_c2h
14546  * Please Place Description here.
14547  * @var mac_ax_ops::parse_dfs
14548  * Please Place Description here.
14549  * @var mac_ax_ops::parse_ppdu
14550  * Please Place Description here.
14551  * @var mac_ax_ops::cfg_phy_rpt
14552  * Please Place Description here.
14553  * @var mac_ax_ops::set_rx_forwarding
14554  * Please Place Description here.
14555  * @var mac_ax_ops::get_rx_fltr_opt
14556  * Please Place Description here.
14557  * @var mac_ax_ops::set_rx_fltr_opt
14558  * Please Place Description here.
14559  * @var mac_ax_ops::set_rx_fltr_typ_opt
14560  * Please Place Description here.
14561  * @var mac_ax_ops::set_rx_fltr_typstyp_opt
14562  * Please Place Description here.
14563  * @var mac_ax_ops::sr_update
14564  * Please Place Description here.
14565  * @var mac_ax_ops::two_nav_cfg
14566  * Please Place Description here.
14567  * @var mac_ax_ops::pkt_drop
14568  * Please Place Description here.
14569  * @var mac_ax_ops::send_bcn_h2c
14570  * Please Place Description here.
14571  * @var mac_ax_ops::tx_mode_sel
14572  * Please Place Description here.
14573  * @var mac_ax_ops::tcpip_chksum_ofd
14574  * Please Place Description here.
14575  * @var mac_ax_ops::chk_rx_tcpip_chksum_ofd
14576  * Please Place Description here.
14577  * @var mac_ax_ops::chk_allq_empty
14578  * Please Place Description here.
14579  * @var mac_ax_ops::is_txq_empty
14580  * Please Place Description here.
14581  * @var mac_ax_ops::is_rxq_empty
14582  * Please Place Description here.
14583  * @var mac_ax_ops::parse_bcn_stats_c2h
14584  * Please Place Description here.
14585  * @var mac_ax_ops::upd_mudecision_para
14586  * Please Place Description here.
14587  * @var mac_ax_ops::mu_sta_upd
14588  * Please Place Description here.
14589  * @var mac_ax_ops::upd_ul_fixinfo
14590  * Please Place Description here.
14591  * @var mac_ax_ops::f2p_test_cmd
14592  * Please Place Description here.
14593  * @var mac_ax_ops::snd_test_cmd
14594  * Please Place Description here.
14595  * @var mac_ax_ops::set_fw_fixmode
14596  * Please Place Description here.
14597  * @var mac_ax_ops::mac_dumpwlanc
14598  * Please Place Description here.
14599  * @var mac_ax_ops::mac_dumpwlans
14600  * Please Place Description here.
14601  * @var mac_ax_ops::mac_dumpwland
14602  * Please Place Description here.
14603  * @var mac_ax_ops::outsrc_h2c_common
14604  * Please Place Description here.
14605  * @var mac_ax_ops::read_pwr_reg
14606  * Please Place Description here.
14607  * @var mac_ax_ops::write_pwr_reg
14608  * Please Place Description here.
14609  * @var mac_ax_ops::write_msk_pwr_reg
14610  * Please Place Description here.
14611  * @var mac_ax_ops::write_pwr_ofst_mode
14612  * Please Place Description here.
14613  * @var mac_ax_ops::write_pwr_ofst_bw
14614  * Please Place Description here.
14615  * @var mac_ax_ops::write_pwr_ref_reg
14616  * Please Place Description here.
14617  * @var mac_ax_ops::write_pwr_limit_en
14618  * Please Place Description here.
14619  * @var mac_ax_ops::write_pwr_limit_rua_reg
14620  * Please Place Description here.
14621  * @var mac_ax_ops::write_pwr_limit_reg
14622  * Please Place Description here.
14623  * @var mac_ax_ops::write_pwr_by_rate_reg
14624  * Please Place Description here.
14625  * @var mac_ax_ops::lamode_cfg
14626  * Please Place Description here.
14627  * @var mac_ax_ops::lamode_trigger
14628  * Please Place Description here.
14629  * @var mac_ax_ops::lamode_buf_cfg
14630  * Please Place Description here.
14631  * @var mac_ax_ops::get_lamode_st
14632  * Please Place Description here.
14633  * @var mac_ax_ops::read_xcap_reg
14634  * Please Place Description here.
14635  * @var mac_ax_ops::write_xcap_reg
14636  * Please Place Description here.
14637  * @var mac_ax_ops::write_bbrst_reg
14638  * Please Place Description here.
14639  * @var mac_ax_ops::get_csi_buffer_index
14640  * Please Place Description here.
14641  * @var mac_ax_ops::set_csi_buffer_index
14642  * Please Place Description here.
14643  * @var mac_ax_ops::get_snd_sts_index
14644  * Please Place Description here.
14645  * @var mac_ax_ops::set_snd_sts_index
14646  * Please Place Description here.
14647  * @var mac_ax_ops::init_snd_mer
14648  * Please Place Description here.
14649  * @var mac_ax_ops::init_snd_mee
14650  * Please Place Description here.
14651  * @var mac_ax_ops::csi_force_rate
14652  * Please Place Description here.
14653  * @var mac_ax_ops::csi_rrsc
14654  * Please Place Description here.
14655  * @var mac_ax_ops::set_snd_para
14656  * Please Place Description here.
14657  * @var mac_ax_ops::set_csi_para_reg
14658  * Please Place Description here.
14659  * @var mac_ax_ops::set_csi_para_cctl
14660  * Please Place Description here.
14661  * @var mac_ax_ops::hw_snd_pause_release
14662  * Please Place Description here.
14663  * @var mac_ax_ops::bypass_snd_sts
14664  * Please Place Description here.
14665  * @var mac_ax_ops::deinit_mee
14666  * Please Place Description here.
14667  * @var mac_ax_ops::cfg_lps
14668  * Please Place Description here.
14669  * @var mac_ax_ops::ps_pwr_state
14670  * Please Place Description here.
14671  * @var mac_ax_ops::chk_leave_lps
14672  * Please Place Description here.
14673  * @var mac_ax_ops::cfg_ips
14674  * Please Place Description here.
14675  * @var mac_ax_ops::chk_leave_ips
14676  * Please Place Description here.
14677  * @var mac_ax_ops::lps_chk_access
14678  * Please Place Description here.
14679  * @var mac_ax_ops::cfg_wow_wake
14680  * Please Place Description here.
14681  * @var mac_ax_ops::cfg_disconnect_det
14682  * Please Place Description here.
14683  * @var mac_ax_ops::cfg_keepalive
14684  * Please Place Description here.
14685  * @var mac_ax_ops::cfg_gtk_ofld
14686  * Please Place Description here.
14687  * @var mac_ax_ops::cfg_arp_ofld
14688  * Please Place Description here.
14689  * @var mac_ax_ops::cfg_ndp_ofld
14690  * Please Place Description here.
14691  * @var mac_ax_ops::cfg_realwow
14692  * Please Place Description here.
14693  * @var mac_ax_ops::cfg_nlo
14694  * Please Place Description here.
14695  * @var mac_ax_ops::cfg_dev2hst_gpio
14696  * Please Place Description here.
14697  * @var mac_ax_ops::cfg_uphy_ctrl
14698  * Please Place Description here.
14699  * @var mac_ax_ops::cfg_wowcam_upd
14700  * Please Place Description here.
14701  * @var mac_ax_ops::cfg_wow_sleep
14702  * Please Place Description here.
14703  * @var mac_ax_ops::get_wow_fw_status
14704  * Please Place Description here.
14705  * @var mac_ax_ops::request_aoac_report
14706  * Please Place Description here.
14707  * @var mac_ax_ops::read_aoac_report
14708  * Please Place Description here.
14709  * @var mac_ax_ops::check_aoac_report_done
14710  * Please Place Description here.
14711  * @var mac_ax_ops::dbcc_enable
14712  * Please Place Description here.
14713  * @var mac_ax_ops::port_cfg
14714  * Please Place Description here.
14715  * @var mac_ax_ops::port_init
14716  * Please Place Description here.
14717  * @var mac_ax_ops::enable_imr
14718  * Please Place Description here.
14719  * @var mac_ax_ops::dump_efuse_map_wl
14720  * Please Place Description here.
14721  * @var mac_ax_ops::dump_efuse_map_bt
14722  * Please Place Description here.
14723  * @var mac_ax_ops::write_efuse
14724  * Please Place Description here.
14725  * @var mac_ax_ops::read_efuse
14726  * Please Place Description here.
14727  * @var mac_ax_ops::get_efuse_avl_size
14728  * Please Place Description here.
14729  * @var mac_ax_ops::get_efuse_avl_size_bt
14730  * Please Place Description here.
14731  * @var mac_ax_ops::dump_log_efuse
14732  * Please Place Description here.
14733  * @var mac_ax_ops::read_log_efuse
14734  * Please Place Description here.
14735  * @var mac_ax_ops::write_log_efuse
14736  * Please Place Description here.
14737  * @var mac_ax_ops::dump_log_efuse_bt
14738  * Please Place Description here.
14739  * @var mac_ax_ops::read_log_efuse_bt
14740  * Please Place Description here.
14741  * @var mac_ax_ops::write_log_efuse_bt
14742  * Please Place Description here.
14743  * @var mac_ax_ops::pg_efuse_by_map
14744  * Please Place Description here.
14745  * @var mac_ax_ops::pg_efuse_by_map_bt
14746  * Please Place Description here.
14747  * @var mac_ax_ops::mask_log_efuse
14748  * Please Place Description here.
14749  * @var mac_ax_ops::pg_sec_data_by_map
14750  * Please Place Description here.
14751  * @var mac_ax_ops::cmp_sec_data_by_map
14752  * Please Place Description here.
14753  * @var mac_ax_ops::get_efuse_info
14754  * Please Place Description here.
14755  * @var mac_ax_ops::set_efuse_info
14756  * Please Place Description here.
14757  * @var mac_ax_ops::read_hidden_rpt
14758  * Please Place Description here.
14759  * @var mac_ax_ops::check_efuse_autoload
14760  * Please Place Description here.
14761  * @var mac_ax_ops::pg_simulator
14762  * Please Place Description here.
14763  * @var mac_ax_ops::checksum_update
14764  * Please Place Description here.
14765  * @var mac_ax_ops::checksum_rpt
14766  * Please Place Description here.
14767  * @var mac_ax_ops::set_efuse_ctrl
14768  * Please Place Description here.
14769  * @var mac_ax_ops::otp_test
14770  * Please Place Description here.
14771  * @var mac_ax_ops::get_mac_ft_status
14772  * Please Place Description here.
14773  * @var mac_ax_ops::fw_log_cfg
14774  * Please Place Description here.
14775  * @var mac_ax_ops::pinmux_set_func
14776  * Please Place Description here.
14777  * @var mac_ax_ops::pinmux_free_func
14778  * Please Place Description here.
14779  * @var mac_ax_ops::sel_uart_tx_pin
14780  * Please Place Description here.
14781  * @var mac_ax_ops::sel_uart_rx_pin
14782  * Please Place Description here.
14783  * @var mac_ax_ops::set_gpio_func
14784  * Please Place Description here.
14785  * @var mac_ax_ops::get_hw_info
14786  * Please Place Description here.
14787  * @var mac_ax_ops::set_hw_value
14788  * Please Place Description here.
14789  * @var mac_ax_ops::get_hw_value
14790  * Please Place Description here.
14791  * @var mac_ax_ops::get_err_status
14792  * Please Place Description here.
14793  * @var mac_ax_ops::set_err_status
14794  * Please Place Description here.
14795  * @var mac_ax_ops::general_pkt_ids
14796  * Please Place Description here.
14797  * @var mac_ax_ops::coex_init
14798  * Please Place Description here.
14799  * @var mac_ax_ops::coex_read
14800  * Please Place Description here.
14801  * @var mac_ax_ops::coex_write
14802  * Please Place Description here.
14803  * @var mac_ax_ops::trigger_cmac_err
14804  * Please Place Description here.
14805  * @var mac_ax_ops::trigger_cmac1_err
14806  * Please Place Description here.
14807  * @var mac_ax_ops::trigger_dmac_err
14808  * Please Place Description here.
14809  * @var mac_ax_ops::tsf_sync
14810  * Please Place Description here.
14811  * @var mac_ax_ops::reset_mcc_group
14812  * Please Place Description here.
14813  * @var mac_ax_ops::reset_mcc_request
14814  * Please Place Description here.
14815  * @var mac_ax_ops::add_mcc
14816  * Please Place Description here.
14817  * @var mac_ax_ops::start_mcc
14818  * Please Place Description here.
14819  * @var mac_ax_ops::stop_mcc
14820  * Please Place Description here.
14821  * @var mac_ax_ops::del_mcc_group
14822  * Please Place Description here.
14823  * @var mac_ax_ops::mcc_request_tsf
14824  * Please Place Description here.
14825  * @var mac_ax_ops::mcc_macid_bitmap
14826  * Please Place Description here.
14827  * @var mac_ax_ops::mcc_sync_enable
14828  * Please Place Description here.
14829  * @var mac_ax_ops::mcc_set_duration
14830  * Please Place Description here.
14831  * @var mac_ax_ops::get_mcc_tsf_rpt
14832  * Please Place Description here.
14833  * @var mac_ax_ops::get_mcc_status_rpt
14834  * Please Place Description here.
14835  * @var mac_ax_ops::check_add_mcc_done
14836  * Please Place Description here.
14837  * @var mac_ax_ops::check_start_mcc_done
14838  * Please Place Description here.
14839  * @var mac_ax_ops::check_stop_mcc_done
14840  * Please Place Description here.
14841  * @var mac_ax_ops::check_del_mcc_group_done
14842  * Please Place Description here.
14843  * @var mac_ax_ops::check_mcc_request_tsf_done
14844  * Please Place Description here.
14845  * @var mac_ax_ops::check_mcc_macid_bitmap_done
14846  * Please Place Description here.
14847  * @var mac_ax_ops::check_mcc_sync_enable_done
14848  * Please Place Description here.
14849  * @var mac_ax_ops::check_mcc_set_duration_done
14850  * Please Place Description here.
14851  * @var mac_ax_ops::check_access
14852  * Please Place Description here.
14853  * @var mac_ax_ops::set_led_mode
14854  * Please Place Description here.
14855  * @var mac_ax_ops::led_ctrl
14856  * Please Place Description here.
14857  * @var mac_ax_ops::set_sw_gpio_mode
14858  * Please Place Description here.
14859  * @var mac_ax_ops::sw_gpio_ctrl
14860  * Please Place Description here.
14861  * @var mac_ax_ops::fwcmd_lb
14862  * Please Place Description here.
14863  * @var mac_ax_ops::mem_dump
14864  * Please Place Description here.
14865  * @var mac_ax_ops::get_mem_size
14866  * Please Place Description here.
14867  * @var mac_ax_ops::dbg_status_dump
14868  * Please Place Description here.
14869  * @var mac_ax_ops::reg_dump
14870  * Please Place Description here.
14871  * @var mac_ax_ops::rx_cnt
14872  * Please Place Description here.
14873  * @var mac_ax_ops::dump_fw_rsvd_ple
14874  * Please Place Description here.
14875  * @var mac_ax_ops::fw_dbg_dump
14876  * Please Place Description here.
14877  * @var mac_ax_ops::event_notify
14878  * Please Place Description here.
14879  * @var mac_ax_ops::ram_boot
14880  * Please Place Description here.
14881  * @var mac_ax_ops::clear_write_request
14882  * Please Place Description here.
14883  * @var mac_ax_ops::add_write_request
14884  * Please Place Description here.
14885  * @var mac_ax_ops::write_ofld
14886  * Please Place Description here.
14887  * @var mac_ax_ops::clear_conf_request
14888  * Please Place Description here.
14889  * @var mac_ax_ops::add_conf_request
14890  * Please Place Description here.
14891  * @var mac_ax_ops::conf_ofld
14892  * Please Place Description here.
14893  * @var mac_ax_ops::clear_read_request
14894  * Please Place Description here.
14895  * @var mac_ax_ops::add_read_request
14896  * Please Place Description here.
14897  * @var mac_ax_ops::read_ofld
14898  * Please Place Description here.
14899  * @var mac_ax_ops::read_ofld_value
14900  * Please Place Description here.
14901  * @var mac_ax_ops::get_fw_status
14902  * Please Place Description here.
14903  */
14904 struct mac_ax_ops {
14905 	struct mac_ax_intf_ops *intf_ops;
14906 	/*System level*/
14907 	u32 (*hal_init)(struct mac_ax_adapter *adapter,
14908 			struct mac_ax_trx_info *trx_info,
14909 			struct mac_ax_fwdl_info *fwdl_info,
14910 			struct mac_ax_intf_info *intf_info);
14911 	u32 (*hal_fast_init)(struct mac_ax_adapter *adapter,
14912 			     struct mac_ax_trx_info *trx_info,
14913 			     struct mac_ax_fwdl_info *fwdl_info,
14914 			     struct mac_ax_intf_info *intf_info);
14915 	u32 (*hal_deinit)(struct mac_ax_adapter *adapter);
14916 	u32 (*hal_fast_deinit)(struct mac_ax_adapter *adapter);
14917 	u32 (*add_role)(struct mac_ax_adapter *adapter,
14918 			struct mac_ax_role_info *info);
14919 	u32 (*remove_role)(struct mac_ax_adapter *adapter, u8 macid);
14920 	u32 (*change_role)(struct mac_ax_adapter *adapter,
14921 			   struct mac_ax_role_info *info);
14922 	u32 (*pwr_switch)(struct mac_ax_adapter *adapter, u8 on);
14923 	u32 (*sys_init)(struct mac_ax_adapter *adapter);
14924 	u32 (*trx_init)(struct mac_ax_adapter *adapter,
14925 			struct mac_ax_trx_info *info);
14926 	u32 (*romdl)(struct mac_ax_adapter *adapter, u8 *rom, u32 romaddr,
14927 		     u32 len);
14928 	u32 (*enable_cpu)(struct mac_ax_adapter *adapter,
14929 			  u8 boot_reason, u8 dlfw);
14930 	u32 (*disable_cpu)(struct mac_ax_adapter *adapter);
14931 	u32 (*fwredl)(struct mac_ax_adapter *adapter, u8 *fw, u32 len);
14932 	u32 (*fwdl)(struct mac_ax_adapter *adapter, u8 *fw, u32 len);
14933 	u32 (*query_fw_buff)(struct mac_ax_adapter *adapter,
14934 			     enum rtw_fw_type cat, u8 **fw, u32 *fw_len);
14935 	u32 (*enable_fw)(struct mac_ax_adapter *adapter,
14936 			 enum rtw_fw_type cat);
14937 	u32 (*lv1_rcvy)(struct mac_ax_adapter *adapter,
14938 			enum mac_ax_lv1_rcvy_step step);
14939 	u32 (*get_macaddr)(struct mac_ax_adapter *adapter,
14940 			   struct mac_ax_macaddr *macaddr,
14941 			   u8 role_idx);
14942 	u32 (*build_txdesc)(struct mac_ax_adapter *adapter,
14943 			    struct rtw_t_meta_data *info, u8 *buf, u32 len);
14944 	u32 (*refill_txdesc)(struct mac_ax_adapter *adapter,
14945 			     struct rtw_t_meta_data *txpkt_info,
14946 			     struct mac_ax_refill_info *mask,
14947 			     struct mac_ax_refill_info *info);
14948 	u32 (*parse_rxdesc)(struct mac_ax_adapter *adapter,
14949 			    struct mac_ax_rxpkt_info *info, u8 *buf, u32 len);
14950 	u32 (*watchdog)(struct mac_ax_adapter *adapter);
14951 	/*FW offload related*/
14952 	u32 (*reset_fwofld_state)(struct mac_ax_adapter *adapter, u8 op);
14953 	u32 (*check_fwofld_done)(struct mac_ax_adapter *adapter, u8 op);
14954 	u32 (*read_pkt_ofld)(struct mac_ax_adapter *adapter, u8 id);
14955 	u32 (*del_pkt_ofld)(struct mac_ax_adapter *adapter, u8 id);
14956 	u32 (*add_pkt_ofld)(struct mac_ax_adapter *adapter, u8 *pkt,
14957 			    u16 len, u8 *id);
14958 	u32 (*pkt_ofld_packet)(struct mac_ax_adapter *adapter,
14959 			       u8 **pkt_buf, u16 *pkt_len, u8 *pkt_id);
14960 	u32 (*dump_efuse_ofld)(struct mac_ax_adapter *adapter, u32 efuse_size,
14961 			       bool is_hidden);
14962 	u32 (*efuse_ofld_map)(struct mac_ax_adapter *adapter, u8 *efuse_map,
14963 			      u32 efuse_size);
14964 	u32 (*upd_dctl_info)(struct mac_ax_adapter *adapter,
14965 			     struct mac_ax_dctl_info *info,
14966 			     struct mac_ax_dctl_info *mask, u8 macid,
14967 			     u8 operation);
14968 	u32 (*upd_cctl_info)(struct mac_ax_adapter *adapter,
14969 			     struct rtw_hal_mac_ax_cctl_info *info,
14970 			     struct rtw_hal_mac_ax_cctl_info *mask, u8 macid,
14971 			     u8 operation);
14972 	u32 (*ie_cam_upd)(struct mac_ax_adapter *adapter,
14973 			  struct mac_ax_ie_cam_cmd_info *info);
14974 	u32 (*twt_info_upd_h2c)(struct mac_ax_adapter *adapter,
14975 				struct mac_ax_twt_para *info);
14976 	u32 (*twt_act_h2c)(struct mac_ax_adapter *adapter,
14977 			   struct mac_ax_twtact_para *info);
14978 	u32 (*twt_anno_h2c)(struct mac_ax_adapter *adapter,
14979 			    struct mac_ax_twtanno_para *info);
14980 	void (*twt_wait_anno)(struct mac_ax_adapter *adapter,
14981 			      u8 *c2h_content, u8 *upd_addr);
14982 	u32 (*mac_host_getpkt_h2c)(struct mac_ax_adapter *adapter,
14983 				   u8 macid, u8 pkttype);
14984 	u32 (*p2p_act_h2c)(struct mac_ax_adapter *adapter,
14985 			   struct mac_ax_p2p_act_info *info);
14986 	u32 (*p2p_macid_ctrl_h2c)(struct mac_ax_adapter *adapter,
14987 				  struct mac_ax_p2p_macid_info *info);
14988 	u32 (*get_p2p_stat)(struct mac_ax_adapter *adapter);
14989 	u32 (*tsf32_togl_h2c)(struct mac_ax_adapter *adapter,
14990 			      struct mac_ax_t32_togl_info *info);
14991 	u32 (*get_t32_togl_rpt)(struct mac_ax_adapter *adapter,
14992 				struct mac_ax_t32_togl_rpt *ret_rpt);
14993 	u32 (*ccxrpt_parsing)(struct mac_ax_adapter *adapter,
14994 			      u8 *buf, struct mac_ax_ccxrpt *info);
14995 	/*Association, de-association related*/
14996 	u32 (*sta_add_key)(struct mac_ax_adapter *adapter,
14997 			   struct mac_ax_sec_cam_info *sec_cam_content,
14998 			   u8 mac_id, u8 key_id, u8 key_type);
14999 	u32 (*sta_del_key)(struct mac_ax_adapter *adapter,
15000 			   u8 mac_id, u8 key_id, u8 key_type);
15001 	u32 (*sta_search_key_idx)(struct mac_ax_adapter *adapter,
15002 				  u8 mac_id, u8 key_id, u8 key_type);
15003 	u32 (*sta_hw_security_support)(struct mac_ax_adapter *adapter,
15004 				       u8 hw_security_support_type, u8 enable);
15005 	u32 (*sta_keycam_backup)(struct mac_ax_adapter *adapter,
15006 				 u8 op_mode);
15007 	u32 (*set_mu_table)(struct mac_ax_adapter *adapter,
15008 			    struct mac_mu_table *mu_table);
15009 	u32 (*ss_dl_grp_upd)(struct mac_ax_adapter *adapter,
15010 			     struct mac_ax_ss_dl_grp_upd *info);
15011 	u32 (*ss_ul_grp_upd)(struct mac_ax_adapter *adapter,
15012 			     struct mac_ax_ss_ul_grp_upd *info);
15013 	u32 (*ss_ul_sta_upd)(struct mac_ax_adapter *adapter,
15014 			     struct mac_ax_ss_ul_sta_upd *info);
15015 	u32 (*bacam_info)(struct mac_ax_adapter *adapter,
15016 			  struct mac_ax_bacam_info *info);
15017 	/*TRX related*/
15018 	u32 (*txdesc_len)(struct mac_ax_adapter *adapter,
15019 			  struct rtw_t_meta_data *info);
15020 	u32 (*upd_shcut_mhdr)(struct mac_ax_adapter *adapter,
15021 			      struct mac_ax_shcut_mhdr *info, u8 macid);
15022 	u32 (*enable_hwmasdu)(struct mac_ax_adapter *adapter,
15023 			      u8 enable,
15024 			      enum mac_ax_amsdu_pkt_num max_num,
15025 			      u8 en_single_amsdu,
15026 			      u8 en_last_amsdu_padding);
15027 	u32 (*enable_cut_hwamsdu)(struct mac_ax_adapter *adapter,
15028 				  u8 enable,
15029 				  u8 low_th,
15030 				  u16 high_th,
15031 				  enum mac_ax_ex_shift aligned);
15032 	u32 (*hdr_conv)(struct mac_ax_adapter *adapter,
15033 			u8 en_hdr_conv);
15034 	u32 (*set_hwseq_reg)(struct mac_ax_adapter *adapter,
15035 			     u8 reg_seq_idx,
15036 			     u16 reg_seq_val);
15037 	u32 (*process_c2h)(struct mac_ax_adapter *adapter, u8 *buf, u32 len,
15038 			   u8 *ret);
15039 	u32 (*parse_dfs)(struct mac_ax_adapter *adapter,
15040 			 u8 *buf, u32 dfs_len, struct mac_ax_dfs_rpt *rpt);
15041 	u32 (*parse_ppdu)(struct mac_ax_adapter *adapter,
15042 			  u8 *buf, u32 ppdu_len, u8 mac_info,
15043 			  struct mac_ax_ppdu_rpt *rpt);
15044 	u32 (*cfg_phy_rpt)(struct mac_ax_adapter *adapter,
15045 			   struct mac_ax_phy_rpt_cfg *cfg);
15046 	u32 (*set_rx_forwarding)(struct mac_ax_adapter *adapter,
15047 				 struct mac_ax_rx_fwd_ctrl_t *rf_ctrl_p);
15048 	u32 (*get_rx_fltr_opt)(struct mac_ax_adapter *adapter,
15049 			       struct mac_ax_rx_fltr_ctrl_t *opt,
15050 			       enum mac_ax_band band);
15051 	u32 (*set_rx_fltr_opt)(struct mac_ax_adapter *adapter,
15052 			       struct mac_ax_rx_fltr_ctrl_t *opt,
15053 			       struct mac_ax_rx_fltr_ctrl_t *opt_msk,
15054 			       enum mac_ax_band band);
15055 	u32 (*set_rx_fltr_typ_opt)(struct mac_ax_adapter *adapter,
15056 				   enum mac_ax_pkt_t type,
15057 				   enum mac_ax_fwd_target fwd_target,
15058 				   enum mac_ax_band band);
15059 	u32 (*set_rx_fltr_typstyp_opt)(struct mac_ax_adapter *adapter,
15060 				       enum mac_ax_pkt_t type,
15061 				       u8 subtype,
15062 				       enum mac_ax_fwd_target fwd_target,
15063 				       enum mac_ax_band band);
15064 	u32 (*set_typsbtyp_fltr_detail)(struct mac_ax_adapter *adapter,
15065 					enum mac_ax_pkt_t type,
15066 					struct mac_ax_rx_fltr_elem *elem,
15067 					enum mac_ax_band band);
15068 	u32 (*get_cfg_addr_cam)(struct mac_ax_adapter *adapter,
15069 				struct mac_ax_addrcam_ctrl_t *opt,
15070 				enum mac_ax_band band);
15071 	u32 (*get_cfg_addr_cam_dis)(struct mac_ax_adapter *adapter,
15072 				    struct mac_ax_addrcam_dis_ctrl_t *opt,
15073 				    enum mac_ax_band band);
15074 	u32 (*cfg_addr_cam)(struct mac_ax_adapter *adapter,
15075 			    struct mac_ax_addrcam_ctrl_t *ctl_opt,
15076 			    struct mac_ax_addrcam_ctrl_t *ctl_msk,
15077 			    enum mac_ax_band band);
15078 	u32 (*cfg_addr_cam_dis)(struct mac_ax_adapter *adapter,
15079 				struct mac_ax_addrcam_dis_ctrl_t *ctl_opt,
15080 				struct mac_ax_addrcam_dis_ctrl_t *ctl_msk,
15081 				enum mac_ax_band band);
15082 	u32 (*sr_update)(struct mac_ax_adapter *adapter,
15083 			 struct mac_ax_sr_info *sr_info,
15084 			 enum mac_ax_band band);
15085 	u32 (*two_nav_cfg)(struct mac_ax_adapter *adapter,
15086 			   struct mac_ax_2nav_info *info);
15087 	u32 (*pkt_drop)(struct mac_ax_adapter *adapter,
15088 			struct mac_ax_pkt_drop_info *info);
15089 	u32 (*send_bcn_h2c)(struct mac_ax_adapter *adapter,
15090 			    struct mac_ax_bcn_info *info);
15091 	u32 (*tx_mode_sel)(struct mac_ax_adapter *adapter,
15092 			   struct mac_ax_mac_tx_mode_sel *mode_sel);
15093 	u32 (*tcpip_chksum_ofd)(struct mac_ax_adapter *adapter,
15094 				u8 en_tx_chksum_ofd,
15095 				u8 en_rx_chksum_ofd);
15096 	u32 (*chk_rx_tcpip_chksum_ofd)(struct mac_ax_adapter *adapter,
15097 				       u8 chksum_status);
15098 	u32 (*chk_allq_empty)(struct mac_ax_adapter *adapter, u8 *empty);
15099 	u32 (*is_txq_empty)(struct mac_ax_adapter *adapter,
15100 			    struct mac_ax_tx_queue_empty *val);
15101 	u32 (*is_rxq_empty)(struct mac_ax_adapter *adapter,
15102 			    struct mac_ax_rx_queue_empty *val);
15103 	u32 (*parse_bcn_stats_c2h)(struct mac_ax_adapter *adapter,
15104 				   u8 *content,
15105 				   struct mac_ax_bcn_cnt *val);
15106 	u32 (*tx_idle_poll)(struct mac_ax_adapter *adapter,
15107 			    struct mac_ax_tx_idle_poll_cfg *poll_cfg);
15108 	u32 (*sifs_chk_cca_en)(struct mac_ax_adapter *adapter,
15109 			       u8 band);
15110 	u32 (*patch_rx_rate)(struct mac_ax_adapter *adapter,
15111 			     struct rtw_r_meta_data *info);
15112 	/*frame exchange related*/
15113 	u32 (*upd_mudecision_para)(struct mac_ax_adapter *adapter,
15114 				   struct mac_ax_mudecision_para *info);
15115 	u32 (*mu_sta_upd)(struct mac_ax_adapter *adapter,
15116 			  struct mac_ax_mu_sta_upd *info);
15117 	u32 (*upd_ul_fixinfo)(struct mac_ax_adapter *adapter,
15118 			      struct mac_ax_ul_fixinfo *info);
15119 	u32 (*f2p_test_cmd)(struct mac_ax_adapter *adapter,
15120 			    struct mac_ax_f2p_test_para *info,
15121 			    struct mac_ax_f2p_wd *f2pwd,
15122 			    struct mac_ax_f2p_tx_cmd *ptxcmd,
15123 			    u8 *psigb_addr);
15124 	u32 (*snd_test_cmd)(struct mac_ax_adapter *adapter,
15125 			    u8 *cmd_buf);
15126 	u32 (*set_fw_fixmode)(struct mac_ax_adapter *adapter,
15127 			      struct mac_ax_fixmode_para *info);
15128 	u32 (*mac_dumpwlanc)(struct mac_ax_adapter *adapter,
15129 			     struct mac_ax_dumpwlanc *para);
15130 	u32 (*mac_dumpwlans)(struct mac_ax_adapter *adapter,
15131 			     struct mac_ax_dumpwlans *para);
15132 	u32 (*mac_dumpwland)(struct mac_ax_adapter *adapter,
15133 			     struct mac_ax_dumpwland *para);
15134 	/*outsrcing related */
15135 	u32 (*outsrc_h2c_common)(struct mac_ax_adapter *adapter,
15136 				 struct rtw_g6_h2c_hdr *hdr,
15137 				 u32 *pvalue);
15138 	u32 (*read_pwr_reg)(struct mac_ax_adapter *adapter, u8 band,
15139 			    const u32 offset, u32 *val);
15140 	u32 (*write_pwr_reg)(struct mac_ax_adapter *adapter, u8 band,
15141 			     const u32 offset, u32 val);
15142 	u32 (*write_msk_pwr_reg)(struct mac_ax_adapter *adapter, u8 band,
15143 				 const u32 offset, u32 mask, u32 val);
15144 	u32 (*write_pwr_ofst_mode)(struct mac_ax_adapter *adapter,
15145 				   u8 band, struct rtw_tpu_info *tpu);
15146 	u32 (*write_pwr_ofst_bw)(struct mac_ax_adapter *adapter,
15147 				 u8 band, struct rtw_tpu_info *tpu);
15148 	u32 (*write_pwr_ref_reg)(struct mac_ax_adapter *adapter,
15149 				 u8 band, struct rtw_tpu_info *tpu);
15150 	u32 (*write_pwr_limit_en)(struct mac_ax_adapter *adapter,
15151 				  u8 band, struct rtw_tpu_info *tpu);
15152 	u32 (*write_pwr_limit_rua_reg)(struct mac_ax_adapter *adapter,
15153 				       u8 band, struct rtw_tpu_info *tpu);
15154 	u32 (*write_pwr_limit_reg)(struct mac_ax_adapter *adapter,
15155 				   u8 band, struct rtw_tpu_pwr_imt_info *tpu);
15156 	u32 (*write_pwr_by_rate_reg)(struct mac_ax_adapter *adapter,
15157 				     u8 band,
15158 				     struct rtw_tpu_pwr_by_rate_info *tpu);
15159 	u32 (*lamode_cfg)(struct mac_ax_adapter *adapter,
15160 			  struct mac_ax_la_cfg *cfg);
15161 	u32 (*lamode_trigger)(struct mac_ax_adapter *adapter, u8 tgr);
15162 	u32 (*lamode_buf_cfg)(struct mac_ax_adapter *adapter,
15163 			      struct mac_ax_la_buf_param *param);
15164 	struct mac_ax_la_status (*get_lamode_st)
15165 				 (struct mac_ax_adapter *adapter);
15166 	u32 (*read_xcap_reg)(struct mac_ax_adapter *adapter, u8 sc_xo,
15167 			     u32 *val);
15168 	u32 (*write_xcap_reg)(struct mac_ax_adapter *adapter, u8 sc_xo,
15169 			      u32 val);
15170 	u32 (*write_bbrst_reg)(struct mac_ax_adapter *adapter, u8 val);
15171 	/*sounding related*/
15172 	u32 (*get_csi_buffer_index)(struct mac_ax_adapter *adapter, u8 band,
15173 				    u8 csi_buffer_id);
15174 	u32 (*set_csi_buffer_index)(struct mac_ax_adapter *adapter, u8 band,
15175 				    u8 macid, u16 csi_buffer_id,
15176 				    u16 buffer_idx);
15177 	u32 (*get_snd_sts_index)(struct mac_ax_adapter *adapter, u8 band,
15178 				 u8 index);
15179 	u32 (*set_snd_sts_index)(struct mac_ax_adapter *adapter, u8 band,
15180 				 u8 macid, u8 index);
15181 	u32 (*init_snd_mer)(struct mac_ax_adapter *adapter, u8 band);
15182 	u32 (*init_snd_mee)(struct mac_ax_adapter *adapter, u8 band);
15183 	u32 (*csi_force_rate)(struct mac_ax_adapter *adapter, u8 band,
15184 			      u8 ht_rate, u8 vht_rate, u8 he_rate);
15185 	u32 (*csi_rrsc)(struct mac_ax_adapter *adapter, u8 band, u32 rrsc);
15186 	u32 (*set_snd_para)(struct mac_ax_adapter *adapter,
15187 			    struct mac_ax_fwcmd_snd *snd_info);
15188 	u32 (*set_csi_para_reg)(struct mac_ax_adapter *adapter,
15189 				struct mac_reg_csi_para *csi_para);
15190 	u32 (*set_csi_para_cctl)(struct mac_ax_adapter *adapter,
15191 				 struct mac_cctl_csi_para *csi_para);
15192 	u32 (*hw_snd_pause_release)(struct mac_ax_adapter *adapter,
15193 				    u8 band, u8 pr);
15194 	u32 (*bypass_snd_sts)(struct mac_ax_adapter *adapter);
15195 	u32 (*deinit_mee)(struct mac_ax_adapter *adapter, u8 band);
15196 	u32 (*snd_sup)(struct mac_ax_adapter *adapter,
15197 		       struct mac_bf_sup *bf_sup);
15198 	u32 (*gidpos)(struct mac_ax_adapter *adapter,
15199 		      struct mac_gid_pos *mu_gid);
15200 	/*lps related*/
15201 	u32 (*cfg_lps)(struct mac_ax_adapter *adapter,
15202 		       u8 macid,
15203 		       enum mac_ax_ps_mode ps_mode,
15204 		       struct mac_ax_lps_info *lps_info);
15205 	u32 (*ps_pwr_state)(struct mac_ax_adapter *adapter,
15206 			    enum mac_ax_pwr_state_action action,
15207 			    enum mac_ax_rpwm_req_pwr_state req_pwr_state);
15208 	u32 (*chk_leave_lps)(struct mac_ax_adapter *adapter, u8 macid);
15209 	u32 (*cfg_ips)(struct mac_ax_adapter *adapter,
15210 		       u8 macid,
15211 		       u8 enable);
15212 	u32 (*chk_leave_ips)(struct mac_ax_adapter *adapter, u8 macid);
15213 	u32 (*ps_notify_wake)(struct mac_ax_adapter *adapter);
15214 	u32 (*cfg_ps_advance_parm)(struct mac_ax_adapter *adapter,
15215 				   struct mac_ax_ps_adv_parm *parm);
15216 	/*Wowlan related*/
15217 	u32 (*cfg_wow_wake)(struct mac_ax_adapter *adapter,
15218 			    u8 macid,
15219 			    struct mac_ax_wow_wake_info *info,
15220 			    struct mac_ax_remotectrl_info_parm_ *content);
15221 	u32 (*cfg_disconnect_det)(struct mac_ax_adapter *adapter,
15222 				  u8 macid,
15223 				  struct mac_ax_disconnect_det_info *info);
15224 	u32 (*cfg_keepalive)(struct mac_ax_adapter *adapter,
15225 			     u8 macid,
15226 			     struct mac_ax_keep_alive_info *info);
15227 	u32 (*cfg_gtk_ofld)(struct mac_ax_adapter *adapter,
15228 			    u8 macid,
15229 			    struct mac_ax_gtk_ofld_info *info,
15230 			    struct mac_ax_gtk_info_parm_ *content);
15231 	u32 (*cfg_arp_ofld)(struct mac_ax_adapter *adapter,
15232 			    u8 macid,
15233 			    struct mac_ax_arp_ofld_info *info,
15234 			    void *parp_info_content);
15235 	u32 (*cfg_ndp_ofld)(struct mac_ax_adapter *adapter,
15236 			    u8 macid,
15237 			    struct mac_ax_ndp_ofld_info *info,
15238 			    struct mac_ax_ndp_info_parm_ *content);
15239 	u32 (*cfg_realwow)(struct mac_ax_adapter *adapter,
15240 			   u8 macid,
15241 			   struct mac_ax_realwow_info *info,
15242 			   struct mac_ax_realwowv2_info_parm_ *content);
15243 	u32 (*cfg_nlo)(struct mac_ax_adapter *adapter,
15244 		       u8 macid,
15245 		       struct mac_ax_nlo_info *info,
15246 		       struct mac_ax_nlo_networklist_parm_ *content);
15247 	u32 (*cfg_dev2hst_gpio)(struct mac_ax_adapter *adapter,
15248 				struct mac_ax_dev2hst_gpio_info *parm);
15249 	u32 (*cfg_uphy_ctrl)(struct mac_ax_adapter *adapter,
15250 			     struct mac_ax_uphy_ctrl_info *info);
15251 	u32 (*cfg_wowcam_upd)(struct mac_ax_adapter *adapter,
15252 			      struct mac_ax_wowcam_upd_info *info);
15253 	u32 (*get_wow_wake_rsn)(struct mac_ax_adapter *adapter, u8 *wake_rsn,
15254 				u8 *reset);
15255 	u32 (*cfg_wow_sleep)(struct mac_ax_adapter *adapter,
15256 			     u8 sleep);
15257 	u32 (*get_wow_fw_status)(struct mac_ax_adapter *adapter,
15258 				 u8 *status, u8 func_en);
15259 	u32 (*request_aoac_report)(struct mac_ax_adapter *adapter,
15260 				   u8 rx_ready);
15261 	u32 (*read_aoac_report)(struct mac_ax_adapter *adapter,
15262 				struct mac_ax_aoac_report *rpt_buf, u8 rx_ready);
15263 	u32 (*check_aoac_report_done)(struct mac_ax_adapter *adapter);
15264 	u32 (*wow_stop_trx)(struct mac_ax_adapter *adapter);
15265 	/*system related*/
15266 	u32 (*dbcc_enable)(struct mac_ax_adapter *adapter,
15267 			   struct mac_ax_trx_info *info, u8 dbcc_en);
15268 	u32 (*dbcc_trx_ctrl)(struct mac_ax_adapter *adapter,
15269 			     enum mac_ax_band band, u8 pause);
15270 	u32 (*port_cfg)(struct mac_ax_adapter *adapter,
15271 			enum mac_ax_port_cfg_type type,
15272 			struct mac_ax_port_cfg_para *para);
15273 	u32 (*port_init)(struct mac_ax_adapter *adapter,
15274 			 struct mac_ax_port_init_para *para);
15275 	u32 (*enable_imr)(struct mac_ax_adapter *adapter, u8 band,
15276 			  enum mac_ax_hwmod_sel sel);
15277 	u32 (*dump_efuse_map_wl)(struct mac_ax_adapter *adapter,
15278 				 enum mac_ax_efuse_read_cfg cfg,
15279 				 u8 *efuse_map);
15280 	u32 (*dump_efuse_map_bt)(struct mac_ax_adapter *adapter,
15281 				 enum mac_ax_efuse_read_cfg cfg,
15282 				 u8 *efuse_map);
15283 	u32 (*write_efuse)(struct mac_ax_adapter *adapter, u32 addr, u8 val,
15284 			   enum mac_ax_efuse_bank bank);
15285 	u32 (*read_efuse)(struct mac_ax_adapter *adapter, u32 addr, u32 size,
15286 			  u8 *val, enum mac_ax_efuse_bank bank);
15287 	u32 (*get_efuse_avl_size)(struct mac_ax_adapter *adapter, u32 *size);
15288 	u32 (*get_efuse_avl_size_bt)(struct mac_ax_adapter *adapter, u32 *size);
15289 	u32 (*dump_log_efuse)(struct mac_ax_adapter *adapter,
15290 			      enum mac_ax_efuse_parser_cfg parser_cfg,
15291 			      enum mac_ax_efuse_read_cfg cfg,
15292 			      u8 *efuse_map, bool is_limit);
15293 	u32 (*read_log_efuse)(struct mac_ax_adapter *adapter, u32 addr,
15294 			      u32 size, u8 *val);
15295 	u32 (*write_log_efuse)(struct mac_ax_adapter *adapter, u32 addr,
15296 			       u8 val);
15297 	u32 (*dump_log_efuse_bt)(struct mac_ax_adapter *adapter,
15298 				 enum mac_ax_efuse_parser_cfg parser_cfg,
15299 				 enum mac_ax_efuse_read_cfg cfg,
15300 				 u8 *efuse_map);
15301 	u32 (*read_log_efuse_bt)(struct mac_ax_adapter *adapter, u32 addr,
15302 				 u32 size, u8 *val);
15303 	u32 (*write_log_efuse_bt)(struct mac_ax_adapter *adapter, u32 addr,
15304 				  u8 val);
15305 	u32 (*pg_efuse_by_map)(struct mac_ax_adapter *adapter,
15306 			       struct mac_ax_pg_efuse_info *info,
15307 			       enum mac_ax_efuse_read_cfg cfg,
15308 			       bool part, bool is_limit);
15309 	u32 (*pg_efuse_by_map_bt)(struct mac_ax_adapter *adapter,
15310 				  struct mac_ax_pg_efuse_info *info,
15311 				  enum mac_ax_efuse_read_cfg cfg);
15312 	u32 (*mask_log_efuse)(struct mac_ax_adapter *adapter,
15313 			      struct mac_ax_pg_efuse_info *info);
15314 	u32 (*pg_sec_data_by_map)(struct mac_ax_adapter *adapter,
15315 				  struct mac_ax_pg_efuse_info *info);
15316 	u32 (*cmp_sec_data_by_map)(struct mac_ax_adapter *adapter,
15317 				   struct mac_ax_pg_efuse_info *info);
15318 	u32 (*get_efuse_info)(struct mac_ax_adapter *adapter, u8 *efuse_map,
15319 			      enum rtw_efuse_info id, void *value,
15320 			      u32 length, u8 *autoload_status);
15321 	u32 (*set_efuse_info)(struct mac_ax_adapter *adapter, u8 *efuse_map,
15322 			      enum rtw_efuse_info id, void *value, u32 length);
15323 	u32 (*read_hidden_rpt)(struct mac_ax_adapter *adapter,
15324 			       struct mac_defeature_value *rpt);
15325 	u32 (*check_efuse_autoload)(struct mac_ax_adapter *adapter,
15326 				    u8 *autoload_status);
15327 	u32 (*pg_simulator)(struct mac_ax_adapter *adapter,
15328 			    struct mac_ax_pg_efuse_info *info, u8 *phy_map);
15329 	u32 (*checksum_update)(struct mac_ax_adapter *adapter);
15330 	u32 (*checksum_rpt)(struct mac_ax_adapter *adapter, u16 *chksum);
15331 	u32 (*disable_rf)(struct mac_ax_adapter *adapter,
15332 			  enum mac_ax_disable_rf_func func,
15333 			  enum mac_ax_net_type type);
15334 	void (*set_efuse_ctrl)(struct mac_ax_adapter *adapter, u8 is_secure);
15335 	u32 (*otp_test)(struct mac_ax_adapter *adapter, bool is_OTP_test);
15336 	u32 (*get_mac_ft_status)(struct mac_ax_adapter *adapter,
15337 				 enum mac_ax_feature mac_ft,
15338 				 enum mac_ax_status *stat, u8 *buf,
15339 				 const u32 size, u32 *ret_size);
15340 	u32 (*fw_log_cfg)(struct mac_ax_adapter *adapter,
15341 			  struct mac_ax_fw_log *log_cfg);
15342 	u32 (*pinmux_set_func)(struct mac_ax_adapter *adapter,
15343 			       enum mac_ax_gpio_func func);
15344 	u32 (*pinmux_free_func)(struct mac_ax_adapter *adapter,
15345 				enum mac_ax_gpio_func func);
15346 	u32 (*sel_uart_tx_pin)(struct mac_ax_adapter *adapter,
15347 			       enum mac_ax_uart_tx_pin uart_pin);
15348 	u32 (*sel_uart_rx_pin)(struct mac_ax_adapter *adapter,
15349 			       enum mac_ax_uart_rx_pin uart_pin);
15350 	u32 (*set_gpio_func)(struct mac_ax_adapter *adapter,
15351 			     enum rtw_mac_gfunc func, s8 gpio);
15352 	struct mac_ax_hw_info* (*get_hw_info)(struct mac_ax_adapter *adapter);
15353 	u32 (*set_hw_value)(struct mac_ax_adapter *adapter,
15354 			    enum mac_ax_hw_id hw_id, void *value);
15355 	u32 (*get_hw_value)(struct mac_ax_adapter *adapter,
15356 			    enum mac_ax_hw_id hw_id, void *value);
15357 	u32 (*get_err_status)(struct mac_ax_adapter *adapter,
15358 			      enum mac_ax_err_info *err);
15359 	u32 (*set_err_status)(struct mac_ax_adapter *adapter,
15360 			      enum mac_ax_err_info err);
15361 	u32 (*general_pkt_ids)(struct mac_ax_adapter *adapter,
15362 			       struct mac_ax_general_pkt_ids *ids);
15363 	u32 (*coex_init)(struct mac_ax_adapter *adapter,
15364 			 struct mac_ax_coex *coex);
15365 	u32 (*coex_read)(struct mac_ax_adapter *adapter,
15366 			 const u32 offset, u32 *val);
15367 	u32 (*coex_write)(struct mac_ax_adapter *adapter,
15368 			  const u32 offset, const u32 val);
15369 	u32 (*trigger_cmac_err)(struct mac_ax_adapter *adapter);
15370 	u32 (*trigger_cmac1_err)(struct mac_ax_adapter *adapter);
15371 	u32 (*trigger_dmac_err)(struct mac_ax_adapter *adapter);
15372 	u32 (*tsf_sync)(struct mac_ax_adapter *adapter, u8 from_port,
15373 			u8 to_port, s32 sync_offset,
15374 			enum mac_ax_tsf_sync_act action);
15375 	u32 (*read_xtal_si)(struct mac_ax_adapter *adapter, u8 offset, u8 *val);
15376 	u32 (*write_xtal_si)(struct mac_ax_adapter *adapter, u8 offset, u8 val,
15377 			     u8 bitmask);
15378 	u32 (*io_chk_access)(struct mac_ax_adapter *adapter, u32 offset);
15379 	u32 (*ser_ctrl)(struct mac_ax_adapter *adapter, enum mac_ax_func_sw sw);
15380 	/* mcc */
15381 	u32 (*reset_mcc_group)(struct mac_ax_adapter *adapter, u8 group);
15382 	u32 (*reset_mcc_request)(struct mac_ax_adapter *adapter, u8 group);
15383 	u32 (*add_mcc)(struct mac_ax_adapter *adapter,
15384 		       struct mac_ax_mcc_role *info);
15385 	u32 (*start_mcc)(struct mac_ax_adapter *adapter,
15386 			 struct mac_ax_mcc_start *info);
15387 	u32 (*stop_mcc)(struct mac_ax_adapter *adapter, u8 group, u8 macid,
15388 			u8 prev_groups);
15389 	u32 (*del_mcc_group)(struct mac_ax_adapter *adapter, u8 group,
15390 			     u8 prev_groups);
15391 	u32 (*mcc_request_tsf)(struct mac_ax_adapter *adapter, u8 group,
15392 			       u8 macid_x, u8 macid_y);
15393 	u32 (*mcc_macid_bitmap)(struct mac_ax_adapter *adapter, u8 group,
15394 				u8 macid, u8 *bitmap, u8 len);
15395 	u32 (*mcc_sync_enable)(struct mac_ax_adapter *adapter, u8 group,
15396 			       u8 source, u8 target, u8 offset);
15397 	u32 (*mcc_set_duration)(struct mac_ax_adapter *adapter,
15398 				struct mac_ax_mcc_duration_info *info);
15399 	u32 (*get_mcc_tsf_rpt)(struct mac_ax_adapter *adapter, u8 group,
15400 			       u32 *tsf_x_high, u32 *tsf_x_low,
15401 			       u32 *tsf_y_high, u32 *tsf_y_low);
15402 	u32 (*get_mcc_status_rpt)(struct mac_ax_adapter *adapter, u8 group,
15403 				  u8 *status, u32 *tsf_high, u32 *tsf_low);
15404 	u32 (*get_mcc_group)(struct mac_ax_adapter *adapter, u8 *pget_group);
15405 	u32 (*check_add_mcc_done)(struct mac_ax_adapter *adapter, u8 group);
15406 	u32 (*check_start_mcc_done)(struct mac_ax_adapter *adapter, u8 group);
15407 	u32 (*check_stop_mcc_done)(struct mac_ax_adapter *adapter, u8 group);
15408 	u32 (*check_del_mcc_group_done)(struct mac_ax_adapter *adapter,
15409 					u8 group);
15410 	u32 (*check_mcc_request_tsf_done)(struct mac_ax_adapter *adapter,
15411 					  u8 group);
15412 	u32 (*check_mcc_macid_bitmap_done)(struct mac_ax_adapter *adapter,
15413 					   u8 group);
15414 	u32 (*check_mcc_sync_enable_done)(struct mac_ax_adapter *adapter,
15415 					  u8 group);
15416 	u32 (*check_mcc_set_duration_done)(struct mac_ax_adapter *adapter,
15417 					   u8 group);
15418 	/* not mcc */
15419 	u32 (*check_access)(struct mac_ax_adapter *adapter, u32 offset);
15420 	u32 (*set_led_mode)(struct mac_ax_adapter *adapter,
15421 			    enum mac_ax_led_mode mode, u8 led_id);
15422 	u32 (*led_ctrl)(struct mac_ax_adapter *adapter, u8 high, u8 led_id);
15423 	u32 (*set_sw_gpio_mode)(struct mac_ax_adapter *adapter,
15424 				enum rtw_gpio_mode mode, u8 gpio);
15425 	u32 (*sw_gpio_ctrl)(struct mac_ax_adapter *adapter, u8 high, u8 gpio);
15426 	u32 (*get_c2h_event)(struct mac_ax_adapter *adapter,
15427 			     struct rtw_c2h_info *c2h,
15428 			     enum phl_msg_evt_id *id,
15429 			     u8 *c2h_info);
15430 	u32 (*cfg_wps)(struct mac_ax_adapter *adapter,
15431 		       struct mac_ax_cfg_wps *wps);
15432 	u32 (*get_wl_dis_val)(struct mac_ax_adapter *adapter, u8 *val);
15433 	/* ftm related */
15434 	u32 (*ista_ftm_proc)(struct mac_ax_adapter *adapter,
15435 			     struct mac_ax_ftm_para *ftmr);
15436 #if MAC_AX_FEATURE_DBGPKG
15437 	u32 (*fwcmd_lb)(struct mac_ax_adapter *adapter, u32 len, u8 burst);
15438 	u32 (*mem_dump)(struct mac_ax_adapter *adapter, enum mac_ax_mem_sel sel,
15439 			u32 strt_addr, u8 *data, u32 size, u32 dbg_path);
15440 	u32 (*get_mem_size)(struct mac_ax_adapter *adapter,
15441 			    enum mac_ax_mem_sel sel);
15442 	void (*dbg_status_dump)(struct mac_ax_adapter *adapter,
15443 				struct mac_ax_dbgpkg *val,
15444 				struct mac_ax_dbgpkg_en *en);
15445 	u32 (*reg_dump)(struct mac_ax_adapter *adapter,
15446 			enum mac_ax_reg_sel sel);
15447 	u32 (*rx_cnt)(struct mac_ax_adapter *adapter,
15448 		      struct mac_ax_rx_cnt *rxcnt);
15449 	u32 (*dump_fw_rsvd_ple)(struct mac_ax_adapter *adapter, u8 **buf);
15450 	void (*dump_ple_dbg_page)(struct mac_ax_adapter *adapter, u8 page_num);
15451 	u32 (*fw_dbg_dump)(struct mac_ax_adapter *adapter,
15452 			   u8 **buf,
15453 			   struct mac_ax_fwdbg_en *en);
15454 	u32 (*event_notify)(struct mac_ax_adapter *adapter,
15455 			    enum phl_msg_evt_id id, u8 band);
15456 	u32 (*dbgport_hw_set)(struct mac_ax_adapter *adapter,
15457 			      struct mac_ax_dbgport_hw *dp_hw);
15458 #endif
15459 #if MAC_AX_FEATURE_HV
15460 	u32 (*ram_boot)(struct mac_ax_adapter *adapter, u8 *fw, u32 len);
15461 	/*fw offload related*/
15462 	u32 (*clear_write_request)(struct mac_ax_adapter *adapter);
15463 	u32 (*add_write_request)(struct mac_ax_adapter *adapter,
15464 				 struct mac_ax_write_req *req,
15465 				 u8 *value, u8 *mask);
15466 	u32 (*write_ofld)(struct mac_ax_adapter *adapter);
15467 	u32 (*clear_conf_request)(struct mac_ax_adapter *adapter);
15468 	u32 (*add_conf_request)(struct mac_ax_adapter *adapter,
15469 				struct mac_ax_conf_ofld_req *req);
15470 	u32 (*conf_ofld)(struct mac_ax_adapter *adapter);
15471 	u32 (*clear_read_request)(struct mac_ax_adapter *adapter);
15472 	u32 (*add_read_request)(struct mac_ax_adapter *adapter,
15473 				struct mac_ax_read_req *req);
15474 	u32 (*read_ofld)(struct mac_ax_adapter *adapter);
15475 	u32 (*read_ofld_value)(struct mac_ax_adapter *adapter,
15476 			       u8 **val_buf, u16 *val_len);
15477 #endif
15478 	u32 (*add_cmd_ofld)(struct mac_ax_adapter *adapter,
15479 			    struct rtw_mac_cmd *cmd);
15480 	/* flash related*/
15481 	u32 (*flash_erase)(struct mac_ax_adapter *adapter,
15482 			   u32 addr,
15483 			   u32 length,
15484 			   u32 timeout);
15485 	u32 (*flash_read)(struct mac_ax_adapter *adapter,
15486 			  u32 addr,
15487 			  u32 length,
15488 			  u8 *buffer,
15489 			  u32 timeout);
15490 	u32 (*flash_write)(struct mac_ax_adapter *adapter,
15491 			   u32 addr,
15492 			   u32 length,
15493 			   u8 *buffer,
15494 			   u32 timeout);
15495 	u32 (*fw_status_cmd)(struct mac_ax_adapter *adapter,
15496 			     struct mac_ax_fwstatus_payload *info);
15497 	u32 (*fwc2h_ofdma_sts_parse)(struct mac_ax_adapter *adapter,
15498 				     struct mac_ax_fwc2h_sts *fw_c2h_sts,
15499 				     u32 *content);
15500 	u32 (*fw_ofdma_sts_en)(struct mac_ax_adapter *adapter,
15501 			       struct mac_ax_fwsts_para *fwsts_para);
15502 	u32 (*tx_duty)(struct mac_ax_adapter *adapter,
15503 		       u16 pause_intvl, u16 tx_intvl);
15504 	u32 (*tx_duty_stop)(struct mac_ax_adapter *adapter);
15505 	u32 (*get_phy_rpt_cfg)(struct mac_ax_adapter *adapter,
15506 			       struct mac_ax_phy_rpt_cfg *cfg);
15507 #if MAC_AX_FEATURE_DBGCMD
15508 	s32 (*halmac_cmd)(struct mac_ax_adapter *adapter, char *input, char *output, u32 out_len);
15509 	void (*halmac_cmd_parser)(struct mac_ax_adapter *adapter,
15510 				  char input[][MAC_MAX_ARGV], u32 input_num, char *output,
15511 				  u32 out_len);
15512 #endif
15513 	/* FAST_CH_SW */
15514 	u32 (*fast_ch_sw)(struct mac_ax_adapter *adapter,
15515 			  struct mac_ax_fast_ch_sw_param *fast_ch_sw_param);
15516 	u32 (*fast_ch_sw_done)(struct mac_ax_adapter *adapter);
15517 	u32 (*get_fast_ch_sw_rpt)(struct mac_ax_adapter *adapter, u32 *fast_ch_sw_status_code);
15518 	u32 (*write_coex_mask)(struct mac_ax_adapter *adapter,
15519 			       u32 offset, u32 mask, u32 val);
15520 	u32 (*fw_dbg_dle_cfg)(struct mac_ax_adapter *adapter, bool lock);
15521 	void (*h2c_agg_en)(struct mac_ax_adapter *adapter, u8 enable);
15522 	void (*h2c_agg_flush)(struct mac_ax_adapter *adapter);
15523 	u32 (*h2c_agg_tx)(struct mac_ax_adapter *adapter);
15524 #if MAC_AX_FEATURE_DBGDEC
15525 	u32 (*fw_log_set_array)(struct mac_ax_adapter *adapter, void *symbol_ptr, u32 file_size);
15526 	u32 (*fw_log_unset_array)(struct mac_ax_adapter *adapter);
15527 #endif
15528 	u32 (*get_fw_status)(struct mac_ax_adapter *adapter);
15529 	u32 (*add_scanofld_ch)(struct mac_ax_adapter *adapter,
15530 			       struct mac_ax_scanofld_chinfo *chinfo,
15531 			       u8 send_h2c, u8 clear_after_send);
15532 	u32 (*scanofld)(struct mac_ax_adapter *adapter, struct mac_ax_scanofld_param *scanParam);
15533 	u32 (*scanofld_fw_busy)(struct mac_ax_adapter *adapter);
15534 	u32 (*scanofld_chlist_busy)(struct mac_ax_adapter *adapter);
15535 	u32 (*role_sync)(struct mac_ax_adapter *adapter, struct mac_ax_role_info *info);
15536 	u32 (*ch_switch_ofld)(struct mac_ax_adapter *adapter, struct mac_ax_ch_switch_parm parm);
15537 	u32 (*get_ch_switch_rpt)(struct mac_ax_adapter *adapter, struct mac_ax_ch_switch_rpt *rpt);
15538 	u32 (*cfg_bcn_filter)(struct mac_ax_adapter *adapter, struct mac_ax_bcn_fltr cfg);
15539 	u32 (*bcn_filter_rssi)(struct mac_ax_adapter *adapter, u8 macid, u8 size, u8 *rssi);
15540 	u32 (*bcn_filter_tp)(struct mac_ax_adapter *adapter, u8 macid, u16 tx, u16 rx);
15541 };
15542 
15543 #endif
15544