Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Apr 2009 17:15:50 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r190645 - head/sys/dev/ed
Message-ID:  <200904021715.n32HFoqw070812@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Thu Apr  2 17:15:49 2009
New Revision: 190645
URL: http://svn.freebsd.org/changeset/base/190645

Log:
  Minor DLINK DL100xx support tweaks:
  
  The DIROUT bit difference between the 19 and 22 is annoying.  We can
  set both bits on both parts without ill effect.  Use this trick to
  simplify the code.
  
  The DELAYS in the MII bus bit-bang code for the DL100xx parts aren't
  needed.  Eliminate them.

Modified:
  head/sys/dev/ed/dl100xxreg.h
  head/sys/dev/ed/if_ed_pccard.c

Modified: head/sys/dev/ed/dl100xxreg.h
==============================================================================
--- head/sys/dev/ed/dl100xxreg.h	Thu Apr  2 17:08:54 2009	(r190644)
+++ head/sys/dev/ed/dl100xxreg.h	Thu Apr  2 17:15:49 2009	(r190645)
@@ -38,5 +38,6 @@
 #define ED_DL100XX_MII_DATAIN	0x10
 #define ED_DL100XX_MII_DIROUT_22	0x20
 #define ED_DL100XX_MII_DIROUT_19	0x10
+#define ED_DL100XX_MII_DIROUT	0x30
 #define ED_DL100XX_MII_DATAOUT	0x40
 #define ED_DL100XX_MII_CLK	0x80

Modified: head/sys/dev/ed/if_ed_pccard.c
==============================================================================
--- head/sys/dev/ed/if_ed_pccard.c	Thu Apr  2 17:08:54 2009	(r190644)
+++ head/sys/dev/ed/if_ed_pccard.c	Thu Apr  2 17:15:49 2009	(r190645)
@@ -701,21 +701,14 @@ ed_pccard_dl100xx_mii_writebits(struct e
 {
 	int i;
 
-	if (sc->chip_type == ED_CHIP_TYPE_DL10022)
-		DL100XX_MIISET(sc, ED_DL100XX_MII_DIROUT_22);
-	else
-		DL100XX_MIISET(sc, ED_DL100XX_MII_DIROUT_19);
-
+	DL100XX_MIISET(sc, ED_DL100XX_MII_DIROUT);
 	for (i = nbits - 1; i >= 0; i--) {
 		if ((val >> i) & 1)
 			DL100XX_MIISET(sc, ED_DL100XX_MII_DATAOUT);
 		else
 			DL100XX_MIICLR(sc, ED_DL100XX_MII_DATAOUT);
-		DELAY(10);
 		DL100XX_MIISET(sc, ED_DL100XX_MII_CLK);
-		DELAY(10);
 		DL100XX_MIICLR(sc, ED_DL100XX_MII_CLK);
-		DELAY(10);
 	}
 }
 
@@ -725,19 +718,13 @@ ed_pccard_dl100xx_mii_readbits(struct ed
 	int i;
 	u_int val = 0;
 
-	if (sc->chip_type == ED_CHIP_TYPE_DL10022)
-		DL100XX_MIICLR(sc, ED_DL100XX_MII_DIROUT_22);
-	else
-		DL100XX_MIICLR(sc, ED_DL100XX_MII_DIROUT_19);
-
+	DL100XX_MIICLR(sc, ED_DL100XX_MII_DIROUT);
 	for (i = nbits - 1; i >= 0; i--) {
 		DL100XX_MIISET(sc, ED_DL100XX_MII_CLK);
-		DELAY(10);
 		val <<= 1;
 		if (ed_asic_inb(sc, ED_DL100XX_MIIBUS) & ED_DL100XX_MII_DATAIN)
 			val++;
 		DL100XX_MIICLR(sc, ED_DL100XX_MII_CLK);
-		DELAY(10);
 	}
 	return val;
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904021715.n32HFoqw070812>