summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriedowse <iedowse@FreeBSD.org>2002-12-26 13:25:57 +0000
committeriedowse <iedowse@FreeBSD.org>2002-12-26 13:25:57 +0000
commit89d815a706976c9d22c30011a3f1df19220d4026 (patch)
treeecc64adbd591f513598ceaac04553b88ffd04cda
parent3aeffc5ae105330dd9ca60a5280a41c51dedb88a (diff)
downloadFreeBSD-src-89d815a706976c9d22c30011a3f1df19220d4026.zip
FreeBSD-src-89d815a706976c9d22c30011a3f1df19220d4026.tar.gz
When resuming after a system suspend, re-issue the UHCI_CMD_MAXP
command in case this setting was not saved. Since bandwidth reclamation (-current only) often results in bus activity continuing to the end of every frame, most transfers would fail with IOERROR if this setting is missed. Reviewed by: n_hibma MFC after: 1 week
-rw-r--r--sys/dev/usb/uhci.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index c96294a..0f57724 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -720,6 +720,7 @@ uhci_power(int why, void *v)
UHCICMD(sc, cmd & ~UHCI_CMD_EGSM); /* back to normal */
UWRITE2(sc, UHCI_INTR, UHCI_INTR_TOCRCIE | UHCI_INTR_RIE |
UHCI_INTR_IOCE | UHCI_INTR_SPIE); /* re-enable intrs */
+ UHCICMD(sc, UHCI_CMD_MAXP);
uhci_run(sc, 1); /* and start traffic again */
usb_delay_ms(&sc->sc_bus, USB_RESUME_RECOVERY);
sc->sc_bus.use_polling--;
OpenPOWER on IntegriCloud