diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index c2f38f6770aad9ac042ce00f8c62452c2447d4e4..742c0eae7fa3802d776e0f3a2f14dd2d8c5d8ce2 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -1806,16 +1806,10 @@ static int mv88e6xxx_setup_egress_floods(struct mv88e6xxx_chip *chip, int port) static int mv88e6xxx_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on) { - int err = 0; - - if (chip->info->ops->serdes_power) { - err = chip->info->ops->serdes_power(chip, port, on); - if (err) - dev_err(chip->dev, - "Failed to change SERDES power: %d\n", err); - } + if (chip->info->ops->serdes_power) + return chip->info->ops->serdes_power(chip, port, on); - return err; + return 0; } static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port) @@ -1982,10 +1976,10 @@ static int mv88e6xxx_port_enable(struct dsa_switch *ds, int port, struct phy_device *phydev) { struct mv88e6xxx_chip *chip = ds->priv; - int err = 0; + int err; mutex_lock(&chip->reg_lock); - mv88e6xxx_serdes_power(chip, port, true); + err = mv88e6xxx_serdes_power(chip, port, true); mutex_unlock(&chip->reg_lock); return err; @@ -1997,7 +1991,8 @@ static void mv88e6xxx_port_disable(struct dsa_switch *ds, int port, struct mv88e6xxx_chip *chip = ds->priv; mutex_lock(&chip->reg_lock); - mv88e6xxx_serdes_power(chip, port, false); + if (mv88e6xxx_serdes_power(chip, port, false)) + dev_err(chip->dev, "failed to power off SERDES\n"); mutex_unlock(&chip->reg_lock); }