summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Sakoman <sakoman@gmail.com>2009-10-20 18:21:18 +0200
committerTom Rix <Tom.Rix@windriver.com>2009-10-24 09:55:25 -0500
commit4bc3d2afb380e78fdbb9c501d9a8da6d59eb178e (patch)
treeedd36dd7f90cf2e810c1fb6ec892302654f1494d
parentf3807374787e4394efb767e2e8527887f57e51b8 (diff)
ARM: OMAP3: Refactors the SM911x driver
Move the test up in the function to not hang on systems without ethernet. Signed-off-by: Steve Sakoman <sakoman@gmail.com> Acked-by: Ben Warren <biggerbadderben@gmail.com>
-rw-r--r--drivers/net/smc911x.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index b106ec9732..df7347897b 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -249,6 +249,12 @@ int smc911x_initialize(u8 dev_num, int base_addr)
dev->iobase = base_addr;
+ /* Try to detect chip. Will fail if not present. */
+ if (smc911x_detect_chip(dev)) {
+ free(dev);
+ return 0;
+ }
+
addrh = smc911x_get_mac_csr(dev, ADDRH);
addrl = smc911x_get_mac_csr(dev, ADDRL);
dev->enetaddr[0] = addrl;
@@ -264,12 +270,6 @@ int smc911x_initialize(u8 dev_num, int base_addr)
dev->recv = smc911x_rx;
sprintf(dev->name, "%s-%hu", DRIVERNAME, dev_num);
- /* Try to detect chip. Will fail if not present. */
- if (smc911x_detect_chip(dev)) {
- free(dev);
- return 0;
- }
-
eth_register(dev);
return 0;
}