aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev/fsl_soc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/sysdev/fsl_soc.c')
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 81af4bdf252a..4baad80ab731 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -132,15 +132,18 @@ EXPORT_SYMBOL(get_baudrate);
132 132
133static int __init gfar_mdio_of_init(void) 133static int __init gfar_mdio_of_init(void)
134{ 134{
135 struct device_node *np; 135 struct device_node *np = NULL;
136 unsigned int i;
137 struct platform_device *mdio_dev; 136 struct platform_device *mdio_dev;
138 struct resource res; 137 struct resource res;
139 int ret; 138 int ret;
140 139
141 for (np = NULL, i = 0; 140 np = of_find_compatible_node(np, NULL, "fsl,gianfar-mdio");
142 (np = of_find_compatible_node(np, "mdio", "gianfar")) != NULL; 141
143 i++) { 142 /* try the deprecated version */
143 if (!np)
144 np = of_find_compatible_node(np, "mdio", "gianfar");
145
146 if (np) {
144 int k; 147 int k;
145 struct device_node *child = NULL; 148 struct device_node *child = NULL;
146 struct gianfar_mdio_data mdio_data; 149 struct gianfar_mdio_data mdio_data;
@@ -179,11 +182,13 @@ static int __init gfar_mdio_of_init(void)
179 goto unreg; 182 goto unreg;
180 } 183 }
181 184
185 of_node_put(np);
182 return 0; 186 return 0;
183 187
184unreg: 188unreg:
185 platform_device_unregister(mdio_dev); 189 platform_device_unregister(mdio_dev);
186err: 190err:
191 of_node_put(np);
187 return ret; 192 return ret;
188} 193}
189 194