[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <OS0PR01MB5922E75F05556EC526ABA3B686A89@OS0PR01MB5922.jpnprd01.prod.outlook.com>
Date: Tue, 28 Sep 2021 09:24:25 +0000
From: Biju Das <biju.das.jz@...renesas.com>
To: Sergey Shtylyov <s.shtylyov@....ru>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>
CC: Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@...renesas.com>,
Andrew Lunn <andrew@...n.ch>,
Geert Uytterhoeven <geert+renesas@...der.be>,
Adam Ford <aford173@...il.com>,
Yoshihiro Shimoda <yoshihiro.shimoda.uh@...esas.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-renesas-soc@...r.kernel.org"
<linux-renesas-soc@...r.kernel.org>,
Chris Paterson <Chris.Paterson2@...esas.com>,
Biju Das <biju.das@...renesas.com>
Subject: RE: [RFC/PATCH 13/18] ravb: Add rx_ring_free function support for
GbEthernet
Hi Sergei,
Thanks for the feedback.
> Subject: Re: [RFC/PATCH 13/18] ravb: Add rx_ring_free function support for
> GbEthernet
>
> On 9/23/21 5:08 PM, Biju Das wrote:
>
> > This patch adds rx_ring_free function support for GbEthernet found on
> > RZ/G2L SoC.
> >
> > Signed-off-by: Biju Das <biju.das.jz@...renesas.com>
> > ---
> > drivers/net/ethernet/renesas/ravb_main.c | 22 +++++++++++++++++++++-
> > 1 file changed, 21 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/ethernet/renesas/ravb_main.c
> > b/drivers/net/ethernet/renesas/ravb_main.c
> > index 2c375002ebcb..038af36141bb 100644
> > --- a/drivers/net/ethernet/renesas/ravb_main.c
> > +++ b/drivers/net/ethernet/renesas/ravb_main.c
> > @@ -236,7 +236,27 @@ static int ravb_tx_free(struct net_device *ndev,
> > int q, bool free_txed_only)
> >
> > static void ravb_rx_ring_free_rgeth(struct net_device *ndev, int q)
> > {
> > - /* Place holder */
> > + struct ravb_private *priv = netdev_priv(ndev);
> > + unsigned int ring_size;
> > + unsigned int i;
> > +
> > + if (!priv->rgeth_rx_ring[q])
>
> Is the network control queue present on your hardware at all? Perhaps
> we can ignore q for now?
NC queue is not present on RZ/G2L. Will add a feature flag and function pointer related changes to
minimize the check for NC and avoid using NC queue for RZ/G2L platform.
Please let me know, if you think otherwise.
>
> > + return;
> > +
> > + for (i = 0; i < priv->num_rx_ring[q]; i++) {
> > + struct ravb_rx_desc *desc = &priv->rgeth_rx_ring[q][i];
>
> Looks like patch #12 should come after this one, not before...
Patch#12 is timestamp related and we agreed to merge with gPTP support case.
Regards,
Biju
>
> > +
> > + if (!dma_mapping_error(ndev->dev.parent,
> > + le32_to_cpu(desc->dptr)))
> > + dma_unmap_single(ndev->dev.parent,
> > + le32_to_cpu(desc->dptr),
> > + RGETH_RX_BUFF_MAX,
> > + DMA_FROM_DEVICE);
> > + }
> > + ring_size = sizeof(struct ravb_rx_desc) * (priv->num_rx_ring[q] +
> 1);
> > + dma_free_coherent(ndev->dev.parent, ring_size, priv-
> >rgeth_rx_ring[q],
> > + priv->rx_desc_dma[q]);
> > + priv->rgeth_rx_ring[q] = NULL;
> > }
> >
> > static void ravb_rx_ring_free(struct net_device *ndev, int q)
>
> MBR, Sergey
Powered by blists - more mailing lists