]> rtime.felk.cvut.cz Git - zynq/linux.git/commitdiff
net: xilinx_emacps: Fix mdio name initialization again
authorMichal Simek <michal.simek@xilinx.com>
Thu, 22 Nov 2012 07:41:11 +0000 (08:41 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Fri, 23 Nov 2012 08:31:14 +0000 (09:31 +0100)
The patch
"net: xilinx_emacps: Fix mdio name initialization"
(sha1: 4f156ebc944e3fa4f5ee4045e94aed169fcf7f4b)
has fixed issue with several emacps drivers.

But the patch
"net: xilinx_emacps: Remove CONFIG_OF conditionals"
(sha1: 8ff4e2255a679524a49693a14abc0980442f90b8)
has reverted this bug fix.

This patch just add this functionality again.

Reported-by: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/ethernet/xilinx/xilinx_emacps.c

index 9814bee7e2b1ccf506e576a8e6e7027aadc7548c..e4561f624ab918d9daf8212947f13a7a9cce37f5 100644 (file)
@@ -899,6 +899,7 @@ static int xemacps_mii_init(struct net_local *lp)
        int rc = -ENXIO, i;
        struct resource res;
        struct device_node *np = of_get_parent(lp->phy_node);
+       struct device_node *npp;
 
        lp->mii_bus = mdiobus_alloc();
        if (lp->mii_bus == NULL) {
@@ -921,7 +922,8 @@ static int xemacps_mii_init(struct net_local *lp)
 
        for (i = 0; i < PHY_MAX_ADDR; i++)
                lp->mii_bus->irq[i] = PHY_POLL;
-       of_address_to_resource(np, 0, &res);
+       npp = of_get_parent(np);
+       of_address_to_resource(npp, 0, &res);
        snprintf(lp->mii_bus->id, MII_BUS_ID_SIZE, "%.8llx",
                 (unsigned long long)res.start);
        if (of_mdiobus_register(lp->mii_bus, np))