Re: [PATCH v4] PCI: Call _REG when transitioning D-states

From: Bjorn Helgaas
Date: Fri Jun 23 2023 - 13:35:24 EST


On Wed, Jun 21, 2023 at 05:52:52PM -0500, Limonciello, Mario wrote:
> On 6/21/2023 5:28 PM, Bjorn Helgaas wrote:
> > On Tue, Jun 20, 2023 at 09:04:51AM -0500, Mario Limonciello wrote:
> > > Section 6.5.4 of the ACPI 6.4 spec describes how AML is unable to access
> > > an OperationRegion unless `_REG` has been called.
> > > ...

> > > It is reported that ASMedia PCIe GPIO controllers fail
> > > functional tests after the system has returning from suspend (S3
> > > or s2idle). This is because the BIOS checks whether the OSPM has
> > > called the `_REG` method to determine whether it can interact
> > > with the OperationRegion assigned to the device as part of the
> > > other AML called for the device.

> I double checked a BIOS debug log which shows ACPI calls
> to confirm and didn't see a single _REG call for any device
> before this patch across a boot/suspend/resume cycle.

Sorry to follow up on this again.

The commit log says these GPIO controllers fail functional tests after
returning from suspend. Do those functional tests pass *before*
suspend? If so, why?

Without this patch, we *never* call _REG, so the fact that calling
_REG when we return the device to D0 while resuming fixes something
suggests that it might have been broken even before the suspend.

Bjorn