summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Ungar <david.ungar@timesys.com>2010-10-11 14:24:02 -0400
committerDavid Ungar <david.ungar@timesys.com>2010-10-11 14:39:23 -0400
commit411a2e5823bf4280d70d5b9e9ea683e27b09f7b2 (patch)
tree96a2668a680ae0d93112ba65288281553bb50ebb
parent5ecaddd0ed2e7c7a65ccd5eb63b94df1a116e50e (diff)
Ethernet fix
-rw-r--r--drivers/net/smc911x.c3
-rw-r--r--drivers/net/smc911x.h5
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 18a729cfbc..c51b0a159f 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -253,6 +253,9 @@ int smc911x_initialize(u8 dev_num, int base_addr)
dev->iobase = base_addr;
+ if (smc911x_detect_chip(dev))
+ return 0;
+
addrh = smc911x_get_mac_csr(dev, ADDRH);
addrl = smc911x_get_mac_csr(dev, ADDRL);
dev->enetaddr[0] = addrl;
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
index 053e33016b..4781394fc2 100644
--- a/drivers/net/smc911x.h
+++ b/drivers/net/smc911x.h
@@ -442,7 +442,8 @@ static int smc911x_detect_chip(struct eth_device *dev)
val = smc911x_reg_read(dev, BYTE_TEST);
if (val != 0x87654321) {
- printf(DRIVERNAME ": Invalid chip endian 0x%08lx\n", val);
+ if (val == 0x21436587 || val == 0x43218765 || val == 0x65872143)
+ printf(DRIVERNAME ": Invalid chip endian 0x%08lx\n", val);
return -1;
}
@@ -455,7 +456,7 @@ static int smc911x_detect_chip(struct eth_device *dev)
return -1;
}
- printf(DRIVERNAME ": detected %s controller\n", chip_ids[i].name);
+ // printf(DRIVERNAME ": detected %s controller\n", chip_ids[i].name);
return 0;
}