Re: [PATCH v8 2/2] PCI/ACPI: Use device constraints instead of dates to opt devices into D3

From: Mario Limonciello
Date: Thu Aug 03 2023 - 07:38:55 EST


On 8/3/23 00:01, Mika Westerberg wrote:
Hi,

On Wed, Aug 02, 2023 at 03:10:13PM -0500, Mario Limonciello wrote:
@@ -3036,11 +3044,8 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge)
if (dmi_check_system(bridge_d3_blacklist))
return false;
- /*
- * It should be safe to put PCIe ports from 2015 or newer
- * to D3.
- */
- if (dmi_get_bios_year() >= 2015)
+ /* the platform indicates in a device constraint that D3 is needed */
+ if (platform_constraint_d3(bridge))

This for sure causes some sort of power regression on the Intel
platforms made after 2015. Why not check for the constraint and:

Are you sure? I saw it as an explanation of how Windows could put the systems into D3 when there is no other PM related ACPI objects.

- If present and enabled, use the desired D-state
- If present and disabled, leave the device in D0
- If not present use the existing cutoff date

?

Thanks! That sounds very reasonable to me. I'll double check it in my case.