[U-Boot] [PATCH] 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 +- 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

Hello.
On 26-12-2010 5:41, Yanjun Yang wrote:
The lan91c96_detect_chip routine is not correct according to the manual.
Signed-off-by: YanJun Yangyangyj.ee@gmail.com
[...]
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)>>
Indent with tabs, not spaces.
LAN91C96_CHIPID_SHIFT;
Your patch is line-wrapped.
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)
Align the macro values please.
WBR, Sergei
participants (2)
-
Sergei Shtylyov
-
Yanjun Yang