Show a cover letter.

GET /api/covers/2223166/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2223166,
    "url": "http://patchwork.ozlabs.org/api/covers/2223166/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260414-l1ss-fix-v1-0-adbb4555b5ab@oss.qualcomm.com/",
    "project": {
        "id": 28,
        "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api",
        "name": "Linux PCI development",
        "link_name": "linux-pci",
        "list_id": "linux-pci.vger.kernel.org",
        "list_email": "linux-pci@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260414-l1ss-fix-v1-0-adbb4555b5ab@oss.qualcomm.com>",
    "list_archive_url": null,
    "date": "2026-04-14T15:59:38",
    "name": "[0/4] PCI: Introduce pci_dev_suspend_retention_supported() API",
    "submitter": {
        "id": 91277,
        "url": "http://patchwork.ozlabs.org/api/people/91277/?format=api",
        "name": "Manivannan Sadhasivam via B4 Relay",
        "email": "devnull+manivannan.sadhasivam.oss.qualcomm.com@kernel.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-pci/cover/20260414-l1ss-fix-v1-0-adbb4555b5ab@oss.qualcomm.com/mbox/",
    "series": [
        {
            "id": 499863,
            "url": "http://patchwork.ozlabs.org/api/series/499863/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=499863",
            "date": "2026-04-14T15:59:38",
            "name": "PCI: Introduce pci_dev_suspend_retention_supported() API",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/499863/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2223166/comments/",
    "headers": {
        "Return-Path": "\n <linux-pci+bounces-52507-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-pci@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=TqH71j0/;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-52507-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"TqH71j0/\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fw8DX6zmCz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 15 Apr 2026 02:02:20 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 51B28307037B\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 14 Apr 2026 16:00:14 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 73E413ED11F;\n\tTue, 14 Apr 2026 16:00:12 +0000 (UTC)",
            "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C9173ED119;\n\tTue, 14 Apr 2026 16:00:12 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPS id 13C7EC2BCB5;\n\tTue, 14 Apr 2026 16:00:12 +0000 (UTC)",
            "from aws-us-west-2-korg-lkml-1.web.codeaurora.org\n (localhost.localdomain [127.0.0.1])\n\tby smtp.lore.kernel.org (Postfix) with ESMTP id 03311F9D0DC;\n\tTue, 14 Apr 2026 16:00:12 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776182412; cv=none;\n b=bAI7Jm6gFcw+C1XOWU1Xs5Jl3p7UbdZ8JxIeIVp31qecY9sP5pp7PNocs3Ix40eS5r4/wJe6aoN/raDvYpi0CBaLC00gJHAhwAQhblRrVGdJOX88HhTWJMrUjtlVllYGHsQyByjU6ywhKAQ3T8NSH9SgaoWeK/yuV2NlqvIYzHY=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776182412; c=relaxed/simple;\n\tbh=mOftxv4/QKcA+8oXdsFGy1MXnS+r1vrmhCE64/287oA=;\n\th=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc;\n b=VpNrNHclkgVJnrIl1WznKC4Hf1HGMERPHLc5AgUs+eJ3x3Fo3FOl6x8OgGyUtVx8ugrbhb+tZ9nrL/yEYmvmVGDGmrTE0g8k/pyd9WTGJwxJHQB2cT5WqOr77Kp9SDTpfZdxTJXJl4yPvkwfsyHe4sDGUkfOJfkiWT0nEmAsZNY=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=TqH71j0/; arc=none smtp.client-ip=10.30.226.201",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1776182412;\n\tbh=mOftxv4/QKcA+8oXdsFGy1MXnS+r1vrmhCE64/287oA=;\n\th=From:Subject:Date:To:Cc:Reply-To:From;\n\tb=TqH71j0/LoJs10baVrq1uZnrmVSPYdnsCcFntJQ636feSA2JB4kmogOxTpKAvKm9c\n\t Ew7cSLkFVOHO9eX1t+BH4dlGLnCzUKJ9MAVQ/KeRvblYZe3xjMRk+F6GgR8AT2cL0d\n\t nmTo4wlE2mNqwfZpv7Rp0P69iRrkq9FVHSOQMvzc7PN3Hl5MzG/gISHFe3v9XHI4YK\n\t Jza+ge2v1l89jzXABC4nmEXpNBLHFV6QEhIYghFcu6OknQao4JQ9ThZIkWZKjwhkBi\n\t h/utXD/XVxFOB7uZxTA+4q2bmyc8aMb7qv2ulu20+7eC0D6ctNo3ekUb/8hDdTxJxR\n\t NkUrti3dEXjnw==",
        "From": "Manivannan Sadhasivam via B4 Relay\n <devnull+manivannan.sadhasivam.oss.qualcomm.com@kernel.org>",
        "Subject": "[PATCH 0/4] PCI: Introduce pci_dev_suspend_retention_supported()\n API",
        "Date": "Tue, 14 Apr 2026 21:29:38 +0530",
        "Message-Id": "<20260414-l1ss-fix-v1-0-adbb4555b5ab@oss.qualcomm.com>",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-pci@vger.kernel.org",
        "List-Id": "<linux-pci.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIAGpk3mkC/yXMUQ5AMBAE0KvIfmuizWpSVxEf1GJFkC4iEXdXf\n L7JzFwgFJgEiuSCQAcLL3OEThPwQz33pLiNBpMZm6FGNWkR1fGprHe+M5hrhwixvgaK8XdVVr9\n lb0by27uH+34ArYB/vmwAAAA=",
        "X-Change-ID": "20260414-l1ss-fix-6c9cf2451944",
        "To": "Bjorn Helgaas <bhelgaas@google.com>,\n  Manivannan Sadhasivam <mani@kernel.org>,\n  Lorenzo Pieralisi <lpieralisi@kernel.org>, =?utf-8?q?Krzysztof_Wilczy?=\n\t=?utf-8?q?=C5=84ski?= <kwilczynski@kernel.org>,\n  Rob Herring <robh@kernel.org>, Keith Busch <kbusch@kernel.org>,\n  Jens Axboe <axboe@kernel.dk>, Christoph Hellwig <hch@lst.de>,\n  Sagi Grimberg <sagi@grimberg.me>",
        "Cc": "linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,\n linux-arm-msm@vger.kernel.org, linux-nvme@lists.infradead.org,\n Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>",
        "X-Mailer": "b4 0.15.0",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=2281;\n i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id;\n bh=mOftxv4/QKcA+8oXdsFGy1MXnS+r1vrmhCE64/287oA=;\n b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBp3mSCyXV3Bi9/QyZ2BKGNKf8az8Qg5jIALqpAr\n 37Al+bepYCJATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCad5kggAKCRBVnxHm/pHO\n 9UOWCACTMvxVhal6glC4+LLw74EQF4QbGQYJKc2iXxMBxiiBZFMwC4nz03KqdEOzFNTgG1JfQky\n FVqfbXCHJ5xvOpTxpGyXYZBm1fDCrmT1WwLZrRx8MEUlakwYpGAOSwHs9MUnktXcDg/5h/Sjwvz\n 6HcpI/67pkL17T8zLYz7qOmpIJYkBRp5gLKjl9xt/DGsekVNNLmaVKLghytRdRw4VisjsRFKgDA\n EHsUPnKYE8MO61DvsrQCaHeTgEaUBEqsD/ADJAnSrOf5DdDUWWBUOSU5pDO/K67f9mf8vc3xbu8\n pUahEkJ7QRqQp/0RPvaXEyuxZNcLcSDjrbEejPPB6Bg9iRPX",
        "X-Developer-Key": "i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp;\n fpr=C668AEC3C3188E4C611465E7488550E901166008",
        "X-Endpoint-Received": "by B4 Relay for\n manivannan.sadhasivam@oss.qualcomm.com/default with auth_id=461",
        "X-Original-From": "Manivannan Sadhasivam\n <manivannan.sadhasivam@oss.qualcomm.com>",
        "Reply-To": "manivannan.sadhasivam@oss.qualcomm.com"
    },
    "content": "Hi all,\n\nThis series introduces a new PCI API pci_dev_suspend_retention_supported() to\nlet the client drivers know whether they can expect context retention across\nsuspend/resume or not and uses it in the NVMe PCI host driver.\n\nThis new API is targeted to abstract the PCI power management details away from\nthe client drivers. This is needed because client drivers like NVMe make use of\nAPIs such as pm_suspend_via_firmware() and decide to keep the device in low\npower mode if this API returns 'false'. But some platforms may have other\nlimitations like in the case of Qcom, where if the RC driver removes the\nresource vote to allow the SoC to enter low power mode, it cannot reliably exit\nthe L1ss state when the endpoint asserts CLKREQ#. So in this case also, the\nclient drivers cannot keep the device in low power state during suspend and\nexpect context retention.\n\nAnd these limitations may just keep adding in the future. Without a unified\nAPI, the client drivers have to implement their own logic which may cause code\nduplication and may also lead to drivers missing some of the platform\nlimitations.\n\nOnce this series gets merged, we can extend this API usage to other client\ndrivers as well.\n\nTesting\n=======\n\nThis series is tested on Qualcomm Hamoa based Lenovo Thinkpad T14s latop with\nNVMe drive.\n\nSigned-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>\n---\nManivannan Sadhasivam (4):\n      PCI: Introduce an API to check if RC/platform can retain device context during suspend\n      PCI: Indicate context lost if L1ss exit is broken during resume from system suspend\n      PCI: qcom: Indicate broken L1ss exit during resume from system suspend\n      nvme-pci: Use pci_dev_suspend_retention_supported() API during suspend\n\n drivers/nvme/host/pci.c                |  3 ++-\n drivers/pci/controller/dwc/pcie-qcom.c | 11 +++++++++++\n drivers/pci/pci.c                      | 34 ++++++++++++++++++++++++++++++++++\n include/linux/pci.h                    |  9 +++++++++\n 4 files changed, 56 insertions(+), 1 deletion(-)\n---\nbase-commit: 591cd656a1bf5ea94a222af5ef2ee76df029c1d2\nchange-id: 20260414-l1ss-fix-6c9cf2451944\n\nBest regards,\n--  \nManivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>"
}