Re: [PATCH v2 2/7] PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI

From: Ferry Toth
Date: Fri Sep 24 2021 - 17:17:17 EST


Hi

Op 24-09-2021 om 14:02 schreef Rafael J. Wysocki:
On Thu, Sep 23, 2021 at 10:32 PM Ferry Toth <fntoth@xxxxxxxxx> wrote:
Hi

Op 23-09-2021 om 15:51 schreef Ferry Toth:
Repost (with formatting removed, sorry for the noise)
Op 23-09-2021 om 13:30 schreef Rafael J. Wysocki:
On Wed, Sep 22, 2021 at 11:31 PM Ferry Toth<fntoth@xxxxxxxxx> wrote:
Hi,
Op 20-09-2021 om 21:17 schreef Rafael J. Wysocki:
From: Rafael J. Wysocki<rafael.j.wysocki@xxxxxxxxx>

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@xxxxxxxxx>
---

v1 -> v2:
* Rebase on top of the new [1/7] and move dropping struct
pci_platform_pm_ops to a separate patch.
I wanted to test this series on 5.15-rc2 but this patch 2/7 doesn't
apply (after 1/7 applied). Should I apply this on another tree?
This is on top of
https://patchwork.kernel.org/project/linux-acpi/patch/2793105.e9J7NaK4W3@kreacher/

which is not yet in any tree.

Sorry for the confusion.
No problem at all. If I can I will try to report back tonight. Else,
will be delayed 2 due to a short break.
With those 3 extra patches followed by 7 from this series it builds. But
on boot I get:
dwc3 dwc3.0.auto: this is not a DesignWare USB3 DRD Core
Then after this it reboots. Nothing in the logs. Nothing else on
console, I guess something goes wrong early.
It appears so.

Can you please try just the 3 extra patches this series is on top of?
The problem is more likely to be located in one of them.
Boots fine with just the 3 so up to and including "ACPI: glue: Look for ACPI bus type only if ACPI companion is not known". From the log I get:


Intel MID platform detected, using MID PCI ops
PCI: Using configuration type 1 for base access
..
PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
..
PCI: Probing PCI hardware
PCI: root bus 00: using default resources
PCI: Probing PCI hardware (bus 00)
PCI: pci_cache_line_size set to 64 bytes
..
pnp: PnP ACPI init
..
pnp: PnP ACPI: found 2 devices
..
xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f06c hci version 0x100 quirks 0x0000000002010010
xhci-hcd xhci-hcd.1.auto: irq 14, io mem 0xf9100000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: xHCI Host Controller
usb usb1: Manufacturer: Linux 5.15.0-rc2-edison-acpi-standard xhci-hcd
usb usb1: SerialNumber: xhci-hcd.1.auto
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected

I continued up to "PCI: ACPI: PM: Do not use pci_platform_pm_ops for ACPI", still boots.

In the logs I still see "Intel MID platform detected, using MID PCI ops".

Unfortunately no more time today, and tomorrow short holiday starts. I will continue after returning next Sat.