From: Yanjun Yang Date: Tue, 28 Dec 2010 08:08:25 +0000 (+0800) Subject: NET: lan91c96: Correct chip detect logic X-Git-Tag: v2011.03-rc1~22 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=16721715b9f753c6f165bb62eb8e6f57652cc3dc;p=oweals%2Fu-boot.git NET: lan91c96: Correct chip detect logic The lan91c96_detect_chip routine is not correct according to the manual. Signed-off-by: YanJun Yang --- diff --git a/drivers/net/lan91c96.c b/drivers/net/lan91c96.c index bd6966ed76..883f3a7c5d 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) >> 4; SMC_SELECT_BANK(dev, 0); for (r = 0; r < sizeof(supported_chips) / sizeof(struct id_type); r++) if (chip_id == supported_chips[r].id)