[PATCH net-next v4 0/2] net: dsa: mv88e6xxx: add support for credit based shaper

From: Cedric Jehasse via B4 Relay

Date: Thu May 28 2026 - 12:25:36 EST


Several of the switch families in this driver have switches with AVB
support. The switches with AVB support have support for Credit based
shaping. This series adds support for the 6341, 6352, 6390 and 6393
families.
The difference between the families is:
- total number of queues
- which queues support credit based shaping
- shaping granularity

Eg. setting up 20mbps credit based shaper on a 1GBit link:
tc qdisc add dev p8 parent root handle 100: mqprio \
num_tc 8 \
map 0 0 6 7 0 5 0 0 0 0 0 0 0 0 0 0 \
queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \
hw 0

tc qdisc replace dev p8 parent 100:8 cbs locredit -1470 hicredit 30 \
sendslope -980000 idleslope 20000 offload 1

Signed-off-by: Cedric Jehasse <cedric.jehasse@xxxxxxxxxx>
---
Changes in v4:
- add qav info for the 6341
- remove max_rate from mv88e6xxx_qav_info. It looks like the max rate
mentioned in the docs is just the maximum rate that fits in the
registers. This is already represented by rate_mask.
- remove validation on sendslope. This isn't used by the driver.
- use accessors for qav_write and set_scheduling
- Link to v3: https://lore.kernel.org/r/20260527-net-next-mv88e6xxx-cbs-v3-0-2f387eb5ff63@xxxxxxxxxx

Changes in v3:
- clear cbs_active_queues bit when the rate is set to 0 on
port_set_scheduling_mode failure
- wait for the MV88E6390_PORT_QUEUE_CTL_UPDATE bit to be cleared after
writing the scheduling mode
- add num_tx_queues for mv88e6191 based on it's family, as nobody is
able to find a datasheet for this device
- reverse christmas tree variable declarations
- fix egress queue selection for devices with 4 queues
- Link to v2: https://lore.kernel.org/r/20260526-net-next-mv88e6xxx-cbs-v2-0-13eb49c29b83@xxxxxxxxxx

Changes in v2:
- tx_queues defined for all devices (which could be found). Thanks to Marek Behún.
- Link to v1: https://lore.kernel.org/r/20260522-net-next-mv88e6xxx-cbs-v1-0-c87a8e6bcc0c@xxxxxxxxxx

---
Cedric Jehasse (2):
net: dsa: mv88e6xxx: use the hw tx queues
net: dsa: mv88e6xxx: add support for credit based shaper

drivers/net/dsa/mv88e6xxx/chip.c | 165 ++++++++++++++++++++++++++++++++
drivers/net/dsa/mv88e6xxx/chip.h | 21 ++++
drivers/net/dsa/mv88e6xxx/global2.h | 3 +
drivers/net/dsa/mv88e6xxx/global2_avb.c | 21 ++++
drivers/net/dsa/mv88e6xxx/port.c | 63 ++++++++++++
drivers/net/dsa/mv88e6xxx/port.h | 20 ++++
net/dsa/tag_dsa.c | 11 ++-
7 files changed, 303 insertions(+), 1 deletion(-)
---
base-commit: 022bdd9c0d036863c4bacd1688b73c6be3001cee
change-id: 20260430-net-next-mv88e6xxx-cbs-2121169caa68

Best regards,
--
Cedric Jehasse <cedric.jehasse@xxxxxxxxxx>