diff mbox

PCI ASPM: support L1 only

Message ID 4AB0A207.3010100@jp.fujitsu.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Kenji Kaneshige Sept. 16, 2009, 8:29 a.m. UTC
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>

---
 drivers/pci/pcie/aspm.c |    3 ---
 1 file changed, 3 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Jesse Barnes Sept. 17, 2009, 4:38 p.m. UTC | #1
On Wed, 16 Sep 2009 17:29:59 +0900
Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> wrote:

> 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>
> 
> ---
>  drivers/pci/pcie/aspm.c |    3 ---
>  1 file changed, 3 deletions(-)
> 
> Index: 20090914/drivers/pci/pcie/aspm.c
> ===================================================================
> --- 20090914.orig/drivers/pci/pcie/aspm.c
> +++ 20090914/drivers/pci/pcie/aspm.c
> @@ -303,9 +303,6 @@ static void pcie_get_aspm_reg(struct pci
>  	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);

Applied to my linux-next tree, thanks.
diff mbox

Patch

Index: 20090914/drivers/pci/pcie/aspm.c
===================================================================
--- 20090914.orig/drivers/pci/pcie/aspm.c
+++ 20090914/drivers/pci/pcie/aspm.c
@@ -303,9 +303,6 @@  static void pcie_get_aspm_reg(struct pci
 	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);