Messages in this thread | | | From | "Voon, Weifeng" <> | Subject | RE: [PATCH 3/7] net: stmmac: dma channel control register need to be init first | Date | Thu, 25 Apr 2019 07:06:08 +0000 |
| |
> stmmac_init_chan() needs to be called before stmmac_init_rx_chan() and > stmmac_init_tx_chan(). This is because if PBLx8 is to be used, > "DMA_CH(#i)_Control.PBLx8" needs to be set before programming > "DMA_CH(#i)_TX_Control.TxPBL" and "DMA_CH(#i)_RX_Control.RxPBL". > > Reviewed-by: Zhang, Baoli <baoli.zhang@intel.com> > Signed-off-by: Weifeng Voon <weifeng.voon@intel.com> > Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index a26e36d..ec031e3 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -2208,6 +2208,10 @@ static int stmmac_init_dma_engine(struct > stmmac_priv *priv) > if (priv->plat->axi) > stmmac_axi(priv, priv->ioaddr, priv->plat->axi); > > + /* DMA CSR Channel configuration */ > + for (chan = 0; chan < dma_csr_ch; chan++) > + stmmac_init_chan(priv, priv->ioaddr, priv->plat->dma_cfg, > chan); > + > /* DMA RX Channel Configuration */ > for (chan = 0; chan < rx_channels_count; chan++) { > rx_q = &priv->rx_queue[chan]; > @@ -2233,10 +2237,6 @@ static int stmmac_init_dma_engine(struct > stmmac_priv *priv) > tx_q->tx_tail_addr, chan); > } > > - /* DMA CSR Channel configuration */ > - for (chan = 0; chan < dma_csr_ch; chan++) > - stmmac_init_chan(priv, priv->ioaddr, priv->plat->dma_cfg, > chan); > - > return ret; > } > > -- > 1.9.1
++ stmmac maintainers and c45 experts
| |