| From: |
| Mario Limonciello <mario.limonciello-AT-amd.com> |
| To: |
| Bjorn Helgaas <bhelgaas-AT-google.com>, Hans de Goede <hdegoede-AT-redhat.com>, Ilpo Järvinen <ilpo.jarvinen-AT-linux.intel.com> |
| Subject: |
| [PATCH 0/4] Add support for drivers to decide bridge D3 policy |
| Date: |
| Tue, 24 Oct 2023 21:05:42 -0500 |
| Message-ID: |
| <20231025020546.504-1-mario.limonciello@amd.com> |
| Cc: |
| "Rafael J . Wysocki" <rjw-AT-rjwysocki.net>, Shyam Sundar S K <Shyam-sundar.S-k-AT-amd.com>, "open list:PCI SUBSYSTEM" <linux-pci-AT-vger.kernel.org>, "open list:X86 PLATFORM DRIVERS" <platform-driver-x86-AT-vger.kernel.org>, Lukas Wunner <lukas-AT-wunner.de>, Kai-Heng Feng <kai.heng.feng-AT-canonical.com>, Mario Limonciello <mario.limonciello-AT-amd.com> |
| Archive-link: |
| Article |
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/2023090618435...
RFC v1->PATCH v1
* Simplify the logic, use pci_d3cold_enable()/pci_d3cold_disable() functions
* Roll https://lore.kernel.org/linux-pci/20231004144731.158342-1... into series
* Updates for some typos
* Re-order series. Patches 1 and 2 can potentially apply to PCI tree, 3 and 4 to platform-x86 tree.
Mario Limonciello (4):
PCI: Make d3cold_allowed sysfs attribute read only
PCI: Refresh root ports in pci_bridge_d3_update()
ACPI: x86: s2idle: Export symbol for fetching constraints for module
use
platform/x86/amd: pmc: Add support for using constraints to decide D3
policy
Documentation/ABI/testing/sysfs-bus-pci | 4 +-
drivers/acpi/x86/s2idle.c | 1 +
drivers/pci/pci-acpi.c | 2 +-
drivers/pci/pci-sysfs.c | 14 +-----
drivers/pci/pci.c | 12 ++++--
drivers/platform/x86/amd/pmc/pmc.c | 57 +++++++++++++++++++++++++
include/linux/pci.h | 1 -
7 files changed, 72 insertions(+), 19 deletions(-)
--
2.34.1