summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/pci.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2012-03-29 19:03:22 +0000
committerjhb <jhb@FreeBSD.org>2012-03-29 19:03:22 +0000
commit876e74a14e5e797af724083627fdae328d77d62a (patch)
tree16d6f5200857c5f9b1d5733c5b7289fa5ebbdc2d /sys/dev/pci/pci.c
parent38fb55f1d4d3789de9a985973acad5091a0e222e (diff)
downloadFreeBSD-src-876e74a14e5e797af724083627fdae328d77d62a.zip
FreeBSD-src-876e74a14e5e797af724083627fdae328d77d62a.tar.gz
Use a more proper fix for enabling HT MSI mapping windows on Host-PCI
bridges. Rather than blindly enabling the windows on all of them, only enable the window when an MSI interrupt is enabled for a device behind the bridge, similar to what already happens for HT PCI-PCI bridges. To implement this, each x86 Host-PCI bridge driver has to be able to locate it's actual backing device on bus 0. For ACPI, use the _ADR method to find the slot and function of the device. For the non-ACPI case, the legacy(4) driver already scans bus 0 looking for Host-PCI bridge devices. Now it saves the slot and function of each bridge that it finds as ivars that the Host-PCI bridge driver can then use in its pcib_map_msi() method. This fixes machines where non-MSI interrupts were broken by the previous round of HT MSI changes. Tested by: bapt MFC after: 1 week
Diffstat (limited to 'sys/dev/pci/pci.c')
-rw-r--r--sys/dev/pci/pci.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 2bded11..64b3a99 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -751,7 +751,7 @@ pci_read_cap(device_t pcib, pcicfgregs *cfg)
}
}
-#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__)
+#if defined(__powerpc__)
/*
* Enable the MSI mapping window for all HyperTransport
* slaves. PCI-PCI bridges have their windows enabled via
OpenPOWER on IntegriCloud