Commit 98fc963d authored by Brian Norris's avatar Brian Norris Committed by Treehugger Robot
Browse files

ANDROID: PCI: Add platform_pci_*() vendor hooks

platform_pci_*() APIs provide the ability for the underlying platform to
augment the power states PCI devices use when Linux wants to suspend
them. This typically can mean something like:

(1) supporting D3cold: the PCIe spec provides standard ways for entering
    many power modes, like D0 and D3hot; but D3cold is essentially D3hot
    plus the removal of main power. This necessarily requires platform
    support, as PCIe does not specify how to integrate power into its
    programming model.

(2) choosing to avoid low-power states: a PCI device may be in use by a
    component not controlled by the kernel. These platform hooks may
    coordinate with such a hardware component and choose to remain in D0
    (active) instead of suspending to D3{hot,cold}.

These were hook-able upstream in the past, but they were dropped due to
disuse in mainline in
98634aa8 PCI: PM: Drop struct pci_platform_pm_ops
d97c5d4c PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI

They were largely proposed for reintroduction here:
https://lore.kernel.org/linux-pci/a38e76d6f3a90d7c968c32cee97604f3c41cbccf.camel@mediatek.com/


[PATCH] PCI:PM: Support platforms that do not implement ACPI

but there were no upstream users.

Notably, these features are all supported for systems that use ACPI, or
Intel's obsolete Mobile Internet Device (MID) platform.

Add Android vendor hooks for non-ACPI, while we sort out whether we can
get upstream drivers to use this functionality.

Bug: 380139395
Change-Id: I8ee519493f54de4b973ae1404f2853e71ae5bbc2
Signed-off-by: default avatarBrian Norris <briannorris@google.com>
parent e0f7aae0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment