diff options
Diffstat (limited to 'drivers/net/tulip/media.c')
-rw-r--r-- | drivers/net/tulip/media.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/net/tulip/media.c b/drivers/net/tulip/media.c index 91cf9c86391..daddfa51853 100644 --- a/drivers/net/tulip/media.c +++ b/drivers/net/tulip/media.c @@ -69,11 +69,10 @@ int tulip_mdio_read(struct net_device *dev, int phy_id, int location) spin_lock_irqsave(&tp->mii_lock, flags); if (tp->chip_id == LC82C168) { - int i = 1000; iowrite32(0x60020000 + (phy_id<<23) + (location<<18), ioaddr + 0xA0); ioread32(ioaddr + 0xA0); ioread32(ioaddr + 0xA0); - while (--i > 0) { + for (i = 1000; i >= 0; --i) { barrier(); if ( ! ((retval = ioread32(ioaddr + 0xA0)) & 0x80000000)) break; @@ -131,13 +130,12 @@ void tulip_mdio_write(struct net_device *dev, int phy_id, int location, int val) spin_lock_irqsave(&tp->mii_lock, flags); if (tp->chip_id == LC82C168) { - int i = 1000; iowrite32(cmd, ioaddr + 0xA0); - do { + for (i = 1000; i >= 0; --i) { barrier(); if ( ! (ioread32(ioaddr + 0xA0) & 0x80000000)) break; - } while (--i > 0); + } spin_unlock_irqrestore(&tp->mii_lock, flags); return; } |