Skip to content

Commit 5bcdb13

Browse files
triha2workkuba-moo
authored andcommitted
net: dsa: microchip: Write switch MAC address differently for KSZ8463
KSZ8463 uses 16-bit register definitions so it writes differently for 8-bit switch MAC address. Signed-off-by: Tristram Ha <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 15b8d3e commit 5bcdb13

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

drivers/net/dsa/microchip/ksz_common.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4821,7 +4821,16 @@ int ksz_switch_macaddr_get(struct dsa_switch *ds, int port,
48214821

48224822
/* Program the switch MAC address to hardware */
48234823
for (i = 0; i < ETH_ALEN; i++) {
4824-
ret = ksz_write8(dev, regs[REG_SW_MAC_ADDR] + i, addr[i]);
4824+
if (ksz_is_ksz8463(dev)) {
4825+
u16 addr16 = ((u16)addr[i] << 8) | addr[i + 1];
4826+
4827+
ret = ksz_write16(dev, regs[REG_SW_MAC_ADDR] + i,
4828+
addr16);
4829+
i++;
4830+
} else {
4831+
ret = ksz_write8(dev, regs[REG_SW_MAC_ADDR] + i,
4832+
addr[i]);
4833+
}
48254834
if (ret)
48264835
goto macaddr_drop;
48274836
}

0 commit comments

Comments
 (0)