|
@@ -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;
|
|
|
}
|