Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1390573 > unrolled thread

[PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

Started byFlorian Fainelli <f.fainelli@gmail.com>
First post2016-04-29 00:00 +0200
Last post2016-05-02 01:40 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available Florian Fainelli <f.fainelli@gmail.com> - 2016-04-29 00:00 +0200
    Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is  available Andrew Lunn <andrew@lunn.ch> - 2016-04-29 00:10 +0200
    Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is  available Andrew Lunn <andrew@lunn.ch> - 2016-04-29 00:20 +0200
      Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is  available Florian Fainelli <f.fainelli@gmail.com> - 2016-04-29 01:20 +0200
        Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is  available Andrew Lunn <andrew@lunn.ch> - 2016-04-29 01:30 +0200
    Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is  available David Miller <davem@davemloft.net> - 2016-05-02 01:40 +0200

#1390573 — [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromFlorian Fainelli <f.fainelli@gmail.com>
Date2016-04-29 00:00 +0200
Subject[PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<rt28y-2Pa-9@gated-at.bofh.it>
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@gmail.com>
---
 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

[toc] | [next] | [standalone]


#1390592 — Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromAndrew Lunn <andrew@lunn.ch>
Date2016-04-29 00:10 +0200
SubjectRe: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<rt2if-3cJ-31@gated-at.bofh.it>
In reply to#1390573
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@gmail.com>
>
> ---
>  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@lunn.ch>

    Andrew

[toc] | [prev] | [next] | [standalone]


#1390598 — Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromAndrew Lunn <andrew@lunn.ch>
Date2016-04-29 00:20 +0200
SubjectRe: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<rt2rU-3gl-17@gated-at.bofh.it>
In reply to#1390573
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

[toc] | [prev] | [next] | [standalone]


#1390619 — Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromFlorian Fainelli <f.fainelli@gmail.com>
Date2016-04-29 01:20 +0200
SubjectRe: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<rt3nY-3WT-9@gated-at.bofh.it>
In reply to#1390598
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

[toc] | [prev] | [next] | [standalone]


#1390645 — Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromAndrew Lunn <andrew@lunn.ch>
Date2016-04-29 01:30 +0200
SubjectRe: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<rt3xE-46v-17@gated-at.bofh.it>
In reply to#1390619
> 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

[toc] | [prev] | [next] | [standalone]


#1391929 — Re: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available

FromDavid Miller <davem@davemloft.net>
Date2016-05-02 01:40 +0200
SubjectRe: [PATCH net-next] of: of_mdio: Check if MDIO bus controller is available
Message-ID<ru97X-1fo-3@gated-at.bofh.it>
In reply to#1390573
From: Florian Fainelli <f.fainelli@gmail.com>
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@gmail.com>

Applied, thanks Florian.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web