On Fri, Aug 2, 2024 at 7:38 AM Simon Horman <horms@xxxxxxxxxx> wrote: > > On Thu, Aug 01, 2024 at 08:18:20PM -0700, jitendra.vegiraju@xxxxxxxxxxxx wrote: > > From: Jitendra Vegiraju <jitendra.vegiraju@xxxxxxxxxxxx> > > > > Adds support for DWC_xgmac version 4.00a in stmmac core module. > > This version adds enhancements to DMA architecture for virtualization > > scalability. This is realized by decoupling physical DMA channels (PDMA) > > from Virtual DMA channels (VDMA). The VDMAs are software abastractions > > that map to PDMAs for frame transmission and reception. > > > > The virtualization enhancements are currently not being used and hence > > a fixed mapping of VDMA to PDMA is configured in the init functions. > > Because of the new init functions, a new instance of struct stmmac_dma_ops > > dwxgmac400_dma_ops is added. > > Most of the other dma operation functions in existing dwxgamc2_dma.c file > > can be reused. > > > > Signed-off-by: Jitendra Vegiraju <jitendra.vegiraju@xxxxxxxxxxxx> > > ... > > > stmmac-$(CONFIG_STMMAC_SELFTESTS) += stmmac_selftests.o > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c > > ... > > > @@ -641,3 +642,33 @@ const struct stmmac_dma_ops dwxgmac210_dma_ops = { > > .enable_sph = dwxgmac2_enable_sph, > > .enable_tbs = dwxgmac2_enable_tbs, > > }; > > + > > +const struct stmmac_dma_ops dwxgmac400_dma_ops = { > > + .reset = dwxgmac2_dma_reset, > > + .init = dwxgmac4_dma_init, > > + .init_chan = dwxgmac2_dma_init_chan, > > + .init_rx_chan = dwxgmac4_dma_init_rx_chan, > > + .init_tx_chan = dwxgmac4_dma_init_tx_chan, > > + .axi = dwxgmac2_dma_axi, > > + .dump_regs = dwxgmac2_dma_dump_regs, > > + .dma_rx_mode = dwxgmac2_dma_rx_mode, > > + .dma_tx_mode = dwxgmac2_dma_tx_mode, > > + .enable_dma_irq = dwxgmac2_enable_dma_irq, > > + .disable_dma_irq = dwxgmac2_disable_dma_irq, > > + .start_tx = dwxgmac2_dma_start_tx, > > + .stop_tx = dwxgmac2_dma_stop_tx, > > + .start_rx = dwxgmac2_dma_start_rx, > > + .stop_rx = dwxgmac2_dma_stop_rx, > > + .dma_interrupt = dwxgmac2_dma_interrupt, > > + .get_hw_feature = dwxgmac2_get_hw_feature, > > + .rx_watchdog = dwxgmac2_rx_watchdog, > > + .set_rx_ring_len = dwxgmac2_set_rx_ring_len, > > + .set_tx_ring_len = dwxgmac2_set_tx_ring_len, > > + .set_rx_tail_ptr = dwxgmac2_set_rx_tail_ptr, > > + .set_tx_tail_ptr = dwxgmac2_set_tx_tail_ptr, > > + .enable_tso = dwxgmac2_enable_tso, > > + .qmode = dwxgmac2_qmode, > > + .set_bfsize = dwxgmac2_set_bfsize, > > + .enable_sph = dwxgmac2_enable_sph, > > + .enable_tbs = dwxgmac2_enable_tbs, > > +}; > > Please add dwxgmac400_dma_ops to hwif.h in this patch rather than a > subsequent one to avoid Sparse suggesting the symbol should be static. Thanks, I will make the change in the next patch revision. > > ...