device: Add flag to disable PCIe ASPM

For broken devices that spuriously advertise ASPM, make it possible to
decide ASPM activation in the device driver.

Change-Id: I491aa32a3ec954be87a474478609f0f3971d0fdf
Signed-off-by: Nico Huber <nico.huber@secunet.com>
Reviewed-on: https://review.coreboot.org/25617
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Nico Huber 2017-08-30 13:38:50 +02:00 committed by Martin Roth
parent e37387c8b5
commit 570b183f7e
2 changed files with 4 additions and 0 deletions

View File

@ -377,6 +377,9 @@ static void pciexp_enable_aspm(device_t root, unsigned root_cap,
u16 lnkctl;
u32 devcap;
if (endp->disable_pcie_aspm)
return;
/* Get endpoint device capabilities for acceptable limits */
devcap = pci_read_config32(endp, endp_cap + PCI_EXP_DEVCAP);

View File

@ -130,6 +130,7 @@ struct device {
unsigned int enabled : 1; /* set if we should enable the device */
unsigned int initialized : 1; /* 1 if we have initialized the device */
unsigned int on_mainboard : 1;
unsigned int disable_pcie_aspm : 1;
struct pci_irq_info pci_irq_info[4];
u8 command;