xref: /openbmc/linux/drivers/net/dsa/sja1105/sja1105_tas.h (revision b790b5549bdf498ab0ecc5632610a9149532fa38)
1*b790b554SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */
2*b790b554SNishad Kamdar /* Copyright (c) 2019, Vladimir Oltean <olteanv@gmail.com>
3317ab5b8SVladimir Oltean  */
4317ab5b8SVladimir Oltean #ifndef _SJA1105_TAS_H
5317ab5b8SVladimir Oltean #define _SJA1105_TAS_H
6317ab5b8SVladimir Oltean 
7317ab5b8SVladimir Oltean #include <net/pkt_sched.h>
8317ab5b8SVladimir Oltean 
9317ab5b8SVladimir Oltean #if IS_ENABLED(CONFIG_NET_DSA_SJA1105_TAS)
10317ab5b8SVladimir Oltean 
11317ab5b8SVladimir Oltean struct sja1105_tas_data {
12317ab5b8SVladimir Oltean 	struct tc_taprio_qopt_offload *offload[SJA1105_NUM_PORTS];
13317ab5b8SVladimir Oltean };
14317ab5b8SVladimir Oltean 
15317ab5b8SVladimir Oltean int sja1105_setup_tc_taprio(struct dsa_switch *ds, int port,
16317ab5b8SVladimir Oltean 			    struct tc_taprio_qopt_offload *admin);
17317ab5b8SVladimir Oltean 
18317ab5b8SVladimir Oltean void sja1105_tas_setup(struct dsa_switch *ds);
19317ab5b8SVladimir Oltean 
20317ab5b8SVladimir Oltean void sja1105_tas_teardown(struct dsa_switch *ds);
21317ab5b8SVladimir Oltean 
22317ab5b8SVladimir Oltean #else
23317ab5b8SVladimir Oltean 
24317ab5b8SVladimir Oltean /* C doesn't allow empty structures, bah! */
25317ab5b8SVladimir Oltean struct sja1105_tas_data {
26317ab5b8SVladimir Oltean 	u8 dummy;
27317ab5b8SVladimir Oltean };
28317ab5b8SVladimir Oltean 
29317ab5b8SVladimir Oltean static inline int sja1105_setup_tc_taprio(struct dsa_switch *ds, int port,
30317ab5b8SVladimir Oltean 					  struct tc_taprio_qopt_offload *admin)
31317ab5b8SVladimir Oltean {
32317ab5b8SVladimir Oltean 	return -EOPNOTSUPP;
33317ab5b8SVladimir Oltean }
34317ab5b8SVladimir Oltean 
35317ab5b8SVladimir Oltean static inline void sja1105_tas_setup(struct dsa_switch *ds) { }
36317ab5b8SVladimir Oltean 
37317ab5b8SVladimir Oltean static inline void sja1105_tas_teardown(struct dsa_switch *ds) { }
38317ab5b8SVladimir Oltean 
39317ab5b8SVladimir Oltean #endif /* IS_ENABLED(CONFIG_NET_DSA_SJA1105_TAS) */
40317ab5b8SVladimir Oltean 
41317ab5b8SVladimir Oltean #endif /* _SJA1105_TAS_H */
42