The policy for whether PCI bridges are allowed to select D3 is dictated by empirical results that are enumerated into pci_bridge_d3_possible(). In Windows this behaves differently in that Windows internal policy is not used for devices when a power engine plugin driver provided by the SOC vendor is installed. This driver is used to decide the policy in those cases. This series implements a system that lets drivers register such a policy control as well. It isn't activated for any SOCs by default. This is heavily leveraged from the work in [1] [1] https://lore.kernel.org/platform-driver-x86/20230906184354.45846-1-mario.limonciello@xxxxxxx/ Mario Limonciello (4): ACPI: x86: s2idle: Export symbol for fetching constraints for module use PCI: Add support for drivers to decide bridge D3 policy PCI: Check for changes in pci_bridge_d3_possible() when updating D3 platform/x86/amd: pmc: Add support for using constraints to decide D3 policy drivers/acpi/x86/s2idle.c | 1 + drivers/pci/pci.c | 148 +++++++++++++++++++++++++++-- drivers/platform/x86/amd/pmc/pmc.c | 59 ++++++++++++ include/linux/pci.h | 54 +++++++++++ 4 files changed, 252 insertions(+), 10 deletions(-) -- 2.34.1