{"id":2197189,"url":"http://patchwork.ozlabs.org/api/1.0/covers/2197189/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","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},"msgid":"<20260217-d3cold-v2-0-89b322864043@oss.qualcomm.com>","date":"2026-02-17T11:19:05","name":"[v2,0/5] PCI: qcom: Add D3cold support","submitter":{"id":89908,"url":"http://patchwork.ozlabs.org/api/1.0/people/89908/?format=json","name":"Krishna Chaitanya Chundru","email":"krishna.chundru@oss.qualcomm.com"},"series":[{"id":492410,"url":"http://patchwork.ozlabs.org/api/1.0/series/492410/?format=json","date":"2026-02-17T11:19:05","name":"PCI: qcom: Add D3cold support","version":2,"mbox":"http://patchwork.ozlabs.org/series/492410/mbox/"}],"headers":{"Return-Path":"\n <linux-pci+bounces-47447-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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=IBtByGiF;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=eVUFZg5l;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.234.253.10; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-47447-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"IBtByGiF\";\n\tdkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=\"eVUFZg5l\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.168.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fFcbp3VRyz1xwD\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 22:19:18 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 0E11C300A134\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 17 Feb 2026 11:19:17 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 61E7432570E;\n\tTue, 17 Feb 2026 11:19:16 +0000 (UTC)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\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 284451624C5\n\tfor <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 11:19:14 +0000 (UTC)","from pps.filterd (m0279864.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 61H8fSq71545010\n\tfor <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 11:19:14 GMT","from mail-pf1-f197.google.com (mail-pf1-f197.google.com\n [209.85.210.197])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cc7ajsxws-1\n\t(version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n\tfor <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 11:19:14 +0000 (GMT)","by mail-pf1-f197.google.com with SMTP id\n d2e1a72fcca58-824b461dc9dso9421234b3a.1\n        for <linux-pci@vger.kernel.org>; Tue, 17 Feb 2026 03:19:14 -0800 (PST)","from hu-krichai-hyd.qualcomm.com ([202.46.23.25])\n        by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-824c6b9a661sm13181914b3a.50.2026.02.17.03.19.08\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Tue, 17 Feb 2026 03:19:12 -0800 (PST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1771327156; cv=none;\n b=g60qPHNa90BAtRHUw6MjNyEmVogH4pA+r+ffrXo/iuq0M9revxxbsaO7u1F0DunFPtYwjGIBZoxwqyfW0WKXKByl846zIpYqG5i5Q256rP/XsT9kWAH/S0iKbM+BNV0Uc269Di18wBAOThq4IXKfPMRMwCAWSvYTU/9z3btfpto=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1771327156; c=relaxed/simple;\n\tbh=vfy+YzqqKerb02XrtXzWTVN+T8EmD/WiyxKqOvqNYg4=;\n\th=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc;\n b=E++1DdiVjEOzCgWcSp3Lem7oy95hrJGem/SmFDDC9b6ydnFiYVFtWhSr0r9ZbqzCGcVtPKXWfi3y6MdjCRNMPI959JPjurUah5qHZSTxc1wcXm7cx0zinnqhxODlY+/J45YqReGBYrlVkdAc2WSd79FY/qDamnARsISxwEztR+Q=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=oss.qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=IBtByGiF;\n dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.b=eVUFZg5l; arc=none smtp.client-ip=205.220.168.131","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:content-type:date:from:message-id\n\t:mime-version:subject:to; s=qcppdkim1; bh=bqnU+1TM5gIEHCVNQzhu+5\n\t3HuEr/QxKQz4ZoYABsYvo=; b=IBtByGiFfKARYol4oLKZadtge89ZfGjf06BhOF\n\tDpzGV8YBamjsJdEXaL73tp7cHGbYnmV6mhgnmbbrrU5GFF9dpeKCkBwNfB4aghmq\n\tVhbt24U0XbEwGAC1OjFGsfbatxOCx3H+Lo53/mjFlEbIby6dlSsIKjIUSBuV4+AG\n\tO3oyJyBVWYMEutqd39LO88hntrhiOahhAqwU99qDW0E/bENr1WoV6+ow4nd6oV/Z\n\tVtHLqJmN1oRaGPn76gaNDFnsuao9NrX2ChDfnrvXJBED9XZnHB+VS1CFEo6Ei46X\n\tIwocB9mkrlow9n92E+lPG8GrirwyoCWwxxi5CHYCTuHLus9Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=oss.qualcomm.com; s=google; t=1771327153; x=1771931953;\n darn=vger.kernel.org;\n        h=cc:to:content-transfer-encoding:mime-version:message-id:date\n         :subject:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=bqnU+1TM5gIEHCVNQzhu+53HuEr/QxKQz4ZoYABsYvo=;\n        b=eVUFZg5ltoEp2APDXQM+C7zWKYpoHxHUoetAmLSaz1q0eMiSl2bwYY0UmRVlCAWyp1\n         9KnHszP7t/2W51staDmX84+df6yXF3T6uknQt3vK3L2TWQcYODGZi/53/JK6QKpqxQIG\n         tqykn4Ahgrq7w632jBMBH3JqmXT5mDuyLic8o4cH9NOaq+QKTAjtyN64V96A+z5z+ZLd\n         28T4TdelMqatur7wq+QIKX8+qGY1IgMnzHYHB8wbQbj03mvmpQHpsMFIRgJUJNNG+R3d\n         kUUp5jxLN6/11EVSw8Y1926XFFkbud7ukHaykVL3ceScC1SzleN93OYwokHoo9hu6VEr\n         qv2Q=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1771327153; x=1771931953;\n        h=cc:to:content-transfer-encoding:mime-version:message-id:date\n         :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=bqnU+1TM5gIEHCVNQzhu+53HuEr/QxKQz4ZoYABsYvo=;\n        b=s8IfYTmikuCSvgE/RfuPPantNDh3SaOa8KbkzEx9dgykXoyQQghvO7exbPjnK4qHft\n         zB07a3pgG7TkaB9842iM8N1TFON3KcKPdOqKWIehqkkZM1krkbgy20wfUl8RYFMjJ0wI\n         kE+v0yPW8wtx2vkvNgzgsvmYqEnNUhT3zsTK3FfNWq00TaRD0MxlkLsdycjpkrA8EpLz\n         X2jeo3Qwtn7jEMAmVnoIeXXwCzivz9JIBcQoPr7h6ZgF2Yk8GDAZkT+nM6h9ojQxW/Qn\n         If8LsclOk9QfiyBRrxQqqhQpsZT6oxoeUXpwPJCrODxAlxySBKH8FxJQFTtAtX0n8VXV\n         +mIg==","X-Gm-Message-State":"AOJu0YwrT20wo3y/nexM4kfC7B6LlQUGwD4F1ys3Lbup3ZKXO+ME5o9h\n\thzkKcRv3xRr8Rr9ab59meRsTpE+qNTasQSB5Kyx+WZGCaGl1eXDQAKimtmOkFTfwYLKBKUpSEJq\n\tjJIU3ZuJ7C4S2/5H94C6f3PZjY4LeafeCJLvf9N/Guwfv3GsTXjfx2KQvjNQLJnd/RacQeM0=","X-Gm-Gg":"AZuq6aJ04/1hyejca3Y3tcML5fXPhrU/RWDFDxbQuRF2BokiFESl2jpvzPe95cN/848\n\tvqDaZoIe4f8LNpbCKwKWamucAsUkcTLlfjohVGpHrhjjb++HEtjEaSlxhUmRiv+EPrVn0Xorh9F\n\t0SfgiU5eUT6GwSbpe2IqIrtNamaBC+l7Edu/QAuhAMkZGRvyEv7wkSvvLqqDccKhDfd37nSYay0\n\t42tbQudo6KypN7A5G9GZNhyzEuO0XN+GIWhAWcNQz9AAwUtUFG5L5EFvSHZGPYxwgVaPSYeL9nl\n\tCKEKIASa/3Dt2url/OYpdOLq+/gFUrUcPO+503gl2qWfF6jIy32W2/Y3Dx3nol7UF7ILKR+Ivg1\n\tEDWKZ54iUq1G9G1UXWOzJbIFalWFWaxeO+VyhZGosHV8eEj3G06fboArx","X-Received":["by 2002:a05:6a00:2d28:b0:824:374a:13f7 with SMTP id\n d2e1a72fcca58-824c613370cmr13273010b3a.55.1771327153587;\n        Tue, 17 Feb 2026 03:19:13 -0800 (PST)","by 2002:a05:6a00:2d28:b0:824:374a:13f7 with SMTP id\n d2e1a72fcca58-824c613370cmr13272994b3a.55.1771327153092;\n        Tue, 17 Feb 2026 03:19:13 -0800 (PST)"],"From":"Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>","Subject":"[PATCH v2 0/5] PCI: qcom: Add D3cold support","Date":"Tue, 17 Feb 2026 16:49:05 +0530","Message-Id":"<20260217-d3cold-v2-0-89b322864043@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":"8bit","X-B4-Tracking":"v=1; b=H4sIAKlOlGkC/zXMTQqDMBCG4avIrBtJxlaSrnqP4kLzUwfU2KQNL\n ZK7NwrdDLzDx7NBtIFshGu1QbCJIvmlBJ4q0GO/PCwjUxqQ40UgKmYa7SfDBqeUQqFaPgxQxmu\n wjj4HdO9KjxRfPnwPN4n9uxMtFyj/RBKMM2OkaxzXVuL55mOsn+9+0n6e63Kgyzn/AAJ8NLijA\n AAA","X-Change-ID":"20251229-d3cold-bf99921960bb","To":"Jingoo Han <jingoohan1@gmail.com>,\n Manivannan Sadhasivam <mani@kernel.org>,\n Lorenzo Pieralisi <lpieralisi@kernel.org>, =?utf-8?q?Krzysztof_Wilczy=C5=84?=\n\t=?utf-8?q?ski?= <kwilczynski@kernel.org>, Rob Herring <robh@kernel.org>,\n Bjorn Helgaas <bhelgaas@google.com>, Will Deacon <will@kernel.org>","Cc":"linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,\n        linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,\n        jonathanh@nvidia.com, bjorn.andersson@oss.qualcomm.com,\n        Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>","X-Mailer":"b4 0.14.2","X-Developer-Signature":"v=1; a=ed25519-sha256; t=1771327148; l=3572;\n i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id;\n bh=vfy+YzqqKerb02XrtXzWTVN+T8EmD/WiyxKqOvqNYg4=;\n b=Bn9M23h3apUJmIuD/7Q/hILoVU69OPDlI4bmae1vUzWbKDwi1LNRx25XUFJlmFU5bAOo7qBuB\n nrYGrQQ0rmvCcpeuE0uod0BCwRYMWp15bw5jPFucUC+qdJ5YG0olQR9","X-Developer-Key":"i=krishna.chundru@oss.qualcomm.com; a=ed25519;\n pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg=","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwMjE3MDA5NCBTYWx0ZWRfX6l521oaN77Q8\n KCaY9/viIvS+T5oAGFYqdzeaVcm9qA6txOz2bk0TxDKh60nw1dG0vrIGd2W7TayMWtamU/MlDt2\n hB9cZvc2fA9clw2c3aRKKK4l4XLcJpYwypj6mdM5KPxbhNrbHft+Hql3XNO90ZfDYd0KZ080ZDt\n psk9lZtWQm+8j3MvpEhvT5lXutUGkBIBdo96g9r/1kNUFQ5MpI0DkCO7BXJlyA1s1qV2B1NpdZB\n OzvLrXeXpuxQT/mPDu6ZgAieo5Ff+YyAGRO/CcyKLpFEme9duTAzMYOWHiU/fZQsE8XmatpOcOs\n 2QUJXsMfydJjUkMgYBzdk0VGxvpT8Vghz0MQeITUgI4SvshHg2Es8+5p79TmUeVeFPHBnWCUdUZ\n ZFkQmR+7S9lBn2AgmxkB9tmVwWU5GNsa6sfMKrdpSvuQEEbAbf4WjRx5P+m1bXKr/z+dJrLWia4\n rYvUf7Ab3G9yMNCVHRA==","X-Proofpoint-ORIG-GUID":"onMJXRuuFGLWm7eNk-jSflSytNc3jPEF","X-Authority-Analysis":"v=2.4 cv=BryQAIX5 c=1 sm=1 tr=0 ts=69944eb2 cx=c_pps\n a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17\n a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22\n a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=e1WyCQ9WWvu24y8kmCgA:9 a=3ZKOabzyN94A:10\n a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22","X-Proofpoint-GUID":"onMJXRuuFGLWm7eNk-jSflSytNc3jPEF","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-02-17_01,2026-02-16_04,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 spamscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0\n clxscore=1015 adultscore=0 bulkscore=0 priorityscore=1501 malwarescore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602170094"},"content":"This series adds support for putting Qualcomm PCIe host bridges into D3cold\nwhen downstream conditions allow it, and introduces a small common helper\nto determine D3cold eligibility based on endpoint state.\n\nOn Qualcomm platforms, PCIe host controllers are currently kept powered\neven when there are no active endpoints (i.e. all endpoints are already in\nPCI_D3hot). This prevents the SoC from entering deeper low‑power states\nsuch as CXPC.\n\nWhile PCIe D3cold support exists in the PCI core, host controller drivers\nlack a common mechanism to determine whether it is safe to power off the\nhost bridge without breaking active devices or wakeup functionality.\nAs a result, controllers either avoid entering D3cold or depend on rough,\ndriver‑specific workarounds.\n\nThis series addresses that gap.\n\n1. Introduces pci_host_common_can_enter_d3cold(), a helper that determines\n   whether a host bridge may enter D3cold based on downstream PCIe endpoint\n   state. The helper permits D3cold only when all *active* endpoints are\n   already in PCI_D3hot, and any wakeup‑enabled endpoint supports PME\n   from D3cold.\n\n2. Updates the Designware PCIe host driver to use this helper in the\n   suspend_noirq() path, replacing the existing heuristic that blocked\n   D3cold whenever L1 ASPM was enabled.\n\n3. Enables D3cold support for Qualcomm PCIe controllers by wiring them into\n   the DesignWare common suspend/resume flow and explicitly powering down\n   controller resources when all endpoints are in D3hot.\n\nThe immediate outcome of this series is that Qualcomm PCIe host bridges can\nenter D3cold when all endpoints are in D3hot.\n\nThis is a necessary but not sufficient step toward unblocking CXPC. With\nthis series applied, CXPC can be achieved on systems with no attached NVMe\ndevices. Support for NVMe‑attached systems requires additional changes\nin NVMe driver, which are being worked on separately.\n\nTested on:\n  - Qualcomm Lemans EVK, Monaco & sc7280 platforms.\n\nValidation steps:\n  - Boot without NVMe attach:\n      * PCIe host enters D3cold during suspend\n      * SoC is able to reach CXPC provided other drivers also remove\n\ttheir votes as part of suspend.\n\nSigned-off-by: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>\n---\nChanges in v2:\n- Updated the cover letter (Bjorn Andersson)\n- Add get_ltssm helper function to read LTSSM state from parf.\n- Allow D3cold if there is no driver enabled for a endpoint.\n- Added a seperate patch to make phy down in deinit part to avoid power\n  leakage.\n- Revert icc bw voting if resume fails(Bjorn Andersson).\n- Link to v1: https://lore.kernel.org/r/20260128-d3cold-v1-0-dd8f3f0ce824@oss.qualcomm.com\n\n---\nKrishna Chaitanya Chundru (5):\n      PCI: host-common: Add helper to determine host bridge D3cold eligibility\n      PCI: dwc: Use common D3cold eligibility helper in suspend path\n      PCI: qcom: Add .get_ltssm() helper\n      PCI: qcom: Power down PHY via PARF_PHY_CTRL before disabling rails/clocks\n      PCI: qcom: Add D3cold support\n\n drivers/pci/controller/dwc/pcie-designware-host.c |   9 +-\n drivers/pci/controller/dwc/pcie-qcom.c            | 162 +++++++++++++++-------\n drivers/pci/controller/pci-host-common.c          |  45 ++++++\n drivers/pci/controller/pci-host-common.h          |   2 +\n 4 files changed, 162 insertions(+), 56 deletions(-)\n---\nbase-commit: 9702969978695d9a699a1f34771580cdbb153b33\nchange-id: 20251229-d3cold-bf99921960bb\n\nBest regards,"}