diff options
author | Alexander Yurchenko <grange@cvs.openbsd.org> | 2006-12-03 16:23:42 +0000 |
---|---|---|
committer | Alexander Yurchenko <grange@cvs.openbsd.org> | 2006-12-03 16:23:42 +0000 |
commit | c0217244f0fb715ace376f1fdbff8f07c37a47ce (patch) | |
tree | 000151e0f4c429358b347ebe2491e63f293a361c /sys/dev | |
parent | 9cb1eceeabe4336705be57a44904e613028249a3 (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.c | 10 |
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); |