summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/smc911x.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 5d51406..d674ce2 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -270,6 +270,12 @@ 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 1;
}