PCI: disable ASPM on VIA root-port-under-bridge configurations

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Monday, June 22, 2009 - 2:00 pm

Gitweb:     http://git.kernel.org/linus/8e822df700694ca6850d1e0c122fd7004b2778d8
Commit:     8e822df700694ca6850d1e0c122fd7004b2778d8
Parent:     9e9f46c44e487af0a82eb61b624553e2f7118f5b
Author:     Shaohua Li <shaohua.li@intel.com>
AuthorDate: Mon Jun 8 09:27:25 2009 +0800
Committer:  Jesse Barnes <jbarnes@virtuousgeek.org>
CommitDate: Thu Jun 11 12:04:18 2009 -0700

    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>
---
 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 b0367f1..777b2c7 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)
 	if (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
 		pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)
 		return;
+	/* VIA has a strange chipset, root port is under a bridge */
+	if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT &&
+		pdev->bus->self)
+		return;
 	down_read(&pci_bus_sem);
 	if (list_empty(&pdev->subordinate->devices))
 		goto out;
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
PCI: disable ASPM on VIA root-port-under-bridge configurations, Linux Kernel Mailing ..., (Mon Jun 22, 2:00 pm)