The lan91c96_detect_chip routine is not correct according to the manual. Signed-off-by: YanJun Yang <yangyj...@gmail.com> --- drivers/net/lan91c96.c | 2 +- drivers/net/lan91c96.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/lan91c96.c b/drivers/net/lan91c96.c index bd6966e..2550aa2 100644 --- a/drivers/net/lan91c96.c +++ b/drivers/net/lan91c96.c @@ -780,7 +780,7 @@ static int lan91c96_detect_chip(struct eth_device *dev) u8 chip_id; int r; SMC_SELECT_BANK(dev, 3); - chip_id = SMC_inw(dev, 0xA) & LAN91C96_REV_REVID; + chip_id = (SMC_inw(dev, 0xA) & LAN91C96_REV_CHIPID) >> LAN91C96_CHIPID_SHIFT; SMC_SELECT_BANK(dev, 0); for (r = 0; r < sizeof(supported_chips) / sizeof(struct id_type); r++) if (chip_id == supported_chips[r].id) diff --git a/drivers/net/lan91c96.h b/drivers/net/lan91c96.h index 6fbb0e3..609c92b 100644 --- a/drivers/net/lan91c96.h +++ b/drivers/net/lan91c96.h @@ -519,7 +519,8 @@ typedef unsigned long int dword; **************************************************************************** */ #define LAN91C96_REV_REVID (0xFU << 0) -#define LAN91C96_REV_CHIPID (0xFU << 4) +#define LAN91C96_CHIPID_SHIFT 4 +#define LAN91C96_REV_CHIPID (0xFU << LAN91C96_CHIPID_SHIFT) /* **************************************************************************** -- 1.5.6.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot