Lines Matching +full:ats +full:- +full:supported

1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
14 unsigned int tdes3 = le32_to_cpu(p->des3); in dwxgmac2_get_tx_status()
28 unsigned int rdes3 = le32_to_cpu(p->des3); in dwxgmac2_get_rx_status()
44 return (le32_to_cpu(p->des2) & XGMAC_TDES2_B1L); in dwxgmac2_get_tx_len()
49 return (le32_to_cpu(p->des3) & XGMAC_TDES3_OWN) > 0; in dwxgmac2_get_tx_owner()
54 p->des3 |= cpu_to_le32(XGMAC_TDES3_OWN); in dwxgmac2_set_tx_owner()
64 p->des3 |= cpu_to_le32(flags); in dwxgmac2_set_rx_owner()
69 return (le32_to_cpu(p->des3) & XGMAC_RDES3_LD) > 0; in dwxgmac2_get_tx_ls()
74 return (le32_to_cpu(p->des3) & XGMAC_RDES3_PL); in dwxgmac2_get_rx_frame_len()
79 p->des2 |= cpu_to_le32(XGMAC_TDES2_TTSE); in dwxgmac2_enable_tx_timestamp()
84 return 0; /* Not supported */ in dwxgmac2_get_tx_timestamp_status()
87 static inline void dwxgmac2_get_timestamp(void *desc, u32 ats, u64 *ts) in dwxgmac2_get_timestamp() argument
92 ns += le32_to_cpu(p->des1) * 1000000000ULL; in dwxgmac2_get_timestamp()
93 ns += le32_to_cpu(p->des0); in dwxgmac2_get_timestamp()
101 unsigned int rdes3 = le32_to_cpu(p->des3); in dwxgmac2_rx_check_timestamp()
110 if ((p->des0 == 0xffffffff) && (p->des1 == 0xffffffff)) in dwxgmac2_rx_check_timestamp()
111 return -EINVAL; in dwxgmac2_rx_check_timestamp()
115 return -EINVAL; in dwxgmac2_rx_check_timestamp()
119 u32 ats) in dwxgmac2_get_rx_timestamp_status() argument
122 unsigned int rdes3 = le32_to_cpu(p->des3); in dwxgmac2_get_rx_timestamp_status()
123 int ret = -EBUSY; in dwxgmac2_get_rx_timestamp_status()
139 p->des0 = 0; in dwxgmac2_init_tx_desc()
140 p->des1 = 0; in dwxgmac2_init_tx_desc()
141 p->des2 = 0; in dwxgmac2_init_tx_desc()
142 p->des3 = 0; in dwxgmac2_init_tx_desc()
149 unsigned int tdes3 = le32_to_cpu(p->des3); in dwxgmac2_prepare_tx_desc()
151 p->des2 |= cpu_to_le32(len & XGMAC_TDES2_B1L); in dwxgmac2_prepare_tx_desc()
180 p->des3 = cpu_to_le32(tdes3); in dwxgmac2_prepare_tx_desc()
188 unsigned int tdes3 = le32_to_cpu(p->des3); in dwxgmac2_prepare_tso_tx_desc()
191 p->des2 |= cpu_to_le32(len1 & XGMAC_TDES2_B1L); in dwxgmac2_prepare_tso_tx_desc()
193 p->des2 |= cpu_to_le32((len2 << XGMAC_TDES2_B2L_SHIFT) & in dwxgmac2_prepare_tso_tx_desc()
220 p->des3 = cpu_to_le32(tdes3); in dwxgmac2_prepare_tso_tx_desc()
225 p->des0 = 0; in dwxgmac2_release_tx_desc()
226 p->des1 = 0; in dwxgmac2_release_tx_desc()
227 p->des2 = 0; in dwxgmac2_release_tx_desc()
228 p->des3 = 0; in dwxgmac2_release_tx_desc()
233 p->des2 |= cpu_to_le32(XGMAC_TDES2_IOC); in dwxgmac2_set_tx_ic()
238 p->des0 = 0; in dwxgmac2_set_mss()
239 p->des1 = 0; in dwxgmac2_set_mss()
240 p->des2 = cpu_to_le32(mss); in dwxgmac2_set_mss()
241 p->des3 = cpu_to_le32(XGMAC_TDES3_CTXT | XGMAC_TDES3_TCMSSV); in dwxgmac2_set_mss()
246 p->des0 = cpu_to_le32(lower_32_bits(addr)); in dwxgmac2_set_addr()
247 p->des1 = cpu_to_le32(upper_32_bits(addr)); in dwxgmac2_set_addr()
252 p->des0 = 0; in dwxgmac2_clear()
253 p->des1 = 0; in dwxgmac2_clear()
254 p->des2 = 0; in dwxgmac2_clear()
255 p->des3 = 0; in dwxgmac2_clear()
261 unsigned int rdes3 = le32_to_cpu(p->des3); in dwxgmac2_get_rx_hash()
279 *hash = le32_to_cpu(p->des1); in dwxgmac2_get_rx_hash()
283 return -EINVAL; in dwxgmac2_get_rx_hash()
288 if (le32_to_cpu(p->des3) & XGMAC_RDES3_L34T) in dwxgmac2_get_rx_header_len()
289 *len = le32_to_cpu(p->des2) & XGMAC_RDES2_HL; in dwxgmac2_get_rx_header_len()
294 p->des2 = cpu_to_le32(lower_32_bits(addr)); in dwxgmac2_set_sec_addr()
295 p->des3 = cpu_to_le32(upper_32_bits(addr)); in dwxgmac2_set_sec_addr()
302 p->des3 |= cpu_to_le32(sarc_type & XGMAC_TDES3_SAIC); in dwxgmac2_set_sarc()
308 p->des0 = 0; in dwxgmac2_set_vlan_tag()
309 p->des1 = 0; in dwxgmac2_set_vlan_tag()
310 p->des2 = 0; in dwxgmac2_set_vlan_tag()
311 p->des3 = 0; in dwxgmac2_set_vlan_tag()
318 p->des2 = cpu_to_le32(des); in dwxgmac2_set_vlan_tag()
322 p->des3 = cpu_to_le32(des | XGMAC_TDES3_IVLTV); in dwxgmac2_set_vlan_tag()
326 p->des3 |= cpu_to_le32(tag & XGMAC_TDES3_VT); in dwxgmac2_set_vlan_tag()
327 p->des3 |= cpu_to_le32(XGMAC_TDES3_VLTV); in dwxgmac2_set_vlan_tag()
329 p->des3 |= cpu_to_le32(XGMAC_TDES3_CTXT); in dwxgmac2_set_vlan_tag()
335 p->des2 |= cpu_to_le32(type & XGMAC_TDES2_VTIR); in dwxgmac2_set_vlan()
340 p->des4 = cpu_to_le32((sec & XGMAC_TDES0_LT) | XGMAC_TDES0_LTV); in dwxgmac2_set_tbs()
341 p->des5 = cpu_to_le32(nsec & XGMAC_TDES1_LT); in dwxgmac2_set_tbs()
342 p->des6 = 0; in dwxgmac2_set_tbs()
343 p->des7 = 0; in dwxgmac2_set_tbs()