aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2009-06-07 21:27:25 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-06-11 15:04:18 -0400
commit8e822df700694ca6850d1e0c122fd7004b2778d8 (patch)
tree2c0218345809138c1dfb45a325705c870d0ccb21 /drivers/pci
parent9e9f46c44e487af0a82eb61b624553e2f7118f5b (diff)
PCI: disable ASPM on VIA root-port-under-bridge configurations
VIA has a strange chipset, it has root port under a bridge. Disable ASPM for such strange chipset. Cc: stable@kernel.org Tested-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pcie/aspm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index b0367f168af4..777b2c76caf5 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -638,6 +638,10 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev)
638 if (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT && 638 if (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
639 pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM) 639 pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)
640 return; 640 return;
641 /* VIA has a strange chipset, root port is under a bridge */
642 if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT &&
643 pdev->bus->self)
644 return;
641 down_read(&pci_bus_sem); 645 down_read(&pci_bus_sem);
642 if (list_empty(&pdev->subordinate->devices)) 646 if (list_empty(&pdev->subordinate->devices))
643 goto out; 647 goto out;