From 16721715b9f753c6f165bb62eb8e6f57652cc3dc Mon Sep 17 00:00:00 2001
From: Yanjun Yang <yangyj.ee@gmail.com>
Date: Tue, 28 Dec 2010 16:08:25 +0800
Subject: [PATCH] NET: lan91c96: Correct chip detect logic

The lan91c96_detect_chip routine is not correct according
to the manual.

Signed-off-by: YanJun Yang <yangyj.ee@gmail.com>
---
 drivers/net/lan91c96.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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)
-- 
2.39.5