On Thu, Apr 28, 2016 at 01:03:15PM -0700, Florian Fainelli wrote:
> On 28/04/16 11:59, Andrew Lunn wrote:
> > On Thu, Apr 28, 2016 at 01:55:27PM -0500, Nathan Sullivan wrote:
> >> On Thu, Apr 28, 2016 at 08:43:03PM +0200, Andrew Lunn wrote:
> >>>> I agree that is a valid fix for AT91, however it won't solve our
> >>>> problem, since
> >>>> we have no children on the second ethernet MAC in our devices' device
> >>>> trees. I'm
> >>>> starting to feel like our second MAC shouldn't even really register the
> >>>> MDIO bus
> >>>> since it isn't being used - maybe adding a DT property to not have a bus
> >>>> is a
> >>>> better option?
> >>>
> >>> status = "disabled"
> >>>
> >>> would be the unusual way.
> >>>
> >>> Andrew
> >>
> >> Oh, sorry, I meant we use both MACs on Zynq, however the PHYs are on the
> >> MDIO
> >> bus of the first MAC. So, the second MAC is used for ethernet but not for
> >> MDIO,
> >> and so it does not have any PHYs under its DT node. It would be nice if
> >> there
> >> were a way to tell macb not to bother with MDIO for the second MAC, since
> >> that's
> >> handled by the first MAC.
> >
> > Yes, exactly, add support for status = "disabled" in the mdio node.
>
> Something like that, just so we do not have to sprinkle tests all other
> the place:
>
> diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c
> index b622b33dbf93..2f497790be1b 100644
> --- a/drivers/of/of_mdio.c
> +++ b/drivers/of/of_mdio.c
> @@ -209,6 +209,10 @@ int of_mdiobus_register(struct mii_bus *mdio,
> struct device_node *np)
> bool scanphys = false;
> int addr, rc;
>
> + /* Do not continue if the node is disabled */
> + if (!of_device_is_available(np))
> + return -EINVAL;
> +
> /* Mask out all PHYs from auto probing. Instead the PHYs listed in
> * the device tree are populated after the bus has been
> registered */
> mdio->phy_mask = ~0;
Yes, that looks good.
Andrew