Hi Andrew, On Fri, 20 Nov 2020 02:29:06 +0100 Andrew Lunn <andrew@xxxxxxx> wrote: > > + if (speed >= 2500 && port > 0 && port < 9) > > + return -EOPNOTSUPP; > > Maybe i'm missing something, but it looks like at this point you can > call > > return mv88e6xxx_port_set_speed_duplex(chip, port, speed, true, true, duplex); He can't. That function does not support speed 5000. You can't simply add it, because it clashes with register value for speed 2500 on previous switches (Peridot, Topaz). Amethyst reg val Peridot + Topaz reg val 2500 SPD_1000 | ALT_BIT SPD_10000 | ALT_BIT 5000 SPD_10000 | ALT_BIT not supported 10000 SPD_UNFORCED SPD_UNFORCED When I sent my proposal for Amethyst I somehow did it, and you commented [1]: > This is getting more and more complex. Maybe it is time to refactor it? And I agree :) Marek [1] https://www.spinics.net/lists/netdev/msg678090.html