[PATCH v13 12/12] PCI: ACPI: Limit the Intel specific opt-in to D3 to 2024

Mario Limonciello posted 12 patches 2 years ago
Only 10 patches received!
[PATCH v13 12/12] PCI: ACPI: Limit the Intel specific opt-in to D3 to 2024
Posted by Mario Limonciello 2 years ago
Intel systems that need to have PCIe ports in D3 for low power idle
specify this by constraints on the ACPI PNP0D80 device. As this information
is queried, limit the DMI BIOS year check to stop at 2024. This will
allow future systems to rely on the constraints check to set up policy
like non-Intel systems do.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v12->v13:
 * New patch
---
 drivers/pci/pci.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 0fc8d35154f97..5b9e11e254f34 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3049,10 +3049,11 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge)
 			return true;
 
 		/*
-		 * It is safe to put Intel PCIe ports from 2015 or newer
+		 * It is safe to put Intel PCIe ports from 2015 to 2024
 		 * to D3.
 		 */
 		if (bridge->vendor == PCI_VENDOR_ID_INTEL &&
+		    dmi_get_bios_year() <= 2024 &&
 		    dmi_get_bios_year() >= 2015)
 			return true;
 		break;
-- 
2.34.1
Re: [PATCH v13 12/12] PCI: ACPI: Limit the Intel specific opt-in to D3 to 2024
Posted by Rafael J. Wysocki 2 years ago
On Fri, Aug 18, 2023 at 7:15 AM Mario Limonciello
<mario.limonciello@amd.com> wrote:
>
> Intel systems that need to have PCIe ports in D3 for low power idle
> specify this by constraints on the ACPI PNP0D80 device. As this information
> is queried, limit the DMI BIOS year check to stop at 2024. This will
> allow future systems to rely on the constraints check to set up policy
> like non-Intel systems do.
>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v12->v13:
>  * New patch
> ---
>  drivers/pci/pci.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 0fc8d35154f97..5b9e11e254f34 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -3049,10 +3049,11 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge)
>                         return true;
>
>                 /*
> -                * It is safe to put Intel PCIe ports from 2015 or newer
> +                * It is safe to put Intel PCIe ports from 2015 to 2024
>                  * to D3.
>                  */
>                 if (bridge->vendor == PCI_VENDOR_ID_INTEL &&
> +                   dmi_get_bios_year() <= 2024 &&
>                     dmi_get_bios_year() >= 2015)

A minor nit: The above would be somewhat easier to follow if it is
written in a reverse order, that is

dmi_get_bios_year() >= 2015 && dmi_get_bios_year() <= 2024

and maybe call dmi_get_bios_year() once to avoid the redundant string parsing?

>                         return true;
>                 break;
> --