From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: [PATCH 1/4] net: macb: Fix regression breaking non-MDIO fixed-link PHYs Date: Mon, 20 Aug 2018 15:55:36 +0200 Message-ID: <20180820135536.GD6583@lunn.ch> References: <20180820121238.7779-1-a.fatoum@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "David S. Miller" , Nicolas Ferre , kernel@pengutronix.de, netdev@vger.kernel.org, mdf@kernel.org, Brad Mouring , Florian Fainelli , stable@vger.kernel.org To: Ahmad Fatoum Return-path: Content-Disposition: inline In-Reply-To: <20180820121238.7779-1-a.fatoum@pengutronix.de> Sender: stable-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Mon, Aug 20, 2018 at 02:12:35PM +0200, Ahmad Fatoum wrote: > The referenced commit broke initializing macb on the EVB-KSZ9477 eval board. > There, of_mdiobus_register was called even for the fixed-link representing > the SPI-connected switch PHY, with the result that the driver attempts to > enumerate PHYs on a non-existent MDIO bus: > > libphy: MACB_mii_bus: probed So there are two different things here: > mdio_bus f0028000.ethernet-ffffffff: fixed-link has invalid PHY address > mdio_bus f0028000.ethernet-ffffffff: scan phy fixed-link at address 0 > [snip] > mdio_bus f0028000.ethernet-ffffffff: scan phy fixed-link at address 31 These are the result of the fixed-link being considered a PHY in of_mdiobus_register(). Patch 2 fixes that, turns it into a single warning. > macb f0028000.ethernet: broken fixed-link specification Why is of_phy_register_fixed_link(np) failing? > > Cc: > Fixes: 739de9a1563a ("net: macb: Reorganize macb_mii bringup") > Signed-off-by: Ahmad Fatoum > --- > drivers/net/ethernet/cadence/macb_main.c | 27 +++++++++++++++--------- > 1 file changed, 17 insertions(+), 10 deletions(-) > > Fixes since v1: > Added one more error path for failing to register fixed-link > Fixed a whitespace issue > > > diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c > index dc09f9a8a49b..ef6ce8691443 100644 > --- a/drivers/net/ethernet/cadence/macb_main.c > +++ b/drivers/net/ethernet/cadence/macb_main.c > @@ -482,11 +482,6 @@ static int macb_mii_probe(struct net_device *dev) > > if (np) { > if (of_phy_is_fixed_link(np)) { > - if (of_phy_register_fixed_link(np) < 0) { > - dev_err(&bp->pdev->dev, > - "broken fixed-link specification\n"); > - return -ENODEV; > - } As a separate patch, please can you use the error code which of_phy_register_fixed_link() returns, not -ENODEV. It is possible it is returning EPROBE_DEFER. Andrew