diff options
author | kib <kib@FreeBSD.org> | 2013-07-16 20:14:23 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2013-07-16 20:14:23 +0000 |
commit | 2bcd8f2bdde51839ef449bf6de4ef3c24d0e3639 (patch) | |
tree | 7bbdbf49d6d6a238ad66044e14d6d8c80554cffa /sys/dev/usb | |
parent | 9461a158b1b5c96149f97d938d2266726e739e59 (diff) | |
download | FreeBSD-src-2bcd8f2bdde51839ef449bf6de4ef3c24d0e3639.zip FreeBSD-src-2bcd8f2bdde51839ef449bf6de4ef3c24d0e3639.tar.gz |
Add a tunable to force disable MSI use for xhci(4).
Requested and tested by: delphij
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/controller/xhci_pci.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/sys/dev/usb/controller/xhci_pci.c b/sys/dev/usb/controller/xhci_pci.c index 0d897d9..da16f51 100644 --- a/sys/dev/usb/controller/xhci_pci.c +++ b/sys/dev/usb/controller/xhci_pci.c @@ -132,6 +132,9 @@ xhci_pci_probe(device_t self) } } +static int xhci_use_msi = 1; +TUNABLE_INT("hw.usb.xhci.msi", &xhci_use_msi); + static void xhci_interrupt_poll(void *_sc) { @@ -171,13 +174,15 @@ xhci_pci_attach(device_t self) usb_callout_init_mtx(&sc->sc_callout, &sc->sc_bus.bus_mtx, 0); sc->sc_irq_rid = 0; - count = pci_msi_count(self); - if (count >= 1) { - count = 1; - if (pci_alloc_msi(self, &count) == 0) { - if (bootverbose) - device_printf(self, "MSI enabled\n"); - sc->sc_irq_rid = 1; + if (xhci_use_msi) { + count = pci_msi_count(self); + if (count >= 1) { + count = 1; + if (pci_alloc_msi(self, &count) == 0) { + if (bootverbose) + device_printf(self, "MSI enabled\n"); + sc->sc_irq_rid = 1; + } } } sc->sc_irq_res = bus_alloc_resource_any(self, SYS_RES_IRQ, |