xref: /openbmc/linux/drivers/net/ethernet/microchip/lan966x/lan966x_mqprio.c (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
13c83431fSHoratiu Vultur // SPDX-License-Identifier: GPL-2.0+
23c83431fSHoratiu Vultur 
33c83431fSHoratiu Vultur #include "lan966x_main.h"
43c83431fSHoratiu Vultur 
lan966x_mqprio_add(struct lan966x_port * port,u8 num_tc)53c83431fSHoratiu Vultur int lan966x_mqprio_add(struct lan966x_port *port, u8 num_tc)
63c83431fSHoratiu Vultur {
73c83431fSHoratiu Vultur 	u8 i;
83c83431fSHoratiu Vultur 
93c83431fSHoratiu Vultur 	if (num_tc != NUM_PRIO_QUEUES) {
10*db7fccc1SColin Ian King 		netdev_err(port->dev, "Only %d traffic classes supported\n",
113c83431fSHoratiu Vultur 			   NUM_PRIO_QUEUES);
123c83431fSHoratiu Vultur 		return -EINVAL;
133c83431fSHoratiu Vultur 	}
143c83431fSHoratiu Vultur 
153c83431fSHoratiu Vultur 	netdev_set_num_tc(port->dev, num_tc);
163c83431fSHoratiu Vultur 
173c83431fSHoratiu Vultur 	for (i = 0; i < num_tc; ++i)
183c83431fSHoratiu Vultur 		netdev_set_tc_queue(port->dev, i, 1, i);
193c83431fSHoratiu Vultur 
203c83431fSHoratiu Vultur 	return 0;
213c83431fSHoratiu Vultur }
223c83431fSHoratiu Vultur 
lan966x_mqprio_del(struct lan966x_port * port)233c83431fSHoratiu Vultur int lan966x_mqprio_del(struct lan966x_port *port)
243c83431fSHoratiu Vultur {
253c83431fSHoratiu Vultur 	netdev_reset_tc(port->dev);
263c83431fSHoratiu Vultur 
273c83431fSHoratiu Vultur 	return 0;
283c83431fSHoratiu Vultur }
29