1 /* SPDX-License-Identifier: ISC */
2 /* Copyright (C) 2020 MediaTek Inc. */
3 
4 #ifndef __MT7921_MAC_H
5 #define __MT7921_MAC_H
6 
7 #include "../mt76_connac2_mac.h"
8 
9 #define MT_CT_PARSE_LEN			72
10 #define MT_CT_DMA_BUF_NUM		2
11 
12 #define MT_RXD0_LENGTH			GENMASK(15, 0)
13 #define MT_RXD0_PKT_FLAG                GENMASK(19, 16)
14 #define MT_RXD0_PKT_TYPE		GENMASK(31, 27)
15 
16 #define MT_RXD0_NORMAL_ETH_TYPE_OFS	GENMASK(22, 16)
17 #define MT_RXD0_NORMAL_IP_SUM		BIT(23)
18 #define MT_RXD0_NORMAL_UDP_TCP_SUM	BIT(24)
19 
20 enum rx_pkt_type {
21 	PKT_TYPE_TXS,
22 	PKT_TYPE_TXRXV,
23 	PKT_TYPE_NORMAL,
24 	PKT_TYPE_RX_DUP_RFB,
25 	PKT_TYPE_RX_TMR,
26 	PKT_TYPE_RETRIEVE,
27 	PKT_TYPE_TXRX_NOTIFY,
28 	PKT_TYPE_RX_EVENT,
29 	PKT_TYPE_NORMAL_MCU,
30 };
31 
32 #define MT_TX_FREE_MSDU_CNT		GENMASK(9, 0)
33 #define MT_TX_FREE_WLAN_ID		GENMASK(23, 14)
34 #define MT_TX_FREE_LATENCY		GENMASK(12, 0)
35 /* 0: success, others: dropped */
36 #define MT_TX_FREE_STATUS		GENMASK(14, 13)
37 #define MT_TX_FREE_MSDU_ID		GENMASK(30, 16)
38 #define MT_TX_FREE_PAIR			BIT(31)
39 /* will support this field in further revision */
40 #define MT_TX_FREE_RATE			GENMASK(13, 0)
41 
42 #define MT_WTBL_TXRX_CAP_RATE_OFFSET	7
43 #define MT_WTBL_TXRX_RATE_G2_HE		24
44 #define MT_WTBL_TXRX_RATE_G2		12
45 
46 #define MT_WTBL_AC0_CTT_OFFSET		20
47 
mt7921_mac_wtbl_lmac_addr(int idx,u8 offset)48 static inline u32 mt7921_mac_wtbl_lmac_addr(int idx, u8 offset)
49 {
50 	return MT_WTBL_LMAC_OFFS(idx, 0) + offset * 4;
51 }
52 
53 #endif
54