Fix MAC address setting in DM9000 driver.
authorstefano babic <sbabic@denx.de>
Tue, 21 Aug 2007 13:50:33 +0000 (15:50 +0200)
committerWolfgang Denk <wd@denx.de>
Wed, 29 Aug 2007 00:13:09 +0000 (02:13 +0200)
The logic to check if there is a correct MAC address in the DM9000
EEPROM, added in the last patch, is wrong. Now the MAC address is
always taken from the environment, even if a suitable MAC is present
in the EEPROM.

Signed-off-by: Stefano Babic <sbabic@denx.de>
drivers/dm9000x.c

index 78acb097ef88c773b50ad139b0c90361f94cb7f7..e0d531bd917c9a772577a07d719a7a848adf3322 100644 (file)
@@ -303,8 +303,8 @@ eth_init(bd_t * bd)
        for (i = 0; i < 6; i++)
                ((u16 *) bd->bi_enetaddr)[i] = read_srom_word(i);
 
-       if (!is_zero_ether_addr(bd->bi_enetaddr) &&
-           !is_mutlicast_ether_addr(bd->bi_enetaddr)) {
+       if (is_zero_ether_addr(bd->bi_enetaddr) ||
+           is_multicast_ether_addr(bd->bi_enetaddr)) {
                /* try reading from environment */
                u8 i;
                char *s, *e;
@@ -542,7 +542,7 @@ read_srom_word(int offset)
 {
        DM9000_iow(DM9000_EPAR, offset);
        DM9000_iow(DM9000_EPCR, 0x4);
-       udelay(200);
+       udelay(8000);
        DM9000_iow(DM9000_EPCR, 0x0);
        return (DM9000_ior(DM9000_EPDRL) + (DM9000_ior(DM9000_EPDRH) << 8));
 }