summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2006-12-03 16:23:42 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2006-12-03 16:23:42 +0000
commitc0217244f0fb715ace376f1fdbff8f07c37a47ce (patch)
tree000151e0f4c429358b347ebe2491e63f293a361c /sys/dev
parent9cb1eceeabe4336705be57a44904e613028249a3 (diff)
Re-enable RX engine every time otherwise it occasionally
stops under unknown circumstances. Tested by many people, ok brad a long time ago.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/if_sis.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/pci/if_sis.c b/sys/dev/pci/if_sis.c
index 66072776164..5d88b3bf566 100644
--- a/sys/dev/pci/if_sis.c
+++ b/sys/dev/pci/if_sis.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_sis.c,v 1.75 2006/12/03 16:12:22 grange Exp $ */
+/* $OpenBSD: if_sis.c,v 1.76 2006/12/03 16:23:41 grange Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
* Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved.
@@ -1507,8 +1507,10 @@ sis_intr(void *arg)
if (status & (SIS_ISR_RX_ERR | SIS_ISR_RX_OFLOW))
sis_rxeoc(sc);
+#if 0
if (status & (SIS_ISR_RX_IDLE))
SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RX_ENABLE);
+#endif
if (status & SIS_ISR_SYSERR) {
sis_reset(sc);
@@ -1519,6 +1521,12 @@ sis_intr(void *arg)
/* Re-enable interrupts. */
CSR_WRITE_4(sc, SIS_IER, 1);
+ /*
+ * XXX: Re-enable RX engine every time otherwise it occasionally
+ * stops under unknown circumstances.
+ */
+ SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RX_ENABLE);
+
if (!IFQ_IS_EMPTY(&ifp->if_snd))
sis_start(ifp);