From: Brian Norris <briannorris@chromium.org>
To: manivannan.sadhasivam@oss.qualcomm.com
Cc: "Bjorn Helgaas" <bhelgaas@google.com>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Keith Busch" <kbusch@kernel.org>, "Jens Axboe" <axboe@kernel.dk>,
"Christoph Hellwig" <hch@lst.de>,
"Sagi Grimberg" <sagi@grimberg.me>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-nvme@lists.infradead.org
Subject: Re: [PATCH v2 0/4] PCI: Introduce pci_suspend_retains_context() API
Date: Mon, 1 Jun 2026 12:16:18 -0700 [thread overview]
Message-ID: <ah3agpwmcDfn9plX@google.com> (raw)
In-Reply-To: <20260519-l1ss-fix-v2-0-b2c3a4bdeb15@oss.qualcomm.com>
On Tue, May 19, 2026 at 01:41:19PM +0530, Manivannan Sadhasivam via B4 Relay wrote:
> Hi all,
>
> This series introduces a new PCI API, pci_suspend_retains_context() to
> let the client drivers know whether they can expect context retention across
> suspend/resume or not and uses it in the NVMe PCI host driver.
>
> This new API is targeted to abstract the PCI power management details away from
> the client drivers. This is needed because client drivers like NVMe make use of
> APIs such as pm_suspend_via_firmware() and decide to keep the device in low
> power mode if this API returns 'false'. But some platforms may have other
> limitations like in the case of Qcom, where if the RC driver removes the PCIe RC
> resource vote to allow the SoC to enter low power mode, it cannot reliably exit
> the L1ss state when the endpoint asserts CLKREQ#. So in this case also, the
> client drivers cannot keep the device in low power state during suspend and
> expect context retention.
>
> And these limitations may just keep adding in the future. Without a unified
> API, the client drivers have to implement their own logic which may cause code
> duplication and may also lead to drivers missing some of the platform
> limitations.
>
> Once this series gets merged, we can extend this API usage to other client
> drivers as well.
>
> Testing
> =======
>
> This series is tested on Qualcomm Hamoa based Lenovo Thinkpad T14s latop with
> NVMe drive.
>
> Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
FWIW, this was already applied to pci/next for v7.2, but I'll add that
it seems this resolves what appeared as a regression in v7.0 for me when
using a Qualcomm SC7280-based laptop
(arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts):
report: https://lore.kernel.org/linux-pci/ahC8Pyuatu_AvnZp@google.com/
test notes: https://lore.kernel.org/linux-pci/ah3XLfI7E39B1UPh@google.com/
In short, my NVMe failed to resume from suspend-to-mem:
[ 58.384442] nvme 0001:01:00.0: Unable to change power state from unknown to D0, device inaccessible
...
[ 68.875606] nvme 0001:01:00.0: PM: **** DPM device timeout ****
Notably, this regression bisected to commit eaf290c404f7 ("PCI: dwc:
Enable MSI affinity support"), though I'm still not quite sure why.
Anyway, for $subject series, I'll provide my late tags:
Closes: https://lore.kernel.org/linux-pci/ahC8Pyuatu_AvnZp@google.com/
Tested-by: Brian Norris <briannorris@chromium.org>
prev parent reply other threads:[~2026-06-01 19:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 8:11 [PATCH v2 0/4] PCI: Introduce pci_suspend_retains_context() API Manivannan Sadhasivam
2026-05-19 8:11 ` Manivannan Sadhasivam via B4 Relay
2026-05-19 8:11 ` [PATCH v2 1/4] PCI: Introduce an API to check if RC/platform can retain device context during suspend Manivannan Sadhasivam
2026-05-19 8:11 ` Manivannan Sadhasivam via B4 Relay
2026-05-19 8:11 ` [PATCH v2 2/4] PCI: Indicate context lost if L1ss exit is broken during resume from system suspend Manivannan Sadhasivam
2026-05-19 8:11 ` Manivannan Sadhasivam via B4 Relay
2026-05-22 23:21 ` Bjorn Helgaas
2026-05-23 9:14 ` Manivannan Sadhasivam
2026-05-19 8:11 ` [PATCH v2 3/4] PCI: qcom: Indicate broken L1ss exit " Manivannan Sadhasivam
2026-05-19 8:11 ` Manivannan Sadhasivam via B4 Relay
2026-05-19 9:12 ` sashiko-bot
2026-05-19 8:11 ` [PATCH v2 4/4] nvme-pci: Use pci_suspend_retains_context() API during suspend Manivannan Sadhasivam
2026-05-19 8:11 ` Manivannan Sadhasivam via B4 Relay
2026-05-19 8:47 ` Christoph Hellwig
2026-05-19 9:24 ` sashiko-bot
2026-05-22 16:04 ` [PATCH v2 0/4] PCI: Introduce pci_suspend_retains_context() API Hans Zhang
2026-05-23 13:55 ` Manivannan Sadhasivam
2026-05-23 11:35 ` Bjorn Helgaas
2026-06-01 19:16 ` Brian Norris [this message]
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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ah3agpwmcDfn9plX@google.com \
--to=briannorris@chromium.org \
--cc=axboe@kernel.dk \
--cc=bhelgaas@google.com \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=manivannan.sadhasivam@oss.qualcomm.com \
--cc=robh@kernel.org \
--cc=sagi@grimberg.me \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.