Re: [PATCH V2 0/2] nvme: Add support for ACPI StorageD3Enable property
From: Dan Williams
Date: Wed Jun 24 2020 - 15:11:08 EST
On Wed, Jun 24, 2020 at 11:55 AM David E. Box
<david.e.box@xxxxxxxxxxxxxxx> wrote:
>
> Friendly reminder. Thanks.
Are you looking for this to be merged by ACPI with an NVMe ack, or
merged by NVMe with an ACPI ack? It sometimes helps to be explicit to
break the log jam.
>
> David
>
> On Fri, 2020-06-12 at 13:48 -0700, David E. Box wrote:
> > This patch set implements a solution for a BIOS hack used on some
> > currently
> > shipping Intel systems to address issues with power management policy
> > decisions concerning PCIe NVMe drives. Some newer Intel platforms,
> > like
> > some Comet Lake systems, require that PCIe devices use D3 when doing
> > suspend-to-idle in order to allow the platform to realize maximum
> > power
> > savings. This is particularly needed to support ATX power supply
> > shutdown
> > on desktop systems. In order to ensure this happens for root ports
> > with
> > storage devices, Microsoft apparently created this ACPI _DSD property
> > as a
> > way to override their driver policy. To my knowledge this property
> > has not
> > been discussed with the NVME specification body.
> >
> > Though the solution is not ideal, it addresses a problem that also
> > affects
> > Linux since the NVMe driver's default policy of using NVMe APST
> > during
> > suspend-to-idle would lead to higher power consumption for these
> > platforms.
> >
> > Patch 1 provides a symbol in the PCI/ACPI layer to read the property.
> > Patch 2 uses the symbol in the NVMe driver to select D3 as a quirk if
> > set.
> >
> > Changes from V2:
> > - Export the pci_acpi_storage_d3 function for use by drivers as
> > needed instead of modifying the pci header.
> > - Add missing put on acpi device handle.
> > - Add 'noacpi' module parameter to allow undoing this change.
> > - Add info message that this is a platform quirk.
> >
> > David E. Box (2):
> > PCI: Add ACPI StorageD3Enable _DSD support
> > drivers/nvme: Add support for ACPI StorageD3Enable property
> >
> > drivers/acpi/property.c | 3 +++
> > drivers/nvme/host/pci.c | 14 ++++++++++
> > drivers/pci/pci-acpi.c | 59
> > +++++++++++++++++++++++++++++++++++++++++
> > include/linux/pci.h | 2 ++
> > 4 files changed, 78 insertions(+)
> >
>