]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/commitdiff
PCI ASPM: support L1 only
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Wed, 16 Sep 2009 08:29:59 +0000 (17:29 +0900)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 17 Sep 2009 17:05:16 +0000 (10:05 -0700)
The definition of the ASPM support field in the Link Capabilities
Register had been changed by the "ASPM optionality ECN" as follows:

<Before>
00b Reserved
01b L0s Supported
10b Reserved
11b L0s and L1 Supported

<After>
00b No ASPM Support
01b L0s Supported
10b L1 Supported
11b L0s and L1 Supported

Current linux ASPM driver doesn't enable ASPM if the support field is
00b or 10b. So there is no impact about 00b. But current linux ASPM
driver doesn't enable L1 if the support field is 10b. With this patch,
10b (L1 support) is handled properly.

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/pcie/aspm.c

index f289ca9bf18d2171cda7321962488a5e36106f40..745402e8e498a35f99c4f9819518936afc34bc7b 100644 (file)
@@ -303,9 +303,6 @@ static void pcie_get_aspm_reg(struct pci_dev *pdev,
        pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
        pci_read_config_dword(pdev, pos + PCI_EXP_LNKCAP, &reg32);
        info->support = (reg32 & PCI_EXP_LNKCAP_ASPMS) >> 10;
-       /* 00b and 10b are defined as "Reserved". */
-       if (info->support == PCIE_LINK_STATE_L1)
-               info->support = 0;
        info->latency_encoding_l0s = (reg32 & PCI_EXP_LNKCAP_L0SEL) >> 12;
        info->latency_encoding_l1  = (reg32 & PCI_EXP_LNKCAP_L1EL) >> 15;
        pci_read_config_word(pdev, pos + PCI_EXP_LNKCTL, &reg16);