Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1390573 > unrolled thread
| Started by | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| First post | 2016-04-29 00:00 +0200 |
| Last post | 2016-05-02 01:40 +0200 |
| Articles | 6 — 3 participants |
Back to article view | Back to linux.kernel
[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
| From | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| Date | 2016-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]
| From | Andrew Lunn <andrew@lunn.ch> |
|---|---|
| Date | 2016-04-29 00:10 +0200 |
| Subject | Re: [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]
| From | Andrew Lunn <andrew@lunn.ch> |
|---|---|
| Date | 2016-04-29 00:20 +0200 |
| Subject | Re: [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]
| From | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| Date | 2016-04-29 01:20 +0200 |
| Subject | Re: [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]
| From | Andrew Lunn <andrew@lunn.ch> |
|---|---|
| Date | 2016-04-29 01:30 +0200 |
| Subject | Re: [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]
| From | David Miller <davem@davemloft.net> |
|---|---|
| Date | 2016-05-02 01:40 +0200 |
| Subject | Re: [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