1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2019, Vladimir Oltean <olteanv@gmail.com>
3  */
4 #ifndef _SJA1105_TAS_H
5 #define _SJA1105_TAS_H
6 
7 #include <net/pkt_sched.h>
8 
9 #if IS_ENABLED(CONFIG_NET_DSA_SJA1105_TAS)
10 
11 struct sja1105_tas_data {
12 	struct tc_taprio_qopt_offload *offload[SJA1105_NUM_PORTS];
13 };
14 
15 int sja1105_setup_tc_taprio(struct dsa_switch *ds, int port,
16 			    struct tc_taprio_qopt_offload *admin);
17 
18 void sja1105_tas_setup(struct dsa_switch *ds);
19 
20 void sja1105_tas_teardown(struct dsa_switch *ds);
21 
22 #else
23 
24 /* C doesn't allow empty structures, bah! */
25 struct sja1105_tas_data {
26 	u8 dummy;
27 };
28 
29 static inline int sja1105_setup_tc_taprio(struct dsa_switch *ds, int port,
30 					  struct tc_taprio_qopt_offload *admin)
31 {
32 	return -EOPNOTSUPP;
33 }
34 
35 static inline void sja1105_tas_setup(struct dsa_switch *ds) { }
36 
37 static inline void sja1105_tas_teardown(struct dsa_switch *ds) { }
38 
39 #endif /* IS_ENABLED(CONFIG_NET_DSA_SJA1105_TAS) */
40 
41 #endif /* _SJA1105_TAS_H */
42