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.
This commit is contained in:
Josef Karthauser 2002-05-26 22:11:34 +00:00
parent 883d14d6c6
commit cc12206976

View File

@ -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;
}