
From: Jeff Garzik <jgarzik@pobox.com>

From: Neil Horman <nhorman@redhat.com>

Might fix a few 10bT problems whihc people have been reporting.

There are a few coding errors, and according to the docs the macro which is
being used to determine the presence of an MII interface was off by a few
bits.


---

 drivers/net/3c59x.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/net/3c59x.c~3c59x-xcvr-fix drivers/net/3c59x.c
--- 25/drivers/net/3c59x.c~3c59x-xcvr-fix	2004-03-09 18:41:38.000000000 -0800
+++ 25-akpm/drivers/net/3c59x.c	2004-03-09 18:46:42.000000000 -0800
@@ -712,7 +712,7 @@ enum Window3 {			/* Window 3: MAC/config
 #define RAM_SPEED(v)	BFEXT(v, 4, 2)
 #define ROM_SIZE(v)		BFEXT(v, 6, 2)
 #define RAM_SPLIT(v)	BFEXT(v, 16, 2)
-#define XCVR(v)			BFEXT(v, 20, 4)
+#define XCVR(v)			BFEXT(v, 21, 16)
 #define AUTOSELECT(v)	BFEXT(v, 24, 1)
 
 enum Window4 {		/* Window 4: Xcvr/media bits. */
@@ -1366,7 +1366,7 @@ static int __devinit vortex_probe1(struc
 			vp->available_media = 0x40;
 		config = inl(ioaddr + Wn3_Config);
 		if (print_info) {
-			printk(KERN_DEBUG "  Internal config register is %4.4x, "
+			printk(KERN_INFO "  Internal config register is %4.4x, "
 				   "transceivers %#x.\n", config, inw(ioaddr + Wn3_Options));
 			printk(KERN_INFO "  %dK %s-wide RAM %s Rx:Tx split, %s%s interface.\n",
 				   8 << RAM_SIZE(config),
@@ -2875,7 +2875,7 @@ static int vortex_ioctl(struct net_devic
 	long ioaddr = dev->base_addr;
 	struct mii_ioctl_data *data = (struct mii_ioctl_data *)&rq->ifr_data;
 	int phy = vp->phys[0] & 0x1f;
-	int retval;
+	int retval = 0;
 
 	switch(cmd) {
 	case SIOCGMIIPHY:		/* Get address of MII PHY in use. */
@@ -2900,7 +2900,6 @@ static int vortex_ioctl(struct net_devic
 		retval = -EOPNOTSUPP;
 		break;
 	}
-
 	return retval;
 }
 

_
