1 /******************************************************************************
3 * Copyright(c) 2016 - 2018 Realtek Corporation. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 ******************************************************************************/
16 #ifndef _HALMAC_RX_DESC_AP_H_
17 #define _HALMAC_RX_DESC_AP_H_
18 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
19 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
24 #define GET_RX_DESC_EOR(rxdesc) \
25 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
27 #define GET_RX_DESC_PHYPKTIDC(rxdesc) \
28 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
33 #if (HALMAC_8814B_SUPPORT)
35 #define GET_RX_DESC_EVT_PKT(rxdesc) \
36 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
41 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
42 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
43 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
45 #define GET_RX_DESC_SWDEC(rxdesc) \
46 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
48 #define GET_RX_DESC_PHYST(rxdesc) \
49 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
51 #define GET_RX_DESC_SHIFT(rxdesc) \
52 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x3, \
54 #define GET_RX_DESC_QOS(rxdesc) \
55 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
57 #define GET_RX_DESC_SECURITY(rxdesc) \
58 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x7, \
60 #define GET_RX_DESC_DRV_INFO_SIZE(rxdesc) \
61 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0xf, \
63 #define GET_RX_DESC_ICV_ERR(rxdesc) \
64 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
66 #define GET_RX_DESC_CRC32(rxdesc) \
67 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, 0x1, \
69 #define GET_RX_DESC_PKT_LEN(rxdesc) \
70 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword0, \
75 #define GET_RX_DESC_BC(rxdesc) \
76 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
78 #define GET_RX_DESC_MC(rxdesc) \
79 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
84 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
85 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
88 #define GET_RX_DESC_TY_PE(rxdesc) \
89 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x3, \
94 #if (HALMAC_8814B_SUPPORT)
96 #define GET_RX_DESC_TYPE(rxdesc) \
97 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x3, \
102 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
103 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
104 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
106 #define GET_RX_DESC_MF(rxdesc) \
107 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
109 #define GET_RX_DESC_MD(rxdesc) \
110 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
112 #define GET_RX_DESC_PWR(rxdesc) \
113 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
118 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
119 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
120 HALMAC_8812F_SUPPORT)
122 #define GET_RX_DESC_PAM(rxdesc) \
123 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
128 #if (HALMAC_8814B_SUPPORT)
130 #define GET_RX_DESC_A1_MATCH(rxdesc) \
131 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
136 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
137 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
138 HALMAC_8812F_SUPPORT)
140 #define GET_RX_DESC_CHK_VLD(rxdesc) \
141 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
146 #if (HALMAC_8814B_SUPPORT)
148 #define GET_RX_DESC_TCP_CHKSUM_VLD(rxdesc) \
149 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
154 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
155 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
156 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
158 #define GET_RX_DESC_RX_IS_TCP_UDP(rxdesc) \
159 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
161 #define GET_RX_DESC_RX_IPV(rxdesc) \
162 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
167 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
168 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
169 HALMAC_8812F_SUPPORT)
171 #define GET_RX_DESC_CHKERR(rxdesc) \
172 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
177 #if (HALMAC_8814B_SUPPORT)
179 #define GET_RX_DESC_TCP_CHKSUM_ERR(rxdesc) \
180 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
182 #define GET_RX_DESC_PHY_PKT_IDC(rxdesc) \
183 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
185 #define GET_RX_DESC_FW_FIFO_FULL(rxdesc) \
186 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
191 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
192 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
193 HALMAC_8812F_SUPPORT)
195 #define GET_RX_DESC_PAGGR(rxdesc) \
196 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
201 #if (HALMAC_8814B_SUPPORT)
203 #define GET_RX_DESC_AMPDU(rxdesc) \
204 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
209 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
210 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
211 HALMAC_8812F_SUPPORT)
213 #define GET_RX_DESC_RXID_MATCH(rxdesc) \
214 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
219 #if (HALMAC_8814B_SUPPORT)
221 #define GET_RX_DESC_RXCMD_IDC(rxdesc) \
222 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
227 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
228 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
229 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
231 #define GET_RX_DESC_AMSDU(rxdesc) \
232 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
237 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
238 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
239 HALMAC_8812F_SUPPORT)
241 #define GET_RX_DESC_MACID_VLD(rxdesc) \
242 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x1, \
247 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
248 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
249 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
251 #define GET_RX_DESC_TID(rxdesc) \
252 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0xf, 8)
256 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
257 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
258 HALMAC_8812F_SUPPORT)
260 #define GET_RX_DESC_MACID(rxdesc) \
261 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword1, 0x7f, \
266 #define GET_RX_DESC_FCS_OK(rxdesc) \
267 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
272 #if (HALMAC_8814B_SUPPORT)
274 #define GET_RX_DESC_AMSDU_CUT(rxdesc) \
275 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
280 #if (HALMAC_8822B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || \
281 HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
283 #define GET_RX_DESC_PPDU_CNT(rxdesc) \
284 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x3, \
289 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
290 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
291 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
293 #define GET_RX_DESC_C2H(rxdesc) \
294 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
299 #if (HALMAC_8198F_SUPPORT)
301 #define GET_RX_DESC_HWRSVD_V1(rxdesc) \
302 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x7, \
307 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
308 HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
310 #define GET_RX_DESC_HWRSVD(rxdesc) \
311 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0xf, \
316 #if (HALMAC_8198F_SUPPORT)
318 #define GET_RX_DESC_RXMAGPKT(rxdesc) \
319 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
324 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
325 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
326 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
328 #define GET_RX_DESC_WLANHD_IV_LEN(rxdesc) \
329 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x3f, \
334 #if (HALMAC_8814B_SUPPORT)
336 #define GET_RX_DESC_LAST_MSDU(rxdesc) \
337 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
342 #if (HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
344 #define GET_RX_DESC_RX_STATISTICS(rxdesc) \
345 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
350 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
351 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
352 HALMAC_8812F_SUPPORT)
354 #define GET_RX_DESC_RX_IS_QOS(rxdesc) \
355 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
360 #if (HALMAC_8814B_SUPPORT)
362 #define GET_RX_DESC_EXT_SEC_TYPE(rxdesc) \
363 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0x1, \
368 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
369 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
370 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
372 #define GET_RX_DESC_FRAG(rxdesc) \
373 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, 0xf, \
375 #define GET_RX_DESC_SEQ(rxdesc) \
376 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword2, \
381 #define GET_RX_DESC_MAGIC_WAKE(rxdesc) \
382 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
384 #define GET_RX_DESC_UNICAST_WAKE(rxdesc) \
385 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
390 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
391 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
392 HALMAC_8812F_SUPPORT)
394 #define GET_RX_DESC_PATTERN_MATCH(rxdesc) \
395 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
400 #if (HALMAC_8814B_SUPPORT)
402 #define GET_RX_DESC_PATTERN_WAKE(rxdesc) \
403 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
408 #if (HALMAC_8822B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || \
409 HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
411 #define GET_RX_DESC_RXPAYLOAD_MATCH(rxdesc) \
412 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
414 #define GET_RX_DESC_RXPAYLOAD_ID(rxdesc) \
415 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0xf, \
420 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
421 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
422 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
424 #define GET_RX_DESC_DMA_AGG_NUM(rxdesc) \
425 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0xff, \
430 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
431 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
432 HALMAC_8812F_SUPPORT)
434 #define GET_RX_DESC_BSSID_FIT_1_0(rxdesc) \
435 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x3, \
437 #define GET_RX_DESC_EOSP(rxdesc) \
438 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
443 #if (HALMAC_8814B_SUPPORT)
445 #define GET_RX_DESC_BSSID_FIT(rxdesc) \
446 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1f, \
451 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
452 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
453 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
455 #define GET_RX_DESC_HTC(rxdesc) \
456 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, \
461 #if (HALMAC_8814B_SUPPORT)
463 #define GET_RX_DESC_AMPDU_END_PKT(rxdesc) \
464 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, 9)
465 #define GET_RX_DESC_ADDRESS_CAM_VLD(rxdesc) \
466 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, 8)
470 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
471 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
472 HALMAC_8812F_SUPPORT)
474 #define GET_RX_DESC_BSSID_FIT_4_2(rxdesc) \
475 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x7, 7)
479 #if (HALMAC_8814B_SUPPORT)
481 #define GET_RX_DESC_EOSP_V1(rxdesc) \
482 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x1, 7)
486 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
487 HALMAC_8821C_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT || \
488 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
490 #define GET_RX_DESC_RX_RATE(rxdesc) \
491 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword3, 0x7f, \
496 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
497 HALMAC_8821C_SUPPORT || HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
501 #define GET_RX_DESC_A1_FIT(rxdesc) \
502 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1f, \
507 #if (HALMAC_8814B_SUPPORT)
509 #define GET_RX_DESC_ADDRESS_CAM(rxdesc) \
510 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0xff, \
515 #if (HALMAC_8198F_SUPPORT)
517 #define GET_RX_DESC_A1_FIT_A1(rxdesc) \
518 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x7f, \
523 #if (HALMAC_8814B_SUPPORT)
525 #define GET_RX_DESC_MACID_VLD_V1(rxdesc) \
526 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, \
531 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
532 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
533 HALMAC_8812F_SUPPORT)
535 #define GET_RX_DESC_MACID_RPT_BUFF(rxdesc) \
536 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x7f, \
538 #define GET_RX_DESC_RX_PRE_NDP_VLD(rxdesc) \
539 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, \
544 #if (HALMAC_8814B_SUPPORT)
546 #define GET_RX_DESC_MACID_V1(rxdesc) \
547 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0xff, \
552 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
553 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
554 HALMAC_8812F_SUPPORT)
556 #define GET_RX_DESC_RX_SCRAMBLER(rxdesc) \
557 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x7f, \
559 #define GET_RX_DESC_RX_EOF(rxdesc) \
560 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, 8)
564 #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
566 #define GET_RX_DESC_FC_POWER(rxdesc) \
567 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, 7)
571 #if (HALMAC_8198F_SUPPORT)
573 #define GET_RX_DESC_TXRPTMID_CTL_MASK(rxdesc) \
574 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, 6)
578 #if (HALMAC_8814B_SUPPORT || HALMAC_8198F_SUPPORT)
580 #define GET_RX_DESC_SWPS_RPT(rxdesc) \
581 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1, 5)
585 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8821C_SUPPORT || \
586 HALMAC_8822C_SUPPORT || HALMAC_8812F_SUPPORT)
588 #define GET_RX_DESC_PATTERN_IDX(rxdesc) \
589 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0xff, \
594 #if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)
596 #define GET_RX_DESC_PATTERN_IDX_V1(rxdesc) \
597 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1f, \
602 #if (HALMAC_8814B_SUPPORT)
604 #define GET_RX_DESC_PATTERN_IDX_V2(rxdesc) \
605 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword4, 0x1f, \
610 #if (HALMAC_8814A_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8197F_SUPPORT || \
611 HALMAC_8821C_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822C_SUPPORT || \
612 HALMAC_8812F_SUPPORT)
616 #define GET_RX_DESC_TSFL(rxdesc) \
617 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword5, \
622 #if (HALMAC_8814B_SUPPORT)
624 #define GET_RX_DESC_FREERUN_CNT(rxdesc) \
625 HALMAC_GET_DESC_FIELD(((struct halmac_rx_desc *)rxdesc)->dword5, \