summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorBrad Smith <brad@cvs.openbsd.org>2008-11-19 08:17:38 +0000
committerBrad Smith <brad@cvs.openbsd.org>2008-11-19 08:17:38 +0000
commit36f33930903a23c45fdaf1ab5035b71d04e8c526 (patch)
treeb955a3c21ca4f83e4aece8bb444013bec470869c /sys/dev/ic
parent2e126ab14cf2f2a94f19eed4060eec69a2c9e000 (diff)
Do not reset TX threshold value whenever xl_init() is called. Instead
the initial threshould is initialized at device attach. Later the threshold could be increased if encountering a TX underrun error and the new threshold should be used in xl_init(). From FreeBSD Tested on quite a few 3c905/B/C/575 adapters.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/xl.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/ic/xl.c b/sys/dev/ic/xl.c
index cbab3bfd8af..05ba76ceac1 100644
--- a/sys/dev/ic/xl.c
+++ b/sys/dev/ic/xl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xl.c,v 1.82 2008/10/02 20:21:13 brad Exp $ */
+/* $OpenBSD: xl.c,v 1.83 2008/11/19 08:17:37 brad Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
@@ -1998,7 +1998,6 @@ xl_init(void *xsc)
CSR_WRITE_1(sc, XL_TX_FREETHRESH, XL_PACKET_SIZE >> 8);
/* Set the TX start threshold for best performance. */
- sc->xl_tx_thresh = XL_MIN_FRAMELEN;
CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_SET_START|sc->xl_tx_thresh);
/*
@@ -2570,6 +2569,9 @@ xl_attach(struct xl_softc *sc)
else
sc->xl_type = XL_TYPE_90X;
+ /* Set the TX start threshold for best performance. */
+ sc->xl_tx_thresh = XL_MIN_FRAMELEN;
+
timeout_set(&sc->xl_stsup_tmo, xl_stats_update, sc);
ifp->if_softc = sc;