static int mv88e6xxx_wait(struct mv88e6xxx_chip *chip, int addr, int reg,
                          u16 mask)
 {
-       unsigned long timeout = jiffies + HZ / 10;
+       int i;
 
-       while (time_before(jiffies, timeout)) {
+       for (i = 0; i < 16; i++) {
                u16 val;
                int err;
 
 static int mv88e6xxx_ppu_disable(struct mv88e6xxx_chip *chip)
 {
        int ret;
-       unsigned long timeout;
+       int i;
 
        ret = _mv88e6xxx_reg_read(chip, REG_GLOBAL, GLOBAL_CONTROL);
        if (ret < 0)
        if (ret)
                return ret;
 
-       timeout = jiffies + 1 * HZ;
-       while (time_before(jiffies, timeout)) {
+       for (i = 0; i < 16; i++) {
                ret = _mv88e6xxx_reg_read(chip, REG_GLOBAL, GLOBAL_STATUS);
                if (ret < 0)
                        return ret;
 
 static int mv88e6xxx_ppu_enable(struct mv88e6xxx_chip *chip)
 {
-       int ret, err;
-       unsigned long timeout;
+       int ret, err, i;
 
        ret = _mv88e6xxx_reg_read(chip, REG_GLOBAL, GLOBAL_CONTROL);
        if (ret < 0)
        if (err)
                return err;
 
-       timeout = jiffies + 1 * HZ;
-       while (time_before(jiffies, timeout)) {
+       for (i = 0; i < 16; i++) {
                ret = _mv88e6xxx_reg_read(chip, REG_GLOBAL, GLOBAL_STATUS);
                if (ret < 0)
                        return ret;