summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshiba <shiba@FreeBSD.org>2004-01-12 14:18:55 +0000
committershiba <shiba@FreeBSD.org>2004-01-12 14:18:55 +0000
commit28fa7df8e28cfe56e7ed6d2c420ca714a7787056 (patch)
tree40040a9f47fb93591cb7c6db7ce2f3c98e745403
parent9a454178d89f8764ea922918e4f09fdfb3b9053c (diff)
downloadFreeBSD-src-28fa7df8e28cfe56e7ed6d2c420ca714a7787056.zip
FreeBSD-src-28fa7df8e28cfe56e7ed6d2c420ca714a7787056.tar.gz
Fix a suspend/resume issue. My Compaq N400c works fine.
-rw-r--r--sys/dev/usb/uhci.c3
-rw-r--r--sys/dev/usb/uhci_pci.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index 15162f0..d969272 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -724,6 +724,9 @@ uhci_power(int why, void *v)
#endif
sc->sc_bus.use_polling++;
sc->sc_suspend = why;
+ UWRITE2(sc, UHCI_INTR, 0); /* disable interrupts */
+ uhci_globalreset(sc); /* reset the controller */
+ uhci_reset(sc);
if (cmd & UHCI_CMD_RS)
uhci_run(sc, 0); /* in case BIOS has started it */
diff --git a/sys/dev/usb/uhci_pci.c b/sys/dev/usb/uhci_pci.c
index 48996f6..b263201 100644
--- a/sys/dev/usb/uhci_pci.c
+++ b/sys/dev/usb/uhci_pci.c
@@ -166,6 +166,8 @@ uhci_pci_resume(device_t self)
{
uhci_softc_t *sc = device_get_softc(self);
+ pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2);
+
uhci_power(PWR_RESUME, sc);
bus_generic_resume(self);
OpenPOWER on IntegriCloud