From: Biju Das <biju.das.jz@bp.renesas.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: "David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Sergei Shtylyov <sergei.shtylyov@gmail.com>,
Sergey Shtylyov <s.shtylyov@omprussia.ru>,
Adam Ford <aford173@gmail.com>,
Florian Fainelli <f.fainelli@gmail.com>,
Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>,
Andrew Gabbasov <andrew_gabbasov@mentor.com>,
Yuusuke Ashizuka <ashiduka@fujitsu.com>,
netdev <netdev@vger.kernel.org>,
Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
Chris Paterson <Chris.Paterson2@renesas.com>,
Biju Das <biju.das@bp.renesas.com>,
Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@bp.renesas.com>
Subject: RE: [PATCH/RFC 2/2] ravb: Add GbEthernet driver support
Date: Thu, 15 Jul 2021 10:31:24 +0000 [thread overview]
Message-ID: <OS0PR01MB59222DC66DFF9A363A60E40586129@OS0PR01MB5922.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <CAMuHMdW-NeDqiNDzQzzqnmQB2qL0Bc1-m+NQu9v8bK+_+7HxWQ@mail.gmail.com>
Hi Geert,
Thanks for the feedback.
> Subject: Re: [PATCH/RFC 2/2] ravb: Add GbEthernet driver support
>
> Hi Biju,
>
> On Wed, Jul 14, 2021 at 4:54 PM Biju Das <biju.das.jz@bp.renesas.com>
> wrote:
> > Add Gigabit Ethernet driver support.
> >
> > The Gigabit Etherner IP consists of Ethernet controller (E-MAC),
> > Internal TCP/IP Offload Engine (TOE) and Dedicated Direct memory
> > access controller (DMAC).
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
>
> Thanks for your patch!
>
> > --- a/drivers/net/ethernet/renesas/ravb.h
> > +++ b/drivers/net/ethernet/renesas/ravb.h
>
> > @@ -986,6 +1068,7 @@ struct ravb_ptp { enum ravb_chip_id {
> > RCAR_GEN2,
> > RCAR_GEN3,
> > + RZ_G2L,
> > };
>
> Instead of adding another chip type, it may be better to replace the chip
> type by a structure with feature bits, values, and function pointers (see
> examples below).
> BTW given the ravb driver is based on the sh_eth driver ("Ethernet AVB
> includes an Gigabit Ethernet controller (E-MAC) that is basically
> compatible with SuperH Gigabit Ethernet E-MAC"), and seeing the amount of
> changes, I'm wondering if rgeth is closer to sh_eth? ;-)
With sh_eth driver,We can reuse only E-MAC IP. But with RAVB we can reuse both DMAC and E-MAC.
Hence I believe it is closer to AVB.
>
> > --- a/drivers/net/ethernet/renesas/ravb_main.c
> > +++ b/drivers/net/ethernet/renesas/ravb_main.c
>
> > @@ -247,8 +288,12 @@ static void ravb_ring_free(struct net_device *ndev,
> int q)
> > int ring_size;
> > int i;
> >
> > - if (priv->rx_ring[q]) {
> > - ravb_ring_free_ex(ndev, q);
> > + if (priv->chip_id == RZ_G2L) {
> > + if (priv->rgeth_rx_ring[q])
> > + rgeth_ring_free_ex(ndev, q);
> > + } else {
> > + if (priv->rx_ring[q])
> > + ravb_ring_free_ex(ndev, q);
> > }
>
> Could be called through a function pointer instead.
OK.
>
> > @@ -356,7 +434,7 @@ static void ravb_ring_format(struct net_device
> > *ndev, int q) static int ravb_ring_init(struct net_device *ndev, int
> > q) {
> > struct ravb_private *priv = netdev_priv(ndev);
> > - size_t skb_sz = RX_BUF_SZ;
> > + size_t skb_sz = (priv->chip_id == RZ_G2L) ? RGETH_RCV_BUFF_MAX
> > + : RX_BUF_SZ;
>
> Could use a value in the structure.
OK.
>
> > @@ -730,7 +1054,7 @@ static void ravb_emac_interrupt_unlocked(struct
> net_device *ndev)
> > ecsr = ravb_read(ndev, ECSR);
> > ravb_write(ndev, ecsr, ECSR); /* clear interrupt */
> >
> > - if (ecsr & ECSR_MPD)
> > + if (priv->chip_id != RZ_G2L && (ecsr & ECSR_MPD))
>
> Could use a feature bit.
OK.
>
> > @@ -2104,11 +2578,19 @@ static int ravb_probe(struct platform_device
> *pdev)
> > priv = netdev_priv(ndev);
> > priv->chip_id = chip_id;
> >
> > - ndev->features = NETIF_F_RXCSUM;
> > - ndev->hw_features = NETIF_F_RXCSUM;
> > -
> > - pm_runtime_enable(&pdev->dev);
> > - pm_runtime_get_sync(&pdev->dev);
> > + if (chip_id == RZ_G2L) {
> > + ndev->hw_features |= (NETIF_F_HW_CSUM | NETIF_F_RXCSUM);
> > + priv->rstc = devm_reset_control_get(&pdev->dev, NULL);
>
> R-Car Gen2 and Gen3 describe a reset in DT, too.
> Does it hurt to always use the reset?
OK will use reset.
>
> > + if (IS_ERR(priv->rstc)) {
> > + dev_err(&pdev->dev, "failed to get cpg
> > + reset\n");
>
> dev_err_probe(), to avoid printing an error on -EPROBE_DEFER.
OK.
Regards,
Biju
>
> > + free_netdev(ndev);
> > + return PTR_ERR(priv->rstc);
> > + }
> > + reset_control_deassert(priv->rstc);
> > + } else {
> > + ndev->features = NETIF_F_RXCSUM;
> > + ndev->hw_features = NETIF_F_RXCSUM;
> > + }
>
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-
> m68k.org
>
> In personal conversations with technical people, I call myself a hacker.
> But when I'm talking to journalists I just say "programmer" or something
> like that.
> -- Linus Torvalds
next prev parent reply other threads:[~2021-07-15 10:31 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-14 14:54 [PATCH/RFC 0/2] Add Gigabit Ethernet driver support Biju Das
2021-07-14 14:54 ` [PATCH/RFC 1/2] ravb: Preparation for supporting Gigabit Ethernet driver Biju Das
2021-07-14 15:39 ` Andrew Lunn
2021-07-14 16:24 ` Biju Das
2021-07-14 18:20 ` Sergei Shtylyov
2021-07-15 6:49 ` Biju Das
2021-07-14 14:54 ` [PATCH/RFC 2/2] ravb: Add GbEthernet driver support Biju Das
2021-07-14 16:02 ` Andrew Lunn
2021-07-14 17:01 ` Biju Das
2021-07-14 17:25 ` Andrew Lunn
2021-07-14 17:56 ` Biju Das
2021-07-15 10:13 ` Geert Uytterhoeven
2021-07-15 10:31 ` Biju Das [this message]
2021-07-19 20:41 ` Sergei Shtylyov
2021-07-20 6:32 ` Biju Das
2021-07-14 19:26 ` [PATCH/RFC 0/2] Add Gigabit Ethernet " Sergei Shtylyov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=OS0PR01MB59222DC66DFF9A363A60E40586129@OS0PR01MB5922.jpnprd01.prod.outlook.com \
--to=biju.das.jz@bp.renesas.com \
--cc=Chris.Paterson2@renesas.com \
--cc=aford173@gmail.com \
--cc=andrew_gabbasov@mentor.com \
--cc=ashiduka@fujitsu.com \
--cc=biju.das@bp.renesas.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=geert@linux-m68k.org \
--cc=kuba@kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=s.shtylyov@omprussia.ru \
--cc=sergei.shtylyov@gmail.com \
--cc=yoshihiro.shimoda.uh@renesas.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).