PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 20 Sep 2021 19:17:08 +0000 (21:17 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 29 Sep 2021 19:17:20 +0000 (21:17 +0200)
commitd97c5d4c622f6acfd5eddac81799d37c9a4e6a92
treeda3770809682d5d6efe645b39eebf66541a78be3
parentd5b0d88385f5a5f865f6761d7c93e373221914a4
PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI

Using struct pci_platform_pm_ops for ACPI adds unnecessary
indirection to the interactions between the PCI core and ACPI PM,
which is also subject to retpolines.

Moreover, it is not particularly clear from the current code that,
as far as PCI PM is concerned, "platform" really means just ACPI
except for the special casess when Intel MID PCI PM is used or when
ACPI support is disabled (through the kernel config or command line,
or because there are no usable ACPI tables on the system).

To address the above, rework the PCI PM code to invoke ACPI PM
functions directly as needed and drop the acpi_pci_platform_pm
object that is not necessary any more.

Accordingly, update some of the ACPI PM functions in question to do
extra checks in case the ACPI support is disabled (which previously
was taken care of by avoiding to set the pci_platform_ops pointer
in those cases).

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Ferry Toth <fntoth@gmail.com>
drivers/pci/pci-acpi.c
drivers/pci/pci.c
drivers/pci/pci.h