Patchwork [U-Boot] net/4xx: Install interrupt handler after driver registration

login
register
mail settings
Submitter Stefan Roese
Date July 12, 2011, 11:26 a.m.
Message ID <1310470007-6213-1-git-send-email-sr@denx.de>
Download mbox | patch
Permalink /patch/104345/
State Accepted
Commit 3ce04d9bba017012751cbecf25b923bcb02ccb54
Delegated to: Stefan Roese
Headers show

Comments

Stefan Roese - July 12, 2011, 11:26 a.m.
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>
---
 drivers/net/4xx_enet.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
Stefan Roese - July 28, 2011, 5:20 p.m.
On Tuesday 12 July 2011 13:26:47 Stefan Roese wrote:
> 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:".

Applied to u-boot-ppc4xx.

Thanks,
Stefan

--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office@denx.de

Patch

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;