
From: Steve Sakoman sakoman@gmail.com
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 --- drivers/net/smc911x.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
Index: u-boot-arm/drivers/net/smc911x.c =================================================================== --- u-boot-arm.orig/drivers/net/smc911x.c +++ u-boot-arm/drivers/net/smc911x.c @@ -249,6 +249,12 @@ int smc911x_initialize(u8 dev_num, int b
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 b 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; }