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

Reply via email to