[PATCH 2.5] via-rhine 1.19-2.5: One more Rhine-I fix

Roger Luethi
2003-07-14T19:50:47Z

[-- Attachment #1: Type: text/plain, Size: 139 bytes --]

This patch fixes another way the Rhine-I found to break down under load. It
should bring Rhine-I behavior on par with the Rhine-II.

Roger

[-- Attachment #2: via-rhine-1.19-2.5.diff --]
[-- Type: text/plain, Size: 1103 bytes --]

--- linux-2.5/drivers/net/via-rhine.c.org 2003-07-14 21:49:56.000000000 +0200
+++ linux-2.5/drivers/net/via-rhine.c 2003-07-14 21:50:09.000000000 +0200
@@ -122,11 +122,14 @@
- No filtering multicast in promisc mode (Edward Peng)
- Fix for Rhine-I Tx timeouts

+ LK1.1.19 (Roger Luethi)
+ - Increase Tx threshold for unspecified errors
+
*/

#define DRV_NAME "via-rhine"
-#define DRV_VERSION "1.1.18-2.5"
-#define DRV_RELDATE "July-4-2003"
+#define DRV_VERSION "1.1.19-2.5"
+#define DRV_RELDATE "July-12-2003"

/* A few user-configurable values.
@@ -1664,9 +1667,13 @@
}
if ((intr_status & IntrTxError) && ~( IntrTxAborted | IntrTxUnderrun |
IntrTxDescRace )) {
- if (debug > 2)
- printk(KERN_INFO "%s: Unspecified error.\n",
- dev->name);
+ if (np->tx_thresh < 0xE0) {
+ writeb(np->tx_thresh += 0x20, ioaddr + TxConfig);
+ }
+ if (debug > 1)
+ printk(KERN_INFO "%s: Unspecified error. Tx "
+ "threshold now %2.2x.\n",
+ dev->name, np->tx_thresh);
}
if (intr_status & ( IntrTxAborted | IntrTxUnderrun | IntrTxDescRace |
IntrTxError ))