On a transmit FIFO overflow (err, actually an underflow...) reset

both the transmit & receive sections of the MAC.
This commit is contained in:
dyoung 2005-12-13 05:07:14 +00:00
parent ce34305905
commit 830e4be4c8
1 changed files with 5 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: rtw.c,v 1.58 2005/11/23 04:12:33 dyoung Exp $ */
/* $NetBSD: rtw.c,v 1.59 2005/12/13 05:07:14 dyoung Exp $ */
/*-
* Copyright (c) 2004, 2005 David Young. All rights reserved.
*
@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.58 2005/11/23 04:12:33 dyoung Exp $");
__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.59 2005/12/13 05:07:14 dyoung Exp $");
#include "bpfilter.h"
@ -2035,14 +2035,13 @@ rtw_intr_ioerror(struct rtw_softc *sc, uint16_t isr)
if ((isr & RTW_INTR_TXFOVW) != 0) {
printf("%s: tx fifo overflow\n", sc->sc_dev.dv_xname);
xmtr = 1;
cr |= RTW_CR_TE;
rcvr = xmtr = 1;
cr |= RTW_CR_TE | RTW_CR_RE;
}
if ((isr & (RTW_INTR_RDU|RTW_INTR_RXFOVW)) != 0) {
cr = RTW_CR_RE;
cr |= RTW_CR_RE;
rcvr = 1;
return;
}
RTW_DPRINTF(RTW_DEBUG_BUGS, ("%s: restarting xmit/recv, isr %" PRIx16