All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Helmut Grohne <helmut.grohne@intenta.de>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: [PATCH] net: macb: reject unsupported rgmii delays
Date: Wed, 17 Jun 2020 12:40:25 +0100	[thread overview]
Message-ID: <20200617114025.GQ1551@shell.armlinux.org.uk> (raw)
In-Reply-To: <20200617112153.GB28783@laureti-dev>

On Wed, Jun 17, 2020 at 01:21:53PM +0200, Helmut Grohne wrote:
> On Wed, Jun 17, 2020 at 12:55:18PM +0200, Russell King - ARM Linux admin wrote:
> > The individual RGMII delay modes are more about what the PHY itself is
> > asked to do with respect to inserting delays, so I don't think your
> > patch makes sense.
> 
> This seems to be the same aspect that Vladimir Oltean remarked. I agree
> that the relevant hunk should be dropped.
> 
> > > --- a/drivers/net/ethernet/cadence/macb_main.c
> > > +++ b/drivers/net/ethernet/cadence/macb_main.c
> > > @@ -514,7 +514,7 @@ static void macb_validate(struct phylink_config *config,
> > >  	    state->interface != PHY_INTERFACE_MODE_RMII &&
> > >  	    state->interface != PHY_INTERFACE_MODE_GMII &&
> > >  	    state->interface != PHY_INTERFACE_MODE_SGMII &&
> > > -	    !phy_interface_mode_is_rgmii(state->interface)) {
> > > +	    state->interface != PHY_INTERFACE_MODE_RGMII_ID) {
> > 
> > Here you reject everything except PHY_INTERFACE_MODE_RGMII_ID.
> > 
> > >  		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
> > >  		return;
> > >  	}
> > > @@ -694,6 +694,13 @@ static int macb_phylink_connect(struct macb *bp)
> > >  	struct phy_device *phydev;
> > >  	int ret;
> > >  
> > > +	if (of_phy_is_fixed_link(dn) &&
> > > +	    phy_interface_mode_is_rgmii(bp->phy_interface) &&
> > > +	    bp->phy_interface != PHY_INTERFACE_MODE_RGMII) {
> > 
> > but here you reject everything except PHY_INTERFACE_MODE_RGMII.  These
> > can't both be right.  If you start with PHY_INTERFACE_MODE_RGMII, and
> > have a fixed link, you'll have PHY_INTERFACE_MODE_RGMII passed into
> > the validate function, which will then fail.
> 
> For a fixed-link, the validation function is never called. Therefore, it
> cannot reject PHY_INTERFACE_MODE_RGMII. It works in practice.

Hmm, I'm not so sure, but then I don't know exactly what code you're
using.  Looking at mainline, even for a fixed link, you call
phylink_create().  phylink_create() will spot the fixed link, and
parse the description, calling the validation function.  If that
fails, it will generate a warning at that point:

  "fixed link %s duplex %dMbps not recognised"

It doesn't cause an operational failure, but it means that you end up
with a zero supported mask, which is likely not expected.

This is not an expected situation, so I'll modify your claim to "it
works but issues a warning" which still means that it's not correct.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2020-06-17 11:40 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-16  7:49 [PATCH] net: macb: reject unsupported rgmii delays Helmut Grohne
2020-06-17  9:24 ` Nicolas Ferre
2020-06-17  9:57 ` Vladimir Oltean
2020-06-17 11:15   ` Helmut Grohne
2020-06-17 10:55 ` Russell King - ARM Linux admin
2020-06-17 11:21   ` Helmut Grohne
2020-06-17 11:40     ` Russell King - ARM Linux admin [this message]
2020-06-17 11:52       ` Helmut Grohne
2020-06-17 12:08         ` Russell King - ARM Linux admin
2020-06-18  8:14           ` Helmut Grohne
2020-06-18  8:45             ` Russell King - ARM Linux admin
2020-06-18  9:05               ` Helmut Grohne
2020-06-18 10:01                 ` Russell King - ARM Linux admin
2020-06-18 18:26                   ` Florian Fainelli
2020-06-18 18:06               ` Florian Fainelli
2020-06-18 18:49                 ` Russell King - ARM Linux admin
2020-06-18 19:02                   ` Florian Fainelli
2020-06-18 19:10                     ` Russell King - ARM Linux admin
2020-06-17 11:32   ` Vladimir Oltean
2020-06-17 11:34     ` Russell King - ARM Linux admin
2020-06-17 11:38       ` Vladimir Oltean
2020-06-17 11:57         ` Russell King - ARM Linux admin
2020-06-18 18:25           ` Florian Fainelli

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=20200617114025.GQ1551@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=davem@davemloft.net \
    --cc=helmut.grohne@intenta.de \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.