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