Skip to content

Commit

Permalink
net: dsa: mv88e6xxx: handle SERDES error appropriately
Browse files Browse the repository at this point in the history
mv88e6xxx_serdes_power returns an error, so no need to print an error
message inside of it. Rather print it in its caller when the error is
ignored, which is in the mv88e6xxx_port_disable void function.

Catch and return its error in the counterpart mv88e6xxx_port_enable.

Fixes: 04aca99 ("dsa: mv88e6xxx: Enable/Disable SERDES on port enable/disable")
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
vivien authored and davem330 committed May 27, 2017
1 parent 5f1d258 commit 523a890
Showing 1 changed file with 7 additions and 12 deletions.
19 changes: 7 additions & 12 deletions drivers/net/dsa/mv88e6xxx/chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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;
Expand All @@ -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);
}

Expand Down

0 comments on commit 523a890

Please sign in to comment.