Skip to content

Commit 4e9011f

Browse files
LorenzoBianconinbd168
authored andcommitted
wifi: mt76: connac: move connac3 definitions in mt76_connac3_mac.h
Connac3 mac definitions are shared between WiFi7 chipsets so move them in mt76_connac3_mac.h Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by: Felix Fietkau <nbd@nbd.name>
1 parent 0cb065b commit 4e9011f

File tree

2 files changed

+326
-314
lines changed

2 files changed

+326
-314
lines changed
Lines changed: 325 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,325 @@
1+
/* SPDX-License-Identifier: ISC */
2+
/* Copyright (C) 2023 MediaTek Inc. */
3+
4+
#ifndef __MT76_CONNAC3_MAC_H
5+
#define __MT76_CONNAC3_MAC_H
6+
7+
#define MT_CT_PARSE_LEN 72
8+
#define MT_CT_DMA_BUF_NUM 2
9+
10+
#define MT_RXD0_LENGTH GENMASK(15, 0)
11+
#define MT_RXD0_PKT_FLAG GENMASK(19, 16)
12+
#define MT_RXD0_PKT_TYPE GENMASK(31, 27)
13+
14+
#define MT_RXD0_MESH BIT(18)
15+
#define MT_RXD0_MHCP BIT(19)
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+
#define MT_RXD0_SW_PKT_TYPE_MASK GENMASK(31, 16)
21+
#define MT_RXD0_SW_PKT_TYPE_MAP 0x380F
22+
#define MT_RXD0_SW_PKT_TYPE_FRAME 0x3801
23+
24+
/* RXD DW1 */
25+
#define MT_RXD1_NORMAL_WLAN_IDX GENMASK(11, 0)
26+
#define MT_RXD1_NORMAL_GROUP_1 BIT(16)
27+
#define MT_RXD1_NORMAL_GROUP_2 BIT(17)
28+
#define MT_RXD1_NORMAL_GROUP_3 BIT(18)
29+
#define MT_RXD1_NORMAL_GROUP_4 BIT(19)
30+
#define MT_RXD1_NORMAL_GROUP_5 BIT(20)
31+
#define MT_RXD1_NORMAL_KEY_ID GENMASK(22, 21)
32+
#define MT_RXD1_NORMAL_CM BIT(23)
33+
#define MT_RXD1_NORMAL_CLM BIT(24)
34+
#define MT_RXD1_NORMAL_ICV_ERR BIT(25)
35+
#define MT_RXD1_NORMAL_TKIP_MIC_ERR BIT(26)
36+
#define MT_RXD1_NORMAL_BAND_IDX GENMASK(28, 27)
37+
#define MT_RXD1_NORMAL_SPP_EN BIT(29)
38+
#define MT_RXD1_NORMAL_ADD_OM BIT(30)
39+
#define MT_RXD1_NORMAL_SEC_DONE BIT(31)
40+
41+
/* RXD DW2 */
42+
#define MT_RXD2_NORMAL_BSSID GENMASK(5, 0)
43+
#define MT_RXD2_NORMAL_MAC_HDR_LEN GENMASK(12, 8)
44+
#define MT_RXD2_NORMAL_HDR_TRANS BIT(7)
45+
#define MT_RXD2_NORMAL_HDR_OFFSET GENMASK(15, 13)
46+
#define MT_RXD2_NORMAL_SEC_MODE GENMASK(20, 16)
47+
#define MT_RXD2_NORMAL_MU_BAR BIT(21)
48+
#define MT_RXD2_NORMAL_SW_BIT BIT(22)
49+
#define MT_RXD2_NORMAL_AMSDU_ERR BIT(23)
50+
#define MT_RXD2_NORMAL_MAX_LEN_ERROR BIT(24)
51+
#define MT_RXD2_NORMAL_HDR_TRANS_ERROR BIT(25)
52+
#define MT_RXD2_NORMAL_INT_FRAME BIT(26)
53+
#define MT_RXD2_NORMAL_FRAG BIT(27)
54+
#define MT_RXD2_NORMAL_NULL_FRAME BIT(28)
55+
#define MT_RXD2_NORMAL_NDATA BIT(29)
56+
#define MT_RXD2_NORMAL_NON_AMPDU BIT(30)
57+
#define MT_RXD2_NORMAL_BF_REPORT BIT(31)
58+
59+
/* RXD DW3 */
60+
#define MT_RXD3_NORMAL_RXV_SEQ GENMASK(7, 0)
61+
#define MT_RXD3_NORMAL_CH_FREQ GENMASK(15, 8)
62+
#define MT_RXD3_NORMAL_ADDR_TYPE GENMASK(17, 16)
63+
#define MT_RXD3_NORMAL_U2M BIT(0)
64+
#define MT_RXD3_NORMAL_HTC_VLD BIT(18)
65+
#define MT_RXD3_NORMAL_BEACON_MC BIT(20)
66+
#define MT_RXD3_NORMAL_BEACON_UC BIT(21)
67+
#define MT_RXD3_NORMAL_CO_ANT BIT(22)
68+
#define MT_RXD3_NORMAL_FCS_ERR BIT(24)
69+
#define MT_RXD3_NORMAL_VLAN2ETH BIT(31)
70+
71+
/* RXD DW4 */
72+
#define MT_RXD4_NORMAL_PAYLOAD_FORMAT GENMASK(1, 0)
73+
#define MT_RXD4_FIRST_AMSDU_FRAME GENMASK(1, 0)
74+
#define MT_RXD4_MID_AMSDU_FRAME BIT(1)
75+
#define MT_RXD4_LAST_AMSDU_FRAME BIT(0)
76+
77+
#define MT_RXV_HDR_BAND_IDX BIT(24)
78+
79+
/* RXD GROUP4 */
80+
#define MT_RXD8_FRAME_CONTROL GENMASK(15, 0)
81+
82+
#define MT_RXD10_SEQ_CTRL GENMASK(15, 0)
83+
#define MT_RXD10_QOS_CTL GENMASK(31, 16)
84+
85+
#define MT_RXD11_HT_CONTROL GENMASK(31, 0)
86+
87+
/* P-RXV */
88+
#define MT_PRXV_TX_RATE GENMASK(6, 0)
89+
#define MT_PRXV_TX_DCM BIT(4)
90+
#define MT_PRXV_TX_ER_SU_106T BIT(5)
91+
#define MT_PRXV_NSTS GENMASK(10, 7)
92+
#define MT_PRXV_TXBF BIT(11)
93+
#define MT_PRXV_HT_AD_CODE BIT(12)
94+
#define MT_PRXV_HE_RU_ALLOC GENMASK(30, 22)
95+
#define MT_PRXV_RCPI3 GENMASK(31, 24)
96+
#define MT_PRXV_RCPI2 GENMASK(23, 16)
97+
#define MT_PRXV_RCPI1 GENMASK(15, 8)
98+
#define MT_PRXV_RCPI0 GENMASK(7, 0)
99+
#define MT_PRXV_HT_SHORT_GI GENMASK(4, 3)
100+
#define MT_PRXV_HT_STBC GENMASK(10, 9)
101+
#define MT_PRXV_TX_MODE GENMASK(14, 11)
102+
#define MT_PRXV_FRAME_MODE GENMASK(2, 0)
103+
#define MT_PRXV_DCM BIT(5)
104+
105+
/* C-RXV */
106+
#define MT_CRXV_HE_NUM_USER GENMASK(26, 20)
107+
#define MT_CRXV_HE_LTF_SIZE GENMASK(28, 27)
108+
#define MT_CRXV_HE_LDPC_EXT_SYM BIT(30)
109+
110+
#define MT_CRXV_HE_PE_DISAMBIG BIT(1)
111+
#define MT_CRXV_HE_UPLINK BIT(2)
112+
113+
#define MT_CRXV_HE_MU_AID GENMASK(27, 17)
114+
#define MT_CRXV_HE_BEAM_CHNG BIT(29)
115+
116+
#define MT_CRXV_HE_DOPPLER BIT(0)
117+
#define MT_CRXV_HE_BSS_COLOR GENMASK(15, 10)
118+
#define MT_CRXV_HE_TXOP_DUR GENMASK(19, 17)
119+
120+
#define MT_CRXV_HE_SR_MASK GENMASK(11, 8)
121+
#define MT_CRXV_HE_SR1_MASK GENMASK(16, 12)
122+
#define MT_CRXV_HE_SR2_MASK GENMASK(20, 17)
123+
#define MT_CRXV_HE_SR3_MASK GENMASK(24, 21)
124+
125+
#define MT_CRXV_HE_RU0 GENMASK(8, 0)
126+
#define MT_CRXV_HE_RU1 GENMASK(17, 9)
127+
#define MT_CRXV_HE_RU2 GENMASK(26, 18)
128+
#define MT_CRXV_HE_RU3_L GENMASK(31, 27)
129+
#define MT_CRXV_HE_RU3_H GENMASK(3, 0)
130+
131+
enum tx_header_format {
132+
MT_HDR_FORMAT_802_3,
133+
MT_HDR_FORMAT_CMD,
134+
MT_HDR_FORMAT_802_11,
135+
MT_HDR_FORMAT_802_11_EXT,
136+
};
137+
138+
enum tx_pkt_type {
139+
MT_TX_TYPE_CT,
140+
MT_TX_TYPE_SF,
141+
MT_TX_TYPE_CMD,
142+
MT_TX_TYPE_FW,
143+
};
144+
145+
enum tx_port_idx {
146+
MT_TX_PORT_IDX_LMAC,
147+
MT_TX_PORT_IDX_MCU
148+
};
149+
150+
enum tx_mcu_port_q_idx {
151+
MT_TX_MCU_PORT_RX_Q0 = 0x20,
152+
MT_TX_MCU_PORT_RX_Q1,
153+
MT_TX_MCU_PORT_RX_Q2,
154+
MT_TX_MCU_PORT_RX_Q3,
155+
MT_TX_MCU_PORT_RX_FWDL = 0x3e
156+
};
157+
158+
enum tx_mgnt_type {
159+
MT_TX_NORMAL,
160+
MT_TX_TIMING,
161+
MT_TX_ADDBA,
162+
};
163+
164+
#define MT_CT_INFO_APPLY_TXD BIT(0)
165+
#define MT_CT_INFO_COPY_HOST_TXD_ALL BIT(1)
166+
#define MT_CT_INFO_MGMT_FRAME BIT(2)
167+
#define MT_CT_INFO_NONE_CIPHER_FRAME BIT(3)
168+
#define MT_CT_INFO_HSR2_TX BIT(4)
169+
#define MT_CT_INFO_FROM_HOST BIT(7)
170+
171+
#define MT_TXD_SIZE (8 * 4)
172+
173+
#define MT_TXD0_Q_IDX GENMASK(31, 25)
174+
#define MT_TXD0_PKT_FMT GENMASK(24, 23)
175+
#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16)
176+
#define MT_TXD0_TX_BYTES GENMASK(15, 0)
177+
178+
#define MT_TXD1_FIXED_RATE BIT(31)
179+
#define MT_TXD1_OWN_MAC GENMASK(30, 25)
180+
#define MT_TXD1_TID GENMASK(24, 21)
181+
#define MT_TXD1_BIP BIT(24)
182+
#define MT_TXD1_ETH_802_3 BIT(20)
183+
#define MT_TXD1_HDR_INFO GENMASK(20, 16)
184+
#define MT_TXD1_HDR_FORMAT GENMASK(15, 14)
185+
#define MT_TXD1_TGID GENMASK(13, 12)
186+
#define MT_TXD1_WLAN_IDX GENMASK(11, 0)
187+
188+
#define MT_TXD2_POWER_OFFSET GENMASK(31, 26)
189+
#define MT_TXD2_MAX_TX_TIME GENMASK(25, 16)
190+
#define MT_TXD2_FRAG GENMASK(15, 14)
191+
#define MT_TXD2_HTC_VLD BIT(13)
192+
#define MT_TXD2_DURATION BIT(12)
193+
#define MT_TXD2_HDR_PAD GENMASK(11, 10)
194+
#define MT_TXD2_RTS BIT(9)
195+
#define MT_TXD2_OWN_MAC_MAP BIT(8)
196+
#define MT_TXD2_BF_TYPE GENMASK(6, 7)
197+
#define MT_TXD2_FRAME_TYPE GENMASK(5, 4)
198+
#define MT_TXD2_SUB_TYPE GENMASK(3, 0)
199+
200+
#define MT_TXD3_SN_VALID BIT(31)
201+
#define MT_TXD3_PN_VALID BIT(30)
202+
#define MT_TXD3_SW_POWER_MGMT BIT(29)
203+
#define MT_TXD3_BA_DISABLE BIT(28)
204+
#define MT_TXD3_SEQ GENMASK(27, 16)
205+
#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11)
206+
#define MT_TXD3_TX_COUNT GENMASK(10, 6)
207+
#define MT_TXD3_HW_AMSDU BIT(5)
208+
#define MT_TXD3_BCM BIT(4)
209+
#define MT_TXD3_EEOSP BIT(3)
210+
#define MT_TXD3_EMRD BIT(2)
211+
#define MT_TXD3_PROTECT_FRAME BIT(1)
212+
#define MT_TXD3_NO_ACK BIT(0)
213+
214+
#define MT_TXD4_PN_LOW GENMASK(31, 0)
215+
216+
#define MT_TXD5_PN_HIGH GENMASK(31, 16)
217+
#define MT_TXD5_FL BIT(15)
218+
#define MT_TXD5_BYPASS_TBB BIT(14)
219+
#define MT_TXD5_BYPASS_RBB BIT(13)
220+
#define MT_TXD5_BSS_COLOR_ZERO BIT(12)
221+
#define MT_TXD5_TX_STATUS_HOST BIT(10)
222+
#define MT_TXD5_TX_STATUS_MCU BIT(9)
223+
#define MT_TXD5_TX_STATUS_FMT BIT(8)
224+
#define MT_TXD5_PID GENMASK(7, 0)
225+
226+
#define MT_TXD6_TX_SRC GENMASK(31, 30)
227+
#define MT_TXD6_VTA BIT(28)
228+
#define MT_TXD6_BW GENMASK(25, 22)
229+
#define MT_TXD6_TX_RATE GENMASK(21, 16)
230+
#define MT_TXD6_TIMESTAMP_OFS_EN BIT(15)
231+
#define MT_TXD6_TIMESTAMP_OFS_IDX GENMASK(14, 10)
232+
#define MT_TXD6_MSDU_CNT GENMASK(9, 4)
233+
#define MT_TXD6_DIS_MAT BIT(3)
234+
#define MT_TXD6_DAS BIT(2)
235+
#define MT_TXD6_AMSDU_CAP BIT(1)
236+
237+
#define MT_TXD7_TXD_LEN GENMASK(31, 30)
238+
#define MT_TXD7_IP_SUM BIT(29)
239+
#define MT_TXD7_DROP_BY_SDO BIT(28)
240+
#define MT_TXD7_MAC_TXD BIT(27)
241+
#define MT_TXD7_CTXD BIT(26)
242+
#define MT_TXD7_CTXD_CNT GENMASK(25, 22)
243+
#define MT_TXD7_UDP_TCP_SUM BIT(15)
244+
#define MT_TXD7_TX_TIME GENMASK(9, 0)
245+
246+
#define MT_TX_RATE_STBC BIT(14)
247+
#define MT_TX_RATE_NSS GENMASK(13, 10)
248+
#define MT_TX_RATE_MODE GENMASK(9, 6)
249+
#define MT_TX_RATE_SU_EXT_TONE BIT(5)
250+
#define MT_TX_RATE_DCM BIT(4)
251+
/* VHT/HE only use bits 0-3 */
252+
#define MT_TX_RATE_IDX GENMASK(5, 0)
253+
254+
#define MT_TXFREE0_PKT_TYPE GENMASK(31, 27)
255+
#define MT_TXFREE0_MSDU_CNT GENMASK(25, 16)
256+
#define MT_TXFREE0_RX_BYTE GENMASK(15, 0)
257+
258+
#define MT_TXFREE1_VER GENMASK(18, 16)
259+
260+
#define MT_TXFREE_INFO_PAIR BIT(31)
261+
#define MT_TXFREE_INFO_HEADER BIT(30)
262+
#define MT_TXFREE_INFO_WLAN_ID GENMASK(23, 12)
263+
#define MT_TXFREE_INFO_MSDU_ID GENMASK(14, 0)
264+
#define MT_TXFREE_INFO_COUNT GENMASK(27, 24)
265+
#define MT_TXFREE_INFO_STAT GENMASK(29, 28)
266+
267+
#define MT_TXS0_BW GENMASK(31, 29)
268+
#define MT_TXS0_TID GENMASK(28, 26)
269+
#define MT_TXS0_AMPDU BIT(25)
270+
#define MT_TXS0_TXS_FORMAT GENMASK(24, 23)
271+
#define MT_TXS0_BA_ERROR BIT(22)
272+
#define MT_TXS0_PS_FLAG BIT(21)
273+
#define MT_TXS0_TXOP_TIMEOUT BIT(20)
274+
#define MT_TXS0_BIP_ERROR BIT(19)
275+
276+
#define MT_TXS0_QUEUE_TIMEOUT BIT(18)
277+
#define MT_TXS0_RTS_TIMEOUT BIT(17)
278+
#define MT_TXS0_ACK_TIMEOUT BIT(16)
279+
#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16)
280+
281+
#define MT_TXS0_TX_STATUS_HOST BIT(15)
282+
#define MT_TXS0_TX_STATUS_MCU BIT(14)
283+
#define MT_TXS0_TX_RATE GENMASK(13, 0)
284+
285+
#define MT_TXS1_SEQNO GENMASK(31, 20)
286+
#define MT_TXS1_RESP_RATE GENMASK(19, 16)
287+
#define MT_TXS1_RXV_SEQNO GENMASK(15, 8)
288+
#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0)
289+
290+
#define MT_TXS2_BF_STATUS GENMASK(31, 30)
291+
#define MT_TXS2_BAND GENMASK(29, 28)
292+
#define MT_TXS2_WCID GENMASK(27, 16)
293+
#define MT_TXS2_TX_DELAY GENMASK(15, 0)
294+
295+
#define MT_TXS3_PID GENMASK(31, 24)
296+
#define MT_TXS3_RATE_STBC BIT(7)
297+
#define MT_TXS3_FIXED_RATE BIT(6)
298+
#define MT_TXS3_SRC GENMASK(5, 4)
299+
#define MT_TXS3_SHARED_ANTENNA BIT(3)
300+
#define MT_TXS3_LAST_TX_RATE GENMASK(2, 0)
301+
302+
#define MT_TXS4_TIMESTAMP GENMASK(31, 0)
303+
304+
#define MT_TXS5_F0_FINAL_MPDU BIT(31)
305+
#define MT_TXS5_F0_QOS BIT(30)
306+
#define MT_TXS5_F0_TX_COUNT GENMASK(29, 25)
307+
#define MT_TXS5_F0_FRONT_TIME GENMASK(24, 0)
308+
#define MT_TXS5_F1_MPDU_TX_COUNT GENMASK(31, 24)
309+
#define MT_TXS5_F1_MPDU_TX_BYTES GENMASK(23, 0)
310+
311+
#define MT_TXS6_F0_NOISE_3 GENMASK(31, 24)
312+
#define MT_TXS6_F0_NOISE_2 GENMASK(23, 16)
313+
#define MT_TXS6_F0_NOISE_1 GENMASK(15, 8)
314+
#define MT_TXS6_F0_NOISE_0 GENMASK(7, 0)
315+
#define MT_TXS6_F1_MPDU_FAIL_COUNT GENMASK(31, 24)
316+
#define MT_TXS6_F1_MPDU_FAIL_BYTES GENMASK(23, 0)
317+
318+
#define MT_TXS7_F0_RCPI_3 GENMASK(31, 24)
319+
#define MT_TXS7_F0_RCPI_2 GENMASK(23, 16)
320+
#define MT_TXS7_F0_RCPI_1 GENMASK(15, 8)
321+
#define MT_TXS7_F0_RCPI_0 GENMASK(7, 0)
322+
#define MT_TXS7_F1_MPDU_RETRY_COUNT GENMASK(31, 24)
323+
#define MT_TXS7_F1_MPDU_RETRY_BYTES GENMASK(23, 0)
324+
325+
#endif /* __MT76_CONNAC3_MAC_H */

0 commit comments

Comments
 (0)