clocksource: improve sh_cmt clocksource overflow handling
[linux-2.6.git] / drivers / net / fsl_pq_mdio.c
index b0ce144..aa1eb88 100644 (file)
@@ -194,12 +194,17 @@ static int *create_irq_map(struct device_node *np)
 
 void fsl_pq_mdio_bus_name(char *name, struct device_node *np)
 {
-       const u32 *reg;
+       const u32 *addr;
+       u64 taddr = OF_BAD_ADDR;
 
-       reg = of_get_property(np, "reg", NULL);
+       addr = of_get_address(np, 0, NULL, NULL);
+       if (addr)
+               taddr = of_translate_address(np, addr);
 
-       snprintf(name, MII_BUS_ID_SIZE, "%s@%x", np->name, reg ? *reg : 0);
+       snprintf(name, MII_BUS_ID_SIZE, "%s@%llx", np->name,
+               (unsigned long long)taddr);
 }
+EXPORT_SYMBOL_GPL(fsl_pq_mdio_bus_name);
 
 /* Scan the bus in reverse, looking for an empty spot */
 static int fsl_pq_mdio_find_free(struct mii_bus *new_bus)
@@ -321,6 +326,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
        dev_set_drvdata(&ofdev->dev, new_bus);
 
        if (of_device_is_compatible(np, "fsl,gianfar-mdio") ||
+                       of_device_is_compatible(np, "fsl,gianfar-tbi") ||
                        of_device_is_compatible(np, "gianfar")) {
 #ifdef CONFIG_GIANFAR
                tbipa = get_gfar_tbipa(regs);
@@ -382,7 +388,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev,
         * The TBIPHY-only buses will find PHYs at every address,
         * so we mask them all but the TBI
         */
-       if (!of_device_is_compatible(np, "fsl,gianfar-mdio"))
+       if (of_device_is_compatible(np, "fsl,gianfar-tbi"))
                new_bus->phy_mask = ~(1 << tbiaddr);
 
        err = mdiobus_register(new_bus);