diff options
Diffstat (limited to 'src/southbridge/intel/lynxpoint/pcie.c')
-rw-r--r-- | src/southbridge/intel/lynxpoint/pcie.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/southbridge/intel/lynxpoint/pcie.c b/src/southbridge/intel/lynxpoint/pcie.c index e133feb9c2..6a4d75cac2 100644 --- a/src/southbridge/intel/lynxpoint/pcie.c +++ b/src/southbridge/intel/lynxpoint/pcie.c @@ -495,6 +495,7 @@ static void pch_pcie_early(struct device *dev) int rp; int do_aspm; int is_lp; + struct southbridge_intel_lynxpoint_config *config = dev->chip_info; rp = root_port_number(dev); do_aspm = 0; @@ -542,6 +543,13 @@ static void pch_pcie_early(struct device *dev) } } + /* Allow ASPM to be forced on in devicetree */ + if (config && (config->pcie_port_force_aspm & (1 << (rp - 1)))) + do_aspm = 1; + + printk(BIOS_DEBUG, "PCIe Root Port %d ASPM is %sabled\n", + rp, do_aspm ? "en" : "dis"); + if (do_aspm) { /* Set ASPM bits in MPC2 register. */ pcie_update_cfg(dev, 0xd4, ~(0x3 << 2), (1 << 4) | (0x2 << 2)); |