summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2008-02-01 20:31:09 +0000
committerjhb <jhb@FreeBSD.org>2008-02-01 20:31:09 +0000
commit51f10aedc0f2f8967184701805df0acf26cf28a8 (patch)
tree133a26ba3cedc94192fae4e0a9c4c4db67226aa3 /sys/dev/pci
parentc121b7dc85514d0c0d9defdf23b55d3acd49cd90 (diff)
downloadFreeBSD-src-51f10aedc0f2f8967184701805df0acf26cf28a8.zip
FreeBSD-src-51f10aedc0f2f8967184701805df0acf26cf28a8.tar.gz
Relax the check for a PCI-express chipset by assuming the system is a
PCI-express chipset (and thus has functional MSI) if there are any PCI-express devices in the system, not requiring a root port device. With PCI-X the chipset detection has to be very conservative because there are known systems with PCI-X devices that do not appear to have PCI-X chipsets. However, with PCI-express I'm not sure it is possible to have a PCI-express device in a system with a non-PCI-express chipset. If we assume that is the case then this change is valid. It is also required for at least some PCI-express systems that don't have any devices with a root port capability (some ICH9 systems). MFC after: 1 week Reported by: jfv
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/pci.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index d7343d2..0e8647f 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -616,12 +616,9 @@ pci_read_extcap(device_t pcib, pcicfgregs *cfg)
case PCIY_EXPRESS: /* PCI-express */
/*
* Assume we have a PCI-express chipset if we have
- * at least one PCI-express root port.
+ * at least one PCI-express device.
*/
- val = REG(ptr + PCIR_EXPRESS_FLAGS, 2);
- if ((val & PCIM_EXP_FLAGS_TYPE) ==
- PCIM_EXP_TYPE_ROOT_PORT)
- pcie_chipset = 1;
+ pcie_chipset = 1;
break;
default:
break;
OpenPOWER on IntegriCloud