]> Pileus Git - ~andy/linux/blobdiff - drivers/net/ucc_geth.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[~andy/linux] / drivers / net / ucc_geth.c
index 0ee4c168e4c0ce00596a74599c5d8f408b386e67..281ce3d395324787c8b986f0dae5648e793aa853 100644 (file)
@@ -3853,7 +3853,13 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
 
        ugeth_vdbg("%s: IN", __FUNCTION__);
 
-       prop = of_get_property(np, "device-id", NULL);
+       prop = of_get_property(np, "cell-index", NULL);
+       if (!prop) {
+               prop = of_get_property(np, "device-id", NULL);
+               if (!prop)
+                       return -ENODEV;
+       }
+
        ucc_num = *prop - 1;
        if ((ucc_num < 0) || (ucc_num > 7))
                return -ENODEV;
@@ -3926,7 +3932,7 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
        ug_info->uf_info.irq = irq_of_parse_and_map(np, 0);
        fixed_link = of_get_property(np, "fixed-link", NULL);
        if (fixed_link) {
-               ug_info->mdio_bus = 0;
+               snprintf(ug_info->mdio_bus, MII_BUS_ID_SIZE, "0");
                ug_info->phy_address = fixed_link[0];
                phy = NULL;
        } else {
@@ -3954,7 +3960,7 @@ static int ucc_geth_probe(struct of_device* ofdev, const struct of_device_id *ma
                if (err)
                        return -1;
 
-               ug_info->mdio_bus = res.start;
+               snprintf(ug_info->mdio_bus, MII_BUS_ID_SIZE, "%x", res.start);
        }
 
        /* get the phy interface type, or default to MII */