svn commit: r185756 - head/sys/dev/re

Pyun YongHyeon yongari at FreeBSD.org
Sun Dec 7 18:48:42 PST 2008


Author: yongari
Date: Mon Dec  8 02:48:41 2008
New Revision: 185756
URL: http://svn.freebsd.org/changeset/base/185756

Log:
  Reduce spin wait time consumed in GMII register access routines.
  Waiting for 1ms for each GMII register access looks overkill and it
  may also decrease overall performance of driver because re(4)
  invokes mii_tick for every hz.
  
  Tested by:	rpaulo

Modified:
  head/sys/dev/re/if_re.c

Modified: head/sys/dev/re/if_re.c
==============================================================================
--- head/sys/dev/re/if_re.c	Mon Dec  8 02:38:13 2008	(r185755)
+++ head/sys/dev/re/if_re.c	Mon Dec  8 02:48:41 2008	(r185756)
@@ -417,13 +417,12 @@ re_gmii_readreg(device_t dev, int phy, i
 	}
 
 	CSR_WRITE_4(sc, RL_PHYAR, reg << 16);
-	DELAY(1000);
 
 	for (i = 0; i < RL_TIMEOUT; i++) {
+		DELAY(30);
 		rval = CSR_READ_4(sc, RL_PHYAR);
 		if (rval & RL_PHYAR_BUSY)
 			break;
-		DELAY(100);
 	}
 
 	if (i == RL_TIMEOUT) {
@@ -445,13 +444,12 @@ re_gmii_writereg(device_t dev, int phy, 
 
 	CSR_WRITE_4(sc, RL_PHYAR, (reg << 16) |
 	    (data & RL_PHYAR_PHYDATA) | RL_PHYAR_BUSY);
-	DELAY(1000);
 
 	for (i = 0; i < RL_TIMEOUT; i++) {
+		DELAY(30);
 		rval = CSR_READ_4(sc, RL_PHYAR);
 		if (!(rval & RL_PHYAR_BUSY))
 			break;
-		DELAY(100);
 	}
 
 	if (i == RL_TIMEOUT) {


More information about the svn-src-all mailing list