summaryrefslogtreecommitdiff
path: root/drivers/net/4xx_enet.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2011-07-12 13:26:47 +0200
committerStefan Roese <sr@denx.de>2011-07-28 19:16:16 +0200
commit3ce04d9bba017012751cbecf25b923bcb02ccb54 (patch)
treedce33217944fbf9337d3c140e772dafef191e056 /drivers/net/4xx_enet.c
parent3857f8f5a5a029a2ff403f83e7b9987cfdb09569 (diff)
downloadu-boot-imx-3ce04d9bba017012751cbecf25b923bcb02ccb54.zip
u-boot-imx-3ce04d9bba017012751cbecf25b923bcb02ccb54.tar.gz
u-boot-imx-3ce04d9bba017012751cbecf25b923bcb02ccb54.tar.bz2
net/4xx: Install interrupt handler after driver registration
Only install der 4xx-EMAC interrupt handlers *after* the core network driver is registered. This problem was noticed on the APM Taishan 440GX board, where the board hung upon bootup after displaying "Net:". Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'drivers/net/4xx_enet.c')
-rw-r--r--drivers/net/4xx_enet.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/net/4xx_enet.c b/drivers/net/4xx_enet.c
index b1763b1..f328574 100644
--- a/drivers/net/4xx_enet.c
+++ b/drivers/net/4xx_enet.c
@@ -2035,6 +2035,13 @@ int ppc_4xx_eth_initialize (bd_t * bis)
dev->send = ppc_4xx_eth_send;
dev->recv = ppc_4xx_eth_rx;
+ eth_register(dev);
+
+#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
+ miiphy_register(dev->name,
+ emac4xx_miiphy_read, emac4xx_miiphy_write);
+#endif
+
if (0 == virgin) {
/* set the MAL IER ??? names may change with new spec ??? */
#if defined(CONFIG_440SPE) || \
@@ -2072,13 +2079,6 @@ int ppc_4xx_eth_initialize (bd_t * bis)
dev);
virgin = 1;
}
-
- eth_register (dev);
-
-#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
- miiphy_register (dev->name,
- emac4xx_miiphy_read, emac4xx_miiphy_write);
-#endif
} /* end for each supported device */
return 0;