de2104x: wrong MAC address fix
authorMartin Langer <martin-langer@gmx.de>
Tue, 14 Oct 2008 01:49:38 +0000 (18:49 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Oct 2008 01:49:38 +0000 (18:49 -0700)
The de2104x returns sometimes a wrong MAC address. The wrong one is
like the original one, but it comes with an one byte shift. I found
this bug on an older alpha ev5 cpu. More details are available in Gentoo
bugreport #240718.

It seems the hardware is sometimes a little bit too slow for an
immediate access. This patch solves the problem by introducing a small
udelay.

Signed-off-by: Martin Langer <martin-langer@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tulip/de2104x.c

index f54c45049d50d86c700e3f18a5c2525321a662c9..124d5d690dde2508a29b8d5ae7bd907bcd259c38 100644 (file)
@@ -1688,6 +1688,7 @@ static void __devinit de21040_get_mac_address (struct de_private *de)
        unsigned i;
 
        dw32 (ROMCmd, 0);       /* Reset the pointer with a dummy write. */
+       udelay(5);
 
        for (i = 0; i < 6; i++) {
                int value, boguscnt = 100000;