diff options
author | Andrew Lunn <andrew@lunn.ch> | 2016-08-19 01:01:56 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-20 03:14:07 +0300 |
commit | 0f02b4f75245c9f11f38ed983a2f5e21fd780e80 (patch) | |
tree | 76e5686496f0596c937cd1777618af83b2232f47 | |
parent | 6441e6695acfce66499c186c591f319a3b125de7 (diff) | |
download | linux-0f02b4f75245c9f11f38ed983a2f5e21fd780e80.tar.xz |
dsa: mv88e6xxx: Use mv88e6xx_wait in mv88e6xxx_update()
Now that mv88e6xx_wait() iterated on a counter than a fixed time
interval, it implements the same mechanism as mv88e6xxx_update() uses.
So use it in mv88e6xx_wait().
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/dsa/mv88e6xxx/chip.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index ac8e9af4879f..8c846bce4edf 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -333,20 +333,12 @@ static int mv88e6xxx_update(struct mv88e6xxx_chip *chip, int addr, int reg, u16 update) { u16 val; - int i, err; + int err; /* Wait until the previous operation is completed */ - for (i = 0; i < 16; ++i) { - err = mv88e6xxx_read(chip, addr, reg, &val); - if (err) - return err; - - if (!(val & BIT(15))) - break; - } - - if (i == 16) - return -ETIMEDOUT; + err = mv88e6xxx_wait(chip, addr, reg, BIT(15)); + if (err) + return err; /* Set the Update bit to trigger a write operation */ val = BIT(15) | update; |