Patchwork [1/2] of_mdio: Honour "status=disabled" property of device

login
register
mail settings
Submitter Alexander Sverdlin
Date Nov. 29, 2012, 7:45 a.m.
Message ID <50B71290.2060200@sysgo.com>
Download mbox | patch
Permalink /patch/202681/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Alexander Sverdlin - Nov. 29, 2012, 7:45 a.m.
From: Alexander Sverdlin <alexander.sverdlin@sysgo.com>

of_mdio: Honour "status=disabled" property of device

Currently of_mdiobus_register() function registers all PHY devices,
independetly from their status property in device tree. According to
"ePAPR 1.1" spec, device should only be registered if there is no
"status" property, or it has "ok" (or "okay") value (see
of_device_is_available()). In case of "platform devices",
of_platform_device_create_pdata() checks for "status" and ensures
that disabled devices are not pupulated. But such check for MDIO buses
was missing until now. Fix it.

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@sysgo.com>
---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring - Nov. 29, 2012, 5:12 p.m.
On 11/29/2012 01:45 AM, Alexander Sverdlin wrote:
> From: Alexander Sverdlin <alexander.sverdlin@sysgo.com>
> 
> of_mdio: Honour "status=disabled" property of device
> 
> Currently of_mdiobus_register() function registers all PHY devices,
> independetly from their status property in device tree. According to
> "ePAPR 1.1" spec, device should only be registered if there is no
> "status" property, or it has "ok" (or "okay") value (see
> of_device_is_available()). In case of "platform devices",
> of_platform_device_create_pdata() checks for "status" and ensures
> that disabled devices are not pupulated. But such check for MDIO buses
> was missing until now. Fix it.
> 
> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@sysgo.com>
> ---

Applied.

Rob

> --- linux.orig/drivers/of/of_mdio.c
> +++ linux/drivers/of/of_mdio.c
> @@ -53,7 +53,7 @@ int of_mdiobus_register(struct mii_bus *
>  		return rc;
>  
>  	/* Loop over the child nodes and register a phy_device for each one */
> -	for_each_child_of_node(np, child) {
> +	for_each_available_child_of_node(np, child) {
>  		const __be32 *paddr;
>  		u32 addr;
>  		int len;
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
> 

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Grant Likely - Nov. 29, 2012, 5:36 p.m.
On Thu, 29 Nov 2012 08:45:20 +0100, Alexander Sverdlin <asv@sysgo.com> wrote:
> From: Alexander Sverdlin <alexander.sverdlin@sysgo.com>
> 
> of_mdio: Honour "status=disabled" property of device
> 
> Currently of_mdiobus_register() function registers all PHY devices,
> independetly from their status property in device tree. According to
> "ePAPR 1.1" spec, device should only be registered if there is no
> "status" property, or it has "ok" (or "okay") value (see
> of_device_is_available()). In case of "platform devices",
> of_platform_device_create_pdata() checks for "status" and ensures
> that disabled devices are not pupulated. But such check for MDIO buses
> was missing until now. Fix it.
> 
> Signed-off-by: Alexander Sverdlin <alexander.sverdlin@sysgo.com>

Applied, thanks.

g.

> ---
> --- linux.orig/drivers/of/of_mdio.c
> +++ linux/drivers/of/of_mdio.c
> @@ -53,7 +53,7 @@ int of_mdiobus_register(struct mii_bus *
>  		return rc;
>  
>  	/* Loop over the child nodes and register a phy_device for each one */
> -	for_each_child_of_node(np, child) {
> +	for_each_available_child_of_node(np, child) {
>  		const __be32 *paddr;
>  		u32 addr;
>  		int len;

Patch

--- linux.orig/drivers/of/of_mdio.c
+++ linux/drivers/of/of_mdio.c
@@ -53,7 +53,7 @@  int of_mdiobus_register(struct mii_bus *
 		return rc;
 
 	/* Loop over the child nodes and register a phy_device for each one */
-	for_each_child_of_node(np, child) {
+	for_each_available_child_of_node(np, child) {
 		const __be32 *paddr;
 		u32 addr;
 		int len;