From cc1220697603b83b232bc7b392995c9b874e2d57 Mon Sep 17 00:00:00 2001 From: Josef Karthauser Date: Sun, 26 May 2002 22:11:34 +0000 Subject: [PATCH] MFNetBSD: revision 1.124 date: 2002/05/26 03:10:02; author: minoura; state: Exp; lines: +3 -3 Clear done_head in the HCCA *before* acknoledging the interrupt. Driver lost some completed transfers under heavy loads. --- sys/dev/usb/ohci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index de48324c92d6..dd312e529f9f 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.123 2002/05/19 06:24:31 augustss Exp $ */ +/* $NetBSD: ohci.c,v 1.124 2002/05/26 03:10:02 minoura Exp $ */ /* $FreeBSD$ */ /* @@ -1152,6 +1152,7 @@ ohci_intr1(ohci_softc_t *sc) intrs |= OREAD4(sc, OHCI_INTERRUPT_STATUS); done &= ~OHCI_DONE_INTRS; } + sc->sc_hcca->hcca_done_head = 0; } else intrs = OREAD4(sc, OHCI_INTERRUPT_STATUS); @@ -1182,7 +1183,6 @@ ohci_intr1(ohci_softc_t *sc) } if (eintrs & OHCI_WDH) { ohci_add_done(sc, done &~ OHCI_DONE_INTRS); - sc->sc_hcca->hcca_done_head = 0; usb_schedsoftintr(&sc->sc_bus); eintrs &= ~OHCI_WDH; }