Linux-NVME Archive on
 help / color / Atom feed
From: "Liang, Prike" <>
To: Christoph Hellwig <>
Cc: "" <>,
	"" <>,
	"" <>,
	"" <>,
	"Deucher, Alexander" <>,
	"S-k, Shyam-sundar" <>
Subject: RE: [PATCH v4 1/2] PCI: add AMD PCIe quirk for nvme shutdown opt
Date: Thu, 15 Apr 2021 09:41:53 +0000
Message-ID: <> (raw)
In-Reply-To: <>

[AMD Public Use]

> From: Christoph Hellwig <>
> Sent: Thursday, April 15, 2021 4:21 PM
> To: Liang, Prike <>
> Cc:;;
> Deucher, Alexander <>; S-k, Shyam-sundar
> <>
> Subject: Re: [PATCH v4 1/2] PCI: add AMD PCIe quirk for nvme shutdown opt
> A cover letter for the series would be really nice.
Will add a cover letter patch for overview of issue background.

> On Thu, Apr 15, 2021 at 11:52:04AM +0800, Prike Liang wrote:
> > The NVME device pluged in some AMD PCIE root port will resume timeout
> > from s2idle which caused by NVME power CFG lost in the SMU FW restore.
> > This issue can be workaround by using PCIe power set with simple
> > suspend/resume process path instead of APST. In the onwards ASIC will
> > try do the NVME shutdown save and restore in the BIOS and still need
> > PCIe power setting to resume from RTD3 for s2idle.
> >
> > In this preparation patch add a PCIe quirk for the AMD.
> The above looks very hard to understand to me.  It uses some AMD specific
> terms, and also is overly specific to NVMe.  Any other PCIe device not doing a
> runtime-D3 in these slots will have the same problem.
Yes, but the other peripheral device seems all can reach its min device power state during s2idle
suspend process. To be honest, I don't dedicate to the NVMe development and only from the NVMe legacy
suspend-resume software sequence can see during this default suspend only do some save-restore
APST link states and the NVMe device still remain in the D0 state and then the device force to safe shutdown in the SMU firmware. Then the NVMe device will keep D0 un-initialize state during s2idle resume and NVMe command request will be performed abnormally and eventually result in accessing timeout.

> So I think you should generalize the flag name and description to describe
> what broken behavior the AMD root port has here, and only cursory refer to
> drivers that are broken by it.
Will give more descriptor about the flag usage.

> I'd also much prefer if the flag is used on every pci_dev that is affected by the
> broken behavior rather than requiring another lookup in the driver.
Sorry can't get the meaning, could you give more detail how to implement this?


Linux-nvme mailing list

  reply index

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-15  3:52 Prike Liang
2021-04-15  3:52 ` [PATCH v4 2/2] nvme-pci: add AMD PCIe quirk for suspend/resume Prike Liang
2021-04-15  6:29   ` Greg KH
2021-04-15  7:39     ` Liang, Prike
2021-04-15  8:20 ` [PATCH v4 1/2] PCI: add AMD PCIe quirk for nvme shutdown opt Christoph Hellwig
2021-04-15  9:41   ` Liang, Prike [this message]
2021-04-15 22:25     ` Keith Busch
2021-04-16  6:51       ` Liang, Prike
2021-04-30 17:50 ` Bjorn Helgaas
2021-05-03  7:14   ` Christoph Hellwig
2021-05-03 14:57     ` Keith Busch
2021-05-03 15:50       ` Bjorn Helgaas
2021-05-06  3:22         ` Liang, Prike

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-NVME Archive on

Archives are clonable:
	git clone --mirror linux-nvme/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nvme linux-nvme/ \
	public-inbox-index linux-nvme

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone