[PATCH net-next 0/3] xgmac: Support for 16 MTL/DMA queues

Jakub Raczynski posted 3 patches 1 month ago
There is a newer version of this series
drivers/net/ethernet/stmicro/stmmac/common.h  |  1 +
.../net/ethernet/stmicro/stmmac/dwxgmac2.h    |  2 +
.../ethernet/stmicro/stmmac/dwxgmac2_core.c   | 58 ++++++++++++++++++-
.../ethernet/stmicro/stmmac/dwxgmac2_dma.c    | 17 +++++-
.../net/ethernet/stmicro/stmmac/stmmac_main.c |  5 +-
include/linux/stmmac.h                        |  6 +-
6 files changed, 80 insertions(+), 9 deletions(-)
[PATCH net-next 0/3] xgmac: Support for 16 MTL/DMA queues
Posted by Jakub Raczynski 1 month ago
New XGMAC datasheets for XGMAC 3.20a and 3.40a list support up to
16 MTL/DMA queues. This patch series does modifications to accommodate for
that, by following:
- Increase MAX value macros (this will increase memory allocation for driver)
- Add missing registers
- Modify/fix some functions to split TC and MTL/DMA

Biggest issue is that new hardware does support only 8 TC (traffic classes),
while supporting more MTL/DMA queues. This is problematic, as current code
does assume that these are equal which is not true anymore. Fix that by
applying better context to functions, using TC count read from HW_FEATURE
register where it applies.

For DMA/MTL queues higher than TC count redirect traffic to TC 0.
This is error in user configuration but quite possible to occur,
if user does 'one DMA/MTL queue per TC'.

This change has been tested on XGMAC based on 3.20a,
checked with 16 and 8 queue setup.

Jakub Raczynski (3):
  net/stmmac/dwxgmac: Modify DMA functions for future hardware
  net/stmmac/dwxgmac: Extend MTL/DMA support to 16 queues
  include/stmmac: Increase max DMA/MTL channel count from 8 to 16

 drivers/net/ethernet/stmicro/stmmac/common.h  |  1 +
 .../net/ethernet/stmicro/stmmac/dwxgmac2.h    |  2 +
 .../ethernet/stmicro/stmmac/dwxgmac2_core.c   | 58 ++++++++++++++++++-
 .../ethernet/stmicro/stmmac/dwxgmac2_dma.c    | 17 +++++-
 .../net/ethernet/stmicro/stmmac/stmmac_main.c |  5 +-
 include/linux/stmmac.h                        |  6 +-
 6 files changed, 80 insertions(+), 9 deletions(-)

-- 
2.34.1