Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/dev/usb
smb%NetBSD.org@localhost said:
> Patch from Jared McNeill to prevent USB interrupt storms on resume on
> Thinkpad T61. (Note: to prevent a very similar-seeming problem, T61
> users should also install firmware 2.06 or later, according to
> thinkwiki.)
This doesn't look like a real fix.
What interrupt bits caused the storm - was it the
"host controller halted" one?
If yes, the appended patch should be better.
(And why do you think the firmware is to blame? What is
that similar-looking problem?)
best regards
Matthias
-------------------------------------------------------------------
-------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr. Harald Bolt,
Dr. Sebastian M. Schmidt
-------------------------------------------------------------------
-------------------------------------------------------------------
#
# old_revision [39e985f9ba4cf317402eeea6fc3953c5d09539f1]
#
# patch "sys/dev/usb/uhci.c"
# from [c0b6d6ac26b5a10f86781bdf072c39d7a9d37dc1]
# to [b9a6a7339830b606091e96cfb2cfdc3a6b3ae5f5]
#
============================================================
--- sys/dev/usb/uhci.c c0b6d6ac26b5a10f86781bdf072c39d7a9d37dc1
+++ sys/dev/usb/uhci.c b9a6a7339830b606091e96cfb2cfdc3a6b3ae5f5
@@ -1252,15 +1252,13 @@ uhci_intr1(uhci_softc_t *sc)
USBDEVNAME(sc->sc_bus.bdev));
}
if (status & UHCI_STS_HCH) {
- /* no acknowledge needed */
- if (!sc->sc_dying) {
- printf("%s: host controller halted\n",
- USBDEVNAME(sc->sc_bus.bdev));
+ ack |= UHCI_STS_HCH;
#ifdef UHCI_DEBUG
+ printf("%s: host controller halted\n",
+ USBDEVNAME(sc->sc_bus.bdev));
+ if (uhcidebug > 3)
uhci_dump_all(sc);
#endif
- }
- sc->sc_dying = 1;
}
if (!ack)
Home |
Main Index |
Thread Index |
Old Index