diff options
Diffstat (limited to 'arch/powerpc/sysdev/fsl_soc.c')
-rw-r--r-- | arch/powerpc/sysdev/fsl_soc.c | 15 |
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 | ||
133 | static int __init gfar_mdio_of_init(void) | 133 | static 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 | ||
184 | unreg: | 188 | unreg: |
185 | platform_device_unregister(mdio_dev); | 189 | platform_device_unregister(mdio_dev); |
186 | err: | 190 | err: |
191 | of_node_put(np); | ||
187 | return ret; | 192 | return ret; |
188 | } | 193 | } |
189 | 194 | ||