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!