* [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
* 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
* 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).