summaryrefslogtreecommitdiff
path: root/drivers/pci/pcie/aspm.c
diff options
context:
space:
mode:
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>2009-08-19 05:57:31 +0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-09-10 00:29:44 +0400
commitb127bd55d9cd9d5b40278b30645669d6d46933bc (patch)
tree93aed7b6e6d0f164ee2678f36fe87c9a68ba5114 /drivers/pci/pcie/aspm.c
parent6f1186be4feb3364d3a52cbea81e43e4d5296196 (diff)
downloadlinux-b127bd55d9cd9d5b40278b30645669d6d46933bc.tar.xz
PCI ASPM: do not clear enabled field by support field
We must not clear bits in 'aspm_enabled' using 'aspm_support', or 'aspm_enabled' and 'aspm_default' might be different from the actual state. In addtion, 'aspm_default' should be intialized even if 'aspm_support' is 0. Acked-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci/pcie/aspm.c')
-rw-r--r--drivers/pci/pcie/aspm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 3d27c97e0486..9759714f77e7 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -346,12 +346,12 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
link->latency.l0s = max_t(u32, link->latency.l0s, l0s);
link->latency.l1 = max_t(u32, link->latency.l1, l1);
+ /* Save default state */
+ link->aspm_default = link->aspm_enabled;
+
if (!link->aspm_support)
return;
- link->aspm_enabled &= link->aspm_support;
- link->aspm_default = link->aspm_enabled;
-
/* ENDPOINT states*/
list_for_each_entry(child, &linkbus->devices, bus_list) {
int pos;