diff options
author | Shaohua Li <shaohua.li@intel.com> | 2009-06-07 21:27:25 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-06-11 15:04:18 -0400 |
commit | 8e822df700694ca6850d1e0c122fd7004b2778d8 (patch) | |
tree | 2c0218345809138c1dfb45a325705c870d0ccb21 /drivers/pci/pcie/aspm.c | |
parent | 9e9f46c44e487af0a82eb61b624553e2f7118f5b (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/pcie/aspm.c')
-rw-r--r-- | drivers/pci/pcie/aspm.c | 4 |
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; |