net: dsa: mv88e6060: use the correct bit shift for mac0
authorNeil Armstrong <narmstrong@baylibre.com>
Tue, 10 Nov 2015 15:51:32 +0000 (16:51 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Nov 2015 01:16:16 +0000 (20:16 -0500)
According to the mv88e6060 datasheet, the first mac byte must
be at position 9 instead of 8 since the bit 8 is used to select
if the mac address must differ for each port for Pause frames.
Use the correct shift and set the same mac address for all port.

Acked-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6060.c

index 10647ade2f6d1663cb41f7a0c21a75137e176898..cd08079e84ad59e49f18255af7c26f448ddaa03c 100644 (file)
@@ -188,7 +188,8 @@ static int mv88e6060_setup(struct dsa_switch *ds)
 
 static int mv88e6060_set_addr(struct dsa_switch *ds, u8 *addr)
 {
-       REG_WRITE(REG_GLOBAL, 0x01, (addr[0] << 8) | addr[1]);
+       /* Use the same MAC Address as FD Pause frames for all ports */
+       REG_WRITE(REG_GLOBAL, 0x01, (addr[0] << 9) | addr[1]);
        REG_WRITE(REG_GLOBAL, 0x02, (addr[2] << 8) | addr[3]);
        REG_WRITE(REG_GLOBAL, 0x03, (addr[4] << 8) | addr[5]);