* [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available @ 2016-04-28 21:55 Florian Fainelli [not found] ` <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Florian Fainelli @ 2016-04-28 21:55 UTC (permalink / raw) To: netdev-u79uwXL29TY76Z2rM5mHXA Cc: davem-fT/PcQaiUtIeIZ0/mPfg9Q, andrew-g2DYL2Zd6BY, nathan.sullivan-acOepvfBmUk, nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w, Florian Fainelli, Rob Herring, Frank Rowand, Grant Likely, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE, open list Add a check whether the 'struct device_node' pointer passed to of_mdiobus_register() is an available (aka enabled) node in the Device Tree. Rationale for doing this are cases where an Ethernet MAC provides a MDIO bus controller and node, and an additional Ethernet MAC might be connecting its PHY/switches to that first MDIO bus controller, while still embedding one internally which is therefore marked as "disabled". Instead of sprinkling checks like these in callers of of_mdiobus_register(), do this in a central location. Signed-off-by: Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> --- drivers/of/of_mdio.c | 4 ++++ 1 file changed, 4 insertions(+) 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; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 6+ messages in thread
[parent not found: <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available [not found] ` <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2016-04-28 22:07 ` Andrew Lunn 2016-04-28 22:12 ` Andrew Lunn 2016-05-01 23:35 ` David Miller 2 siblings, 0 replies; 6+ messages in thread From: Andrew Lunn @ 2016-04-28 22:07 UTC (permalink / raw) To: Florian Fainelli Cc: netdev-u79uwXL29TY76Z2rM5mHXA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, nathan.sullivan-acOepvfBmUk, nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w, Rob Herring, Frank Rowand, Grant Likely, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE, open list On Thu, Apr 28, 2016 at 02:55:10PM -0700, Florian Fainelli wrote: > Add a check whether the 'struct device_node' pointer passed to > of_mdiobus_register() is an available (aka enabled) node in the Device > Tree. > > Rationale for doing this are cases where an Ethernet MAC provides a MDIO > bus controller and node, and an additional Ethernet MAC might be > connecting its PHY/switches to that first MDIO bus controller, while > still embedding one internally which is therefore marked as "disabled". > > Instead of sprinkling checks like these in callers of > of_mdiobus_register(), do this in a central location. > > Signed-off-by: Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > --- > drivers/of/of_mdio.c | 4 ++++ > 1 file changed, 4 insertions(+) > > 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; Could be bike shedding, but would ENODEV be better? Some callers are going to have to look at the return value and decide if it is a fatal error, and fail the whole probe, or a non-fatal error and they should keep going. ENODEV seems less fatal... Other than that, Reviewed-by: Andrew Lunn <andrew-g2DYL2Zd6BY@public.gmane.org> Andrew -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available [not found] ` <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-04-28 22:07 ` Andrew Lunn @ 2016-04-28 22:12 ` Andrew Lunn 2016-04-28 23:12 ` Florian Fainelli 2016-05-01 23:35 ` David Miller 2 siblings, 1 reply; 6+ messages in thread From: Andrew Lunn @ 2016-04-28 22:12 UTC (permalink / raw) To: Florian Fainelli Cc: netdev-u79uwXL29TY76Z2rM5mHXA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, nathan.sullivan-acOepvfBmUk, nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w, Rob Herring, Frank Rowand, Grant Likely, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE, open list On Thu, Apr 28, 2016 at 02:55:10PM -0700, Florian Fainelli wrote: > Add a check whether the 'struct device_node' pointer passed to > of_mdiobus_register() is an available (aka enabled) node in the Device > Tree. > > Rationale for doing this are cases where an Ethernet MAC provides a MDIO > bus controller and node, and an additional Ethernet MAC might be > connecting its PHY/switches to that first MDIO bus controller, while > still embedding one internally which is therefore marked as "disabled". > > Instead of sprinkling checks like these in callers of > of_mdiobus_register(), do this in a central location. I think this discussion has shown there is no documented best practices for MDIO bus drivers and how PHYs nodes are placed within device tree. Maybe you could document the generic MDIO binding, both as integrated into a MAC device node, and as a separate device? Andrew -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available 2016-04-28 22:12 ` Andrew Lunn @ 2016-04-28 23:12 ` Florian Fainelli [not found] ` <572298D2.3060809-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 6+ messages in thread From: Florian Fainelli @ 2016-04-28 23:12 UTC (permalink / raw) To: Andrew Lunn Cc: netdev, davem, nathan.sullivan, nicolas.ferre, Rob Herring, Frank Rowand, Grant Likely, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE, open list On 28/04/16 15:12, Andrew Lunn wrote: > On Thu, Apr 28, 2016 at 02:55:10PM -0700, Florian Fainelli wrote: >> Add a check whether the 'struct device_node' pointer passed to >> of_mdiobus_register() is an available (aka enabled) node in the Device >> Tree. >> >> Rationale for doing this are cases where an Ethernet MAC provides a MDIO >> bus controller and node, and an additional Ethernet MAC might be >> connecting its PHY/switches to that first MDIO bus controller, while >> still embedding one internally which is therefore marked as "disabled". >> >> Instead of sprinkling checks like these in callers of >> of_mdiobus_register(), do this in a central location. > > I think this discussion has shown there is no documented best > practices for MDIO bus drivers and how PHYs nodes are placed within > device tree. Maybe you could document the generic MDIO binding, both > as integrated into a MAC device node, and as a separate device? Fair enough, I will submit something after re-spining this patch to use -ENODEV, which I agree is a better return code. Did you want me to remove that blurb from the commit message? -- Florian ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <572298D2.3060809-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available [not found] ` <572298D2.3060809-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> @ 2016-04-28 23:20 ` Andrew Lunn 0 siblings, 0 replies; 6+ messages in thread From: Andrew Lunn @ 2016-04-28 23:20 UTC (permalink / raw) To: Florian Fainelli Cc: netdev-u79uwXL29TY76Z2rM5mHXA, davem-fT/PcQaiUtIeIZ0/mPfg9Q, nathan.sullivan-acOepvfBmUk, nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w, Rob Herring, Frank Rowand, Grant Likely, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE, open list > Fair enough, I will submit something after re-spining this patch to use > -ENODEV, which I agree is a better return code. Did you want me to > remove that blurb from the commit message? Blurb looks good. More blurb is better than less... Andrew -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available [not found] ` <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-04-28 22:07 ` Andrew Lunn 2016-04-28 22:12 ` Andrew Lunn @ 2016-05-01 23:35 ` David Miller 2 siblings, 0 replies; 6+ messages in thread From: David Miller @ 2016-05-01 23:35 UTC (permalink / raw) To: f.fainelli-Re5JQEeQqe8AvxtiuMwx3w Cc: netdev-u79uwXL29TY76Z2rM5mHXA, andrew-g2DYL2Zd6BY, nathan.sullivan-acOepvfBmUk, nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w, robh+dt-DgEjT+Ai2ygdnm+yROfE0A, frowand.list-Re5JQEeQqe8AvxtiuMwx3w, grant.likely-QSEj5FYQhm4dnm+yROfE0A, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA From: Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Date: Thu, 28 Apr 2016 14:55:10 -0700 > Add a check whether the 'struct device_node' pointer passed to > of_mdiobus_register() is an available (aka enabled) node in the Device > Tree. > > Rationale for doing this are cases where an Ethernet MAC provides a MDIO > bus controller and node, and an additional Ethernet MAC might be > connecting its PHY/switches to that first MDIO bus controller, while > still embedding one internally which is therefore marked as "disabled". > > Instead of sprinkling checks like these in callers of > of_mdiobus_register(), do this in a central location. > > Signed-off-by: Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Applied, thanks Florian. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-05-01 23:35 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-04-28 21:55 [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available Florian Fainelli [not found] ` <1461880510-27132-1-git-send-email-f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-04-28 22:07 ` Andrew Lunn 2016-04-28 22:12 ` Andrew Lunn 2016-04-28 23:12 ` Florian Fainelli [not found] ` <572298D2.3060809-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2016-04-28 23:20 ` Andrew Lunn 2016-05-01 23:35 ` David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).