Message ID | 1556126241-2774-4-git-send-email-weifeng.voon@intel.com |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | net: stmmac: enable EHL SGMII | expand |
> 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
From: Voon, Weifeng <weifeng.voon@intel.com> Date: Thu, Apr 25, 2019 at 08:06:08 > > 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> This is a fix so it should belong to -net tree and it should have the "Fixes: " tag. Thanks, Jose Miguel Abreu
> From: Voon, Weifeng <weifeng.voon@intel.com> > Date: Thu, Apr 25, 2019 at 08:06:08 > > > > 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> > > This is a fix so it should belong to -net tree and it should have the > "Fixes: " tag. > > Thanks, > Jose Miguel Abreu Noted. I will add the "Fixes" tag and re-submit to -net tree. Regards, Weifeng
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; }