[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170321163850.GA31875@ulmo.ba.sec>
Date: Tue, 21 Mar 2017 17:38:50 +0100
From: Thierry Reding <thierry.reding@...il.com>
To: Joao Pinto <Joao.Pinto@...opsys.com>
Cc: "David S . Miller" <davem@...emloft.net>,
Giuseppe Cavallaro <peppe.cavallaro@...com>,
Alexandre Torgue <alexandre.torgue@...com>,
LABBE Corentin <clabbe.montjoie@...il.com>,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/3] net: stmmac: Always enable MAC RX queues
On Tue, Mar 21, 2017 at 03:18:20PM +0000, Joao Pinto wrote:
> Às 3:12 PM de 3/21/2017, Thierry Reding escreveu:
> > From: Thierry Reding <treding@...dia.com>
> >
> > The MAC RX queues always need to be enabled in order to receive network
> > packets. Remove the condition that this only needs to be done for multi-
> > queue configurations.
> >
> > Signed-off-by: Thierry Reding <treding@...dia.com>
> > ---
> > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > index d3a21519e4c0..298956032098 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> > @@ -1943,7 +1943,7 @@ static void stmmac_mtl_configuration(struct stmmac_priv *priv)
> > stmmac_rx_queue_dma_chan_map(priv);
> >
> > /* Enable MAC RX Queues */
> > - if (rx_queues_count > 1 && priv->hw->mac->rx_queue_enable)
> > + if (priv->hw->mac->rx_queue_enable)
> > stmmac_mac_enable_rx_queues(priv);
> >
> > /* Set the HW DMA mode and the COE */
> >
>
> This text is from the Databook:
>
> "In multiple Rx queues configuration, all the queues are disabled by default.
> Enable the Rx queue by programming the corresponding field in this register."
>
> So by theory, only multiple queue configured cores needs the enable operation.
But that's related to multiple queues configured in the core when it was
instantiated (i.e. the capabilities). rx_queues_count reflects the
number of queues enabled in the driver, so it can be 1 even if the core
itself supports more than one queue.
In that case, we still want to enable the MAC RX queue because it will
otherwise remain disabled.
>
> >>> But came to my attention a setup that has 1 RX queue and 2 TX queues, which
> enables multiple queues mechanism inside the core (even with 1 RX) and so RX
> needs to be enabled. Because of that I agree with this patch.
>
> Acked-By: Joao Pinto <jpinto@...opsys.com>
Yeah, that case would also require this patch.
Thierry
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists