[PATCH net-next v7 0/7] net: stmmac: FPE via ethtool + tc

From: Furong Xu
Date: Wed Sep 04 2024 - 05:22:31 EST


Move the Frame Preemption(FPE) over to the new standard API which uses
ethtool-mm/tc-mqprio/tc-taprio.

Changes in v7:
1. code style fixes and clean up warnings reported by
patchwork netdev checks, no functional change intended

Changes in v6:
1. new FPE verification process based on Vladimir Oltean's proposal
2. embed ethtool_mm_state into stmmac_fpe_cfg
3. convert some bit ops to u32_replace_bits
4. register name and function name update to be more descriptive
5. split up stmmac_tc_ops of dwmac4+ and dwxgmac, they have different
implementations about mqprio
6. some code style fixes

Changes in v5:
1. fix typo in commit message
2. drop FPE capability check in tc-mqprio/tc-taprio

Changes in v4:
1. reorder FPE-related declarations and definitions into clean groups
2. move mm_lock to stmmac_fpe_cfg.lock
3. protect user configurations across NIC up/down
4. block stmmac_set_mm() when fpe_task is in progress to finish
5. convert to ethtool_dev_mm_supported() to check FPE capability in
tc-mqprio/tc-taprio
6. silence FPE workqueue start/stop logs

Changes in v3:
1. avoid races among ISR, workqueue, link update and
register configuration.
2. update FPE verification retry logic, so it retries
and fails as expected.

Changes in v2:
1. refactor FPE verification process
2. suspend/resume and kselftest-ethtool_mm, all test cases passed
3. handle TC:TXQ remapping for DWMAC CORE4+

Furong Xu (7):
net: stmmac: move stmmac_fpe_cfg to stmmac_priv data
net: stmmac: drop stmmac_fpe_handshake
net: stmmac: refactor FPE verification process
net: stmmac: configure FPE via ethtool-mm
net: stmmac: support fp parameter of tc-mqprio
net: stmmac: support fp parameter of tc-taprio
net: stmmac: silence FPE kernel logs

.../net/ethernet/stmicro/stmmac/dwmac4_core.c | 10 +-
drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 96 +++++-
drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 12 +-
.../ethernet/stmicro/stmmac/dwxgmac2_core.c | 9 +-
drivers/net/ethernet/stmicro/stmmac/hwif.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/hwif.h | 21 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 30 +-
.../ethernet/stmicro/stmmac/stmmac_ethtool.c | 91 ++++++
.../net/ethernet/stmicro/stmmac/stmmac_main.c | 275 ++++++++----------
.../net/ethernet/stmicro/stmmac/stmmac_tc.c | 130 ++++++---
include/linux/stmmac.h | 28 --
11 files changed, 467 insertions(+), 239 deletions(-)

--
2.34.1