Add implementations for the mv88e6xxx switches to connect with the generic dsa operations for configuring the port MTU.
Signed-off-by: Chris Packham <chris.pack...@alliedtelesis.co.nz> --- drivers/net/dsa/mv88e6xxx/chip.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index c2a4ac99545d..04e4a7291d14 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2841,6 +2841,30 @@ static int mv88e6xxx_devlink_param_set(struct dsa_switch *ds, u32 id, return err; } +static int mv88e6xxx_port_change_mtu(struct dsa_switch *ds, int port, + int new_mtu) +{ + struct mv88e6xxx_chip *chip = ds->priv; + int err = -EOPNOTSUPP; + + mv88e6xxx_reg_lock(chip); + if (chip->info->ops->port_set_jumbo_size) + err = chip->info->ops->port_set_jumbo_size(chip, port, new_mtu); + mv88e6xxx_reg_unlock(chip); + + return err; +} + +static int mv88e6xxx_port_max_mtu(struct dsa_switch *ds, int port) +{ + struct mv88e6xxx_chip *chip = ds->priv; + + if (chip->info->ops->port_set_jumbo_size) + return 10240; + + return 1518; +} + static const struct devlink_param mv88e6xxx_devlink_params[] = { DSA_DEVLINK_PARAM_DRIVER(MV88E6XXX_DEVLINK_PARAM_ID_ATU_HASH, "ATU_hash", DEVLINK_PARAM_TYPE_U8, @@ -5562,6 +5586,8 @@ static const struct dsa_switch_ops mv88e6xxx_switch_ops = { .get_ts_info = mv88e6xxx_get_ts_info, .devlink_param_get = mv88e6xxx_devlink_param_get, .devlink_param_set = mv88e6xxx_devlink_param_set, + .port_change_mtu = mv88e6xxx_port_change_mtu, + .port_max_mtu = mv88e6xxx_port_max_mtu, }; static int mv88e6xxx_register_switch(struct mv88e6xxx_chip *chip) -- 2.27.0