summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-07-16 20:14:23 +0000
committerkib <kib@FreeBSD.org>2013-07-16 20:14:23 +0000
commit2bcd8f2bdde51839ef449bf6de4ef3c24d0e3639 (patch)
tree7bbdbf49d6d6a238ad66044e14d6d8c80554cffa /sys/dev/usb
parent9461a158b1b5c96149f97d938d2266726e739e59 (diff)
downloadFreeBSD-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.c19
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,
OpenPOWER on IntegriCloud