Просмотр исходного кода

[PATCH] 3c59x: avoid blindly reading link status twice

In order to spare some I/O operations, be more intelligent about when to
read from the PHY.

Pointed out by Bogdan Costescu.

Signed-off-by: Tommy S. Christensen <tommy.christensen@tpack.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Tommy Christensen 19 лет назад
Родитель
Сommit
d9e46de34e
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      drivers/net/3c59x.c

+ 4 - 1
drivers/net/3c59x.c

@@ -1893,7 +1893,10 @@ vortex_timer(unsigned long data)
 		{
 			spin_lock_bh(&vp->lock);
 			mii_status = mdio_read(dev, vp->phys[0], MII_BMSR);
-			mii_status = mdio_read(dev, vp->phys[0], MII_BMSR);
+			if (!(mii_status & BMSR_LSTATUS)) {
+				/* Re-read to get actual link status */
+				mii_status = mdio_read(dev, vp->phys[0], MII_BMSR);
+			}
 			ok = 1;
 			if (vortex_debug > 2)
 				printk(KERN_DEBUG "%s: MII transceiver has status %4.4x.\n",