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.

Reply via email to