> +/* Support 10, 100, 200, 1000, 2500, 5000, 10000 Mbps (e.g. 88E6393X) > + * This function adds new speed 5000 supported by Amethyst family. > + * Function mv88e6xxx_port_set_speed_duplex() can't be used as the register > + * values for speeds 2500 & 5000 conflict. > + */ Thanks, that should stop my or somebody else trying to wrong combine them. > +/* Offset 0x10 & 0x11: EPC */ > + > +static int mv88e6393x_epc_wait_ready(struct mv88e6xxx_chip *chip, int port) > +{ > + int bit = __bf_shf(MV88E6393X_PORT_EPC_CMD_BUSY); > + > + return mv88e6xxx_port_wait_bit(chip, port, MV88E6393X_PORT_EPC_CMD, bit, 0); > +} To follow the naming convention, this should really be called mv88e6393x_port_epc_wait_ready > +int mv88e6393x_serdes_irq_enable(struct mv88e6xxx_chip *chip, int port, > + int lane, bool enable) It can be hard to tell in a diff, but the indentation looks wrong here. 'int lane' should line up with 'struct'. > +{ > + u8 cmode = chip->ports[port].cmode; > + int err = 0; > + > + switch (cmode) { > + case MV88E6XXX_PORT_STS_CMODE_SGMII: > + case MV88E6XXX_PORT_STS_CMODE_1000BASEX: > + case MV88E6XXX_PORT_STS_CMODE_2500BASEX: > + case MV88E6XXX_PORT_STS_CMODE_5GBASER: > + case MV88E6XXX_PORT_STS_CMODE_10GBASER: > + err = mv88e6390_serdes_irq_enable_sgmii(chip, lane, enable); > + } > + > + return err; > +} > + > +irqreturn_t mv88e6393x_serdes_irq_status(struct mv88e6xxx_chip *chip, int port, > + int lane) Maybe here as well? > +int mv88e6393x_setup_errata(struct mv88e6xxx_chip *chip) It should have _serdes_ in the name to follow the naming convention. Andrew