diff options
author | thompsa <thompsa@FreeBSD.org> | 2009-10-26 21:47:16 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2009-10-26 21:47:16 +0000 |
commit | e7629ee2bb8183368e57023949d649f501ab1e3a (patch) | |
tree | 26d1a93a0f4d08ef8f9a568d58099f7c70932e45 /sys/dev/usb/controller/uhci_pci.c | |
parent | 8f17b6fdd9def8c843751b1b5f7eb581d17a8a56 (diff) | |
download | FreeBSD-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.c | 15 |
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) { |