On Tue, Jan 26, 2021 at 8:44 PM Joakim Zhang <qiangqing.zh...@nxp.com> wrote: > > > > -----Original Message----- > > From: Willem de Bruijn <willemdebruijn.ker...@gmail.com> > > Sent: 2021年1月27日 7:10 > > To: Joakim Zhang <qiangqing.zh...@nxp.com> > > Cc: Giuseppe Cavallaro <peppe.cavall...@st.com>; Alexandre Torgue > > <alexandre.tor...@st.com>; Jose Abreu <joab...@synopsys.com>; David > > Miller <da...@davemloft.net>; Jakub Kicinski <k...@kernel.org>; Network > > Development <netdev@vger.kernel.org>; dl-linux-imx <linux-...@nxp.com>; > > Andrew Lunn <and...@lunn.ch>; Florian Fainelli <f.faine...@gmail.com> > > Subject: Re: [PATCH V3 2/6] net: stmmac: stop each tx channel independently > > > > On Tue, Jan 26, 2021 at 7:03 AM Joakim Zhang <qiangqing.zh...@nxp.com> > > wrote: > > > > > > If clear GMAC_CONFIG_TE bit, it would stop all tx channels, but users > > > may only want to stop secific tx channel. > > > > secific -> specific > > Thanks. Will correct it. > > > > > > > Fixes: 48863ce5940f ("stmmac: add DMA support for GMAC 4.xx") > > > Signed-off-by: Joakim Zhang <qiangqing.zh...@nxp.com> > > > --- > > > drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 4 ---- > > > 1 file changed, 4 deletions(-) > > > > > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c > > > b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c > > > index 0b4ee2dbb691..71e50751ef2d 100644 > > > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c > > > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c > > > @@ -53,10 +53,6 @@ void dwmac4_dma_stop_tx(void __iomem *ioaddr, > > u32 > > > chan) > > > > > > value &= ~DMA_CONTROL_ST; > > > writel(value, ioaddr + DMA_CHAN_TX_CONTROL(chan)); > > > - > > > - value = readl(ioaddr + GMAC_CONFIG); > > > - value &= ~GMAC_CONFIG_TE; > > > - writel(value, ioaddr + GMAC_CONFIG); > > > > Is it safe to partially unwind the actions of dwmac4_dma_start_tx > > > > And would the same reasoning apply to dwmac4_(dma_start|stop)_rx? > > Sorry, I am not quite understand what you means. > > What this patch did is to align to dwmac4_(dma_start|stop)_rx. > > dwmac4_dma_start_rx: assert DMA_CONTROL_SR bit for each channel, and assert > GMAC_CONFIG_RE bit which targets all channels. > dwmac4_dma_stop_rx: only need clear DMA_CONTROL_SR bit for each channel. > > After this patch applied: > dwmac4_dma_start_tx: assert DMA_CONTROL_ST bit for each channel, and assert > GMAC_CONFIG_TE bit which targets all channels. > dwmac4_dma_stop_tx: only need clear DMA_CONTROL_ST bit for each channel.
Oh indeed. Sorry, I should have seen that it exactly brings the tx logic into agreement with rx. Thanks.