diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2010-05-22 02:36:56 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-05-22 02:36:56 -0400 |
commit | cf9b59e9d3e008591d1f54830f570982bb307a0d (patch) | |
tree | 113478ce8fd8c832ba726ffdf59b82cb46356476 /drivers/net/fsl_pq_mdio.c | |
parent | 44504b2bebf8b5823c59484e73096a7d6574471d (diff) | |
parent | f4b87dee923342505e1ddba8d34ce9de33e75050 (diff) |
Merge remote branch 'origin' into secretlab/next-devicetree
Merging in current state of Linus' tree to deal with merge conflicts and
build failures in vio.c after merge.
Conflicts:
drivers/i2c/busses/i2c-cpm.c
drivers/i2c/busses/i2c-mpc.c
drivers/net/gianfar.c
Also fixed up one line in arch/powerpc/kernel/vio.c to use the
correct node pointer.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/net/fsl_pq_mdio.c')
-rw-r--r-- | drivers/net/fsl_pq_mdio.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c index 16508535720a..b4c41d72c423 100644 --- a/drivers/net/fsl_pq_mdio.c +++ b/drivers/net/fsl_pq_mdio.c | |||
@@ -205,8 +205,6 @@ static int fsl_pq_mdio_find_free(struct mii_bus *new_bus) | |||
205 | static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np) | 205 | static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct device_node *np) |
206 | { | 206 | { |
207 | struct gfar __iomem *enet_regs; | 207 | struct gfar __iomem *enet_regs; |
208 | u32 __iomem *ioremap_tbipa; | ||
209 | u64 addr, size; | ||
210 | 208 | ||
211 | /* | 209 | /* |
212 | * This is mildly evil, but so is our hardware for doing this. | 210 | * This is mildly evil, but so is our hardware for doing this. |
@@ -220,9 +218,7 @@ static u32 __iomem *get_gfar_tbipa(struct fsl_pq_mdio __iomem *regs, struct devi | |||
220 | return &enet_regs->tbipa; | 218 | return &enet_regs->tbipa; |
221 | } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") || | 219 | } else if (of_device_is_compatible(np, "fsl,etsec2-mdio") || |
222 | of_device_is_compatible(np, "fsl,etsec2-tbi")) { | 220 | of_device_is_compatible(np, "fsl,etsec2-tbi")) { |
223 | addr = of_translate_address(np, of_get_address(np, 1, &size, NULL)); | 221 | return of_iomap(np, 1); |
224 | ioremap_tbipa = ioremap(addr, size); | ||
225 | return ioremap_tbipa; | ||
226 | } else | 222 | } else |
227 | return NULL; | 223 | return NULL; |
228 | } | 224 | } |
@@ -279,16 +275,19 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
279 | u32 __iomem *tbipa; | 275 | u32 __iomem *tbipa; |
280 | struct mii_bus *new_bus; | 276 | struct mii_bus *new_bus; |
281 | int tbiaddr = -1; | 277 | int tbiaddr = -1; |
278 | const u32 *addrp; | ||
282 | u64 addr = 0, size = 0; | 279 | u64 addr = 0, size = 0; |
283 | int err = 0; | 280 | int err; |
284 | 281 | ||
285 | priv = kzalloc(sizeof(*priv), GFP_KERNEL); | 282 | priv = kzalloc(sizeof(*priv), GFP_KERNEL); |
286 | if (!priv) | 283 | if (!priv) |
287 | return -ENOMEM; | 284 | return -ENOMEM; |
288 | 285 | ||
289 | new_bus = mdiobus_alloc(); | 286 | new_bus = mdiobus_alloc(); |
290 | if (NULL == new_bus) | 287 | if (!new_bus) { |
288 | err = -ENOMEM; | ||
291 | goto err_free_priv; | 289 | goto err_free_priv; |
290 | } | ||
292 | 291 | ||
293 | new_bus->name = "Freescale PowerQUICC MII Bus", | 292 | new_bus->name = "Freescale PowerQUICC MII Bus", |
294 | new_bus->read = &fsl_pq_mdio_read, | 293 | new_bus->read = &fsl_pq_mdio_read, |
@@ -297,8 +296,19 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
297 | new_bus->priv = priv; | 296 | new_bus->priv = priv; |
298 | fsl_pq_mdio_bus_name(new_bus->id, np); | 297 | fsl_pq_mdio_bus_name(new_bus->id, np); |
299 | 298 | ||
299 | addrp = of_get_address(np, 0, &size, NULL); | ||
300 | if (!addrp) { | ||
301 | err = -EINVAL; | ||
302 | goto err_free_bus; | ||
303 | } | ||
304 | |||
300 | /* Set the PHY base address */ | 305 | /* Set the PHY base address */ |
301 | addr = of_translate_address(np, of_get_address(np, 0, &size, NULL)); | 306 | addr = of_translate_address(np, addrp); |
307 | if (addr == OF_BAD_ADDR) { | ||
308 | err = -EINVAL; | ||
309 | goto err_free_bus; | ||
310 | } | ||
311 | |||
302 | map = ioremap(addr, size); | 312 | map = ioremap(addr, size); |
303 | if (!map) { | 313 | if (!map) { |
304 | err = -ENOMEM; | 314 | err = -ENOMEM; |