diff options
author | David Ungar <david.ungar@timesys.com> | 2010-10-11 14:24:02 -0400 |
---|---|---|
committer | David Ungar <david.ungar@timesys.com> | 2010-10-11 14:39:23 -0400 |
commit | 411a2e5823bf4280d70d5b9e9ea683e27b09f7b2 (patch) | |
tree | 96a2668a680ae0d93112ba65288281553bb50ebb | |
parent | 5ecaddd0ed2e7c7a65ccd5eb63b94df1a116e50e (diff) |
Ethernet fix
-rw-r--r-- | drivers/net/smc911x.c | 3 | ||||
-rw-r--r-- | drivers/net/smc911x.h | 5 |
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; } |