summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/controller/uhci_pci.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2009-10-26 21:47:16 +0000
committerthompsa <thompsa@FreeBSD.org>2009-10-26 21:47:16 +0000
commite7629ee2bb8183368e57023949d649f501ab1e3a (patch)
tree26d1a93a0f4d08ef8f9a568d58099f7c70932e45 /sys/dev/usb/controller/uhci_pci.c
parent8f17b6fdd9def8c843751b1b5f7eb581d17a8a56 (diff)
downloadFreeBSD-src-e7629ee2bb8183368e57023949d649f501ab1e3a.zip
FreeBSD-src-e7629ee2bb8183368e57023949d649f501ab1e3a.tar.gz
Revert r198500 for now, this will break situations when
hw.pci.usb_early_takeover is set to zero and the SMM release is never done. Pointed out by: marcel
Diffstat (limited to 'sys/dev/usb/controller/uhci_pci.c')
-rw-r--r--sys/dev/usb/controller/uhci_pci.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/usb/controller/uhci_pci.c b/sys/dev/usb/controller/uhci_pci.c
index e367b23..3956ead 100644
--- a/sys/dev/usb/controller/uhci_pci.c
+++ b/sys/dev/usb/controller/uhci_pci.c
@@ -115,6 +115,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_resume(sc);
bus_generic_resume(self);
@@ -361,6 +363,19 @@ uhci_pci_attach(device_t self)
sc->sc_intr_hdl = NULL;
goto error;
}
+ /*
+ * Set the PIRQD enable bit and switch off all the others. We don't
+ * want legacy support to interfere with us XXX Does this also mean
+ * that the BIOS won't touch the keyboard anymore if it is connected
+ * to the ports of the root hub?
+ */
+#ifdef USB_DEBUG
+ if (pci_read_config(self, PCI_LEGSUP, 2) != PCI_LEGSUP_USBPIRQDEN) {
+ device_printf(self, "LegSup = 0x%04x\n",
+ pci_read_config(self, PCI_LEGSUP, 2));
+ }
+#endif
+ pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2);
err = uhci_init(sc);
if (!err) {
OpenPOWER on IntegriCloud