|
@@ -3002,6 +3002,19 @@ static int mv88e6xxx_g1_set_age_time(struct mv88e6xxx_chip *chip,
|
|
|
return mv88e6xxx_write(chip, REG_GLOBAL, GLOBAL_ATU_CONTROL, val);
|
|
|
}
|
|
|
|
|
|
+static int mv88e6xxx_set_ageing_time(struct dsa_switch *ds,
|
|
|
+ unsigned int ageing_time)
|
|
|
+{
|
|
|
+ struct mv88e6xxx_chip *chip = ds_to_priv(ds);
|
|
|
+ int err;
|
|
|
+
|
|
|
+ mutex_lock(&chip->reg_lock);
|
|
|
+ err = mv88e6xxx_g1_set_age_time(chip, ageing_time);
|
|
|
+ mutex_unlock(&chip->reg_lock);
|
|
|
+
|
|
|
+ return err;
|
|
|
+}
|
|
|
+
|
|
|
static int mv88e6xxx_g1_setup(struct mv88e6xxx_chip *chip)
|
|
|
{
|
|
|
struct dsa_switch *ds = chip->ds;
|
|
@@ -3980,6 +3993,7 @@ static struct dsa_switch_driver mv88e6xxx_switch_driver = {
|
|
|
.set_eeprom = mv88e6xxx_set_eeprom,
|
|
|
.get_regs_len = mv88e6xxx_get_regs_len,
|
|
|
.get_regs = mv88e6xxx_get_regs,
|
|
|
+ .set_ageing_time = mv88e6xxx_set_ageing_time,
|
|
|
.port_bridge_join = mv88e6xxx_port_bridge_join,
|
|
|
.port_bridge_leave = mv88e6xxx_port_bridge_leave,
|
|
|
.port_stp_state_set = mv88e6xxx_port_stp_state_set,
|