diff options
author | Steve Sakoman <sakoman@gmail.com> | 2009-10-20 18:21:18 +0200 |
---|---|---|
committer | Tom Rix <Tom.Rix@windriver.com> | 2009-10-24 09:55:25 -0500 |
commit | 4bc3d2afb380e78fdbb9c501d9a8da6d59eb178e (patch) | |
tree | edd36dd7f90cf2e810c1fb6ec892302654f1494d /drivers/net | |
parent | f3807374787e4394efb767e2e8527887f57e51b8 (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>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/smc911x.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index b106ec97320..df7347897b1 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; } |