BACKDUR calculation is wrong at case 5. Also some cosmetic around
smc911x_probe...
AFC_HI is about ((Rx Data Fifo Size)*2/3)/64
AFC_LO is AFC_HI/2
BACK_DUR is about 5uS*(AFC_LO) rounded down
Rx Data Fifo Size = 10560
AFC_HI = 110
AFC_LO = 55
BACK_DUR = 55 * 5 = 275
Signed-off-by: Bora Sahin <[EMAIL PROTECTED]>
Index: linux-2.6.18-rc4/drivers/net/smc911x.c
===================================================================
--- linux-2.6.18-rc4.orig/drivers/net/smc911x.c 2006-08-06 21:20:11.000000000
+0300
+++ linux-2.6.18-rc4/drivers/net/smc911x.c 2006-09-04 13:54:26.621458832
+0300
@@ -1884,7 +1882,7 @@
}
/*
- * Function: smc911x_probe(unsigned long ioaddr)
+ * Function: smc911x_probe(struct net_device *dev, unsigned long ioaddr)
*
* Purpose:
* Tests to see if a given ioaddr points to an SMC911x chip.
@@ -1917,7 +1915,7 @@
/* First, see if the endian word is recognized */
val = SMC_GET_BYTE_TEST();
- DBG(SMC_DEBUG_MISC, "%s: endian probe returned 0x%04x\n", CARDNAME,
val);
+ DBG(SMC_DEBUG_MISC, "%s: endian probe returned 0x%08x\n", CARDNAME,
val);
if (val != 0x87654321) {
printk(KERN_ERR "Invalid chip endian 0x08%x\n",val);
retval = -ENODEV;
@@ -1977,7 +1975,7 @@
case 4:/* 11520 Rx Data Fifo Size */
lp->afc_cfg=0x00783C9F;break;
case 5:/* 10560 Rx Data Fifo Size */
- lp->afc_cfg=0x006E374F;break;
+ lp->afc_cfg=0x006E378F;break;
case 6:/* 9600 Rx Data Fifo Size */
lp->afc_cfg=0x0064328F;break;
case 7:/* 8640 Rx Data Fifo Size */
@@ -2039,8 +2037,7 @@
}
}
if (dev->irq == 0) {
- printk("%s: Couldn't autodetect your IRQ. Use irq=xx.\n",
- dev->name);
+ printk("%s: Couldn't autodetect your IRQ\n", dev->name);
retval = -ENODEV;
goto err_out;
}
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html