PCI: Apply _HPP settings to PCIe devices as well as PCI and PCI-X
authorBjorn Helgaas <bhelgaas@google.com>
Sat, 30 Aug 2014 00:10:19 +0000 (18:10 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Sat, 13 Sep 2014 02:10:16 +0000 (20:10 -0600)
The ACPI _HPP method was defined before PCIe existed, so its documentation
only mentions PCI.  The _HPX Type 0 setting record is essentially identical
to _HPP, but the spec (ACPI rev 5.0, sec 6.2.8.1) says it should be applied
to PCI, PCI-X, and PCIe devices, with settings being ignored if they are
not applicable.

Some platforms with both conventional PCI and PCIe devices provide only
_HPP (not _HPX), so treat _HPP the same way as an _HPX Type 0 record and
apply it to PCIe devices as well as PCI and PCI-X.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
drivers/pci/probe.c

index 4b3b29b..003d112 100644 (file)
@@ -1249,15 +1249,8 @@ static void program_hpp_type0(struct pci_dev *dev, struct hpp_type0 *hpp)
 {
        u16 pci_cmd, pci_bctl;
 
-       if (!hpp) {
-               /*
-                * Perhaps we *should* use default settings for PCIe, but
-                * pciehp didn't, so we won't either.
-                */
-               if (pci_is_pcie(dev))
-                       return;
+       if (!hpp)
                hpp = &pci_default_type0;
-       }
 
        if (hpp->revision > 1) {
                dev_warn(&dev->dev,