From nobody Sat Sep 26 03:55:16 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6FF912FE057 for ; Sat, 5 Sep 2026 00:49:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569349; cv=none; b=eH2qQNaNBwEDRi4QA8fC55PlY+ZhmssXOZohJZgYze/He7jf+HtmjyrNdvu1zusG4BRuLjie13f+QPLAlloOXJrjPZWmF16FYC14ehUf++0zsSK8Itzj1rmcyWzUJcaR+lMQeuYHLuHFyUopCH33l0qC5h3owpTWgd0mNh5OD+k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569349; c=relaxed/simple; bh=sfKd4PUhkaZ7zHvwb28F5e0rQnFuAwMBZcRF6G7zUfo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=C0rM8hNhbW86VT3PSEMhCLAQbx9N5QtXHBmzcqil1lf+qnKuUaUYcsd/F/2RzdO2T1n3uwsVbImMa72+3Uzs4HQ3TdW9PAtkrE/4TjQKICzkYULkKTBkH4ESHHs8bINDSO/hyNccnft7OlG72c6RuqQ1T+tojPIOib0AZYEUQeo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=fDy8lWZR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WMcqfZOu; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="fDy8lWZR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WMcqfZOu" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 684KbmW04083768 for ; Sat, 5 Sep 2026 00:49:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= G/eGTfs5qneBn4Tbyp5BqGhdGuEpUcPdVMb1HTDEOI8=; b=fDy8lWZRKS8XNRh5 sf93DBwIiPCFbrDsOFnbBpFQVSTF2wyXWdma62KOYE1hJ8xAdh53ODt9Y6EQjA9L 7R1tjv4L+1qDShYI9w2hzLeNMnInv+gf6e8VFxi/qbBJbhmyV3hunP94Wtfr2h23 vtmDecxaaM3vhZ8c7H84yLoXATheQS2Snc3+ELmG7KgZkZQtvXlJ0V3AZh1G0tug uAtJqHqz87s50Q5aV3+OfUrIJml1hTRlgKNxzJhi4tx94XVoLkJ7d00BarmdpW9h 6sX2oklDAzaE7dcDWZY+xVevhatyKYBmDTm/cdb6071qqRMSoAt5BwmYU+1JL/+r FGz16w== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gg00yada4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 05 Sep 2026 00:49:04 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38e8fee6af3so2045903a91.1 for ; Fri, 04 Sep 2026 17:49:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788569344; x=1789174144; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=G/eGTfs5qneBn4Tbyp5BqGhdGuEpUcPdVMb1HTDEOI8=; b=WMcqfZOup5n9wQ3FVzggPV2l8u+Lz7nKDbuGMLXiA2iIEAvir/i/c9VhnZLk/DN1Py wmTHQ7yLUlPzenXFkKVXVtshRioruwjm8tLyw0Fddwui6Tckk1YLk6zLRtwCCbjZ9Ism pK6BRMH0gaBz7GkfI6AB71Zsn1SFQmWnMdhdsLOYvOqqLICLiwjIpj8vnITUAKFZ1q4w cQkzRUYj5lF3RU/EMm8TyXuQO+VqtSPajwr0Vquv67U66opmrq+GmkqlDYMocVLYlRX2 Po4FypxwZJU/x/2ZT7FrwxfXbX/7bzpzEuI9fycf9+zjdMHpkU1KKXSchiZs6hXWgF0w g9eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788569344; x=1789174144; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=G/eGTfs5qneBn4Tbyp5BqGhdGuEpUcPdVMb1HTDEOI8=; b=IXVBd5jAtUgZIITiOuJhFKF/MACY9oEZvXx5obqL/gJGaOr8bctrhaC7rwq4OX86R4 5rhhhHA6HXdJ9HVbjIUySfqj15KdMbsHmRGL1rYb6vCLKzFiKdHIKyrObWK3nF7J7Whx +/EFvMvl75W8A7m3cziT++gpvJ1ZRJYegk304nObfc/uFV0Vq18sjVHL4o2C91bxt7p3 ovVUjx0nSnCXc6fXHd5bhWz2nJytbN2uVk7uwcQZIWedQ3TXCKxJRQKiGzssFHcNqNik LEqq3zVUTye+3u/riiJDWln0BwXgYSkHifGC320PJuJG7Wh0SubpAKYWPS+VpcSf/PhW TW8Q== X-Forwarded-Encrypted: i=1; AKwUvBz2qpyS7o3VSKhdpkz7UpDMXqPzXytFTofSWin4GDh9xkZflX0rmE1y7MXiGPF4ziPkkc0/zXJ16ShFzFc=@vger.kernel.org X-Gm-Message-State: AFuF++nfnCEEEQIm3Llj9ZW9el2aqf6vWWt8xs/p4fkfGrZ6Lp8AthgD NoMxNOSxxQ5/TTHtBxYOo8KE5powwHFA51X1tHn6c2fMb6xNF3UhGJYfjJg3UXBHbFaVEjaOjNE CnA4g04YpffWOGLIAyhb+Ev2yHkZn9EIq28hc8PkhM9NMuNGdmWRsrgPlyGAg7JtWG4c= X-Gm-Gg: AYBFou1HCbhHURaCdBjyPK48kGg4wFSyl92Wh487lfcqL5L2e2LjRG25HoG+oDCXfoM LLQlHzt9SB3rqKnBNMNkW5nt6/fnNg5IPRse0SYjKAeuabELNQzCCgoX5b+ekBFs79XS1DJ5kSx jYGrKxphzz0iExTMZOdkxOBGZDr0w+x+Sw/dN+a/BQosmmlBR6Lo898hb9tncTC+Odl2YbYT8T/ ijrZ9N0CXj4n6WRz4CDj8SoMyBYf1GVPgH681Ycrw82SfALE0Vli5Oriv2juRzTkfN6AkOFHT+N xNGtvu8c6nSORM5hlYeACV8ijuonZ2fH/6elNtoDJlQGeHkJ0+cxOmWyUK/ReUIL+xcJT/6h7tl w/JfF4BBgVafzx52e160x68Z5OhQHYP9K0D0= X-Received: by 2002:a17:90a:d2c7:b0:398:9bd1:3216 with SMTP id 98e67ed59e1d1-39b262e4e02mr13686853a91.23.1788569344143; Fri, 04 Sep 2026 17:49:04 -0700 (PDT) X-Received: by 2002:a17:90a:d2c7:b0:398:9bd1:3216 with SMTP id 98e67ed59e1d1-39b262e4e02mr13686815a91.23.1788569343667; Fri, 04 Sep 2026 17:49:03 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1432441f5f2sm10843907c88.15.2026.09.04.17.48.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2026 17:49:03 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 05 Sep 2026 06:18:48 +0530 Subject: [PATCH v5 1/3] PCI: host-common: Fix early bus-walk exit in d3cold_possible() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260905-shutdown-v5-1-f0c6bafa1d4f@oss.qualcomm.com> References: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> In-Reply-To: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> To: Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas Cc: konrad.dybcio@oss.qualcomm.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788569335; l=2447; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=sfKd4PUhkaZ7zHvwb28F5e0rQnFuAwMBZcRF6G7zUfo=; b=V2pZFMIR//ke38H/PQM43Qq1j//ZSYODnTwLs3CblZAyWSngbLeq+V1DyVke32R6aaVpc0H5x X4ec32p/ADXCdO7tKuEt2ZBGhB//3+6sRB08WZi2ZT+t20OnvKPSTlh X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-ORIG-GUID: NDpyEHcy4lFx1NhDMaEoBmLSrm7zP36- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfXwQvp1iIK5V7U LbOmmtAmWdQEeZENhOocMWw0HlERkcUHPKGlciLPSfw/DDJRM0U0Ne656vj+NkncPZLRc6Y7ZhB UW+yLD5kr3mmiyBn7IokF2BjMYJFajABYZ2lNeemG/GHWqo/A9+FsiJzl4/2Q/LWTZuKv0N57ml xLYtUddcjE1jOxGq6T+YP4n9RO5AwtSCAGXHVaw57hte/4hJiGQ6YOp5fZ5tAEYH3YButS0ADpq luzObeAUxEQ5cvJGuPxtkSgcJCrRkiWPHoJx3Oh2ciCZsPDpr/Vq8st+ClG+pU2sqHloVQtjEIZ /8fvJLhE2tncxFvBNC5VDoTjEhevkj63HPu2nHc+8R6oOLFegpDPAAAJEGdp4XuO6WU14ra9lb2 4uY70az7rvZCpO4YdYcu+3N29oJE3q7/HSUgT9WaMvDJYu2mJRCQOvGb3BhdE6Z8g2uPUp/Dd2a TrS9xL3b5GrzZC+bcJQ== X-Authority-Analysis: v=2.4 cv=TsPWQjXh c=1 sm=1 tr=0 ts=6a9b6700 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=RIIKlrP-v3AzcS8hWasA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfX2iiLQ0MBGMRl GiLLRCbb3FBTW45x14C6GC++Trztf8lA9JPdTHFsFi1X7wRSuafVVWmB4wcOu8+GdCKk4euletC UO9lIYVSuj7OCjzVuZqg9VoDbO49RJY= X-Proofpoint-GUID: NDpyEHcy4lFx1NhDMaEoBmLSrm7zP36- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-04_06,2026-09-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 malwarescore=0 bulkscore=0 clxscore=1015 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609050004 __pci_host_common_d3cold_possible() returns -EOPNOTSUPP for the first downstream device it finds outside PCI_D3hot, and pci_walk_bus() aborts the walk as soon as its callback returns nonzero. Any device enumerated after the disqualifying one -- including a wakeup-enabled, PME-from-D3cold capable endpoint -- is then never visited, so pme_capable can come back false even though such a device exists on the bus. Since pci_host_common_d3cold_possible() already returns false whenever any device disqualifies D3cold, aborting the walk buys nothing for the plain suspend path: the overall bool result is unaffected. But it silently drops pme_capable detection for any device ordered after the disqualifying one. This matters for the upcoming shutdown path in particular: unlike plain suspend, shutdown forces the link into L2/D3cold regardless of whether pci_host_common_d3cold_possible() itself allows it (see the following "force_d3cold" changes), so at shutdown time it's common for an endpoint to still be in D0 and disqualify D3cold while a later, PME-capable device is never visited. dw_pcie_suspend_noirq() still uses "pme_capable" to set pci->pp.skip_pwrctrl_off, so an inaccurate result here can cause Vaux/wakeup support to be dropped for a device that actually supports PME from D3cold. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/pci-host-common.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/pci/controller/pci-host-common.c b/drivers/pci/control= ler/pci-host-common.c index a23907a875e5..78bc4c8c9656 100644 --- a/drivers/pci/controller/pci-host-common.c +++ b/drivers/pci/controller/pci-host-common.c @@ -274,22 +274,19 @@ static int __pci_host_common_d3cold_possible(struct p= ci_dev *pdev, if (!pdev->dev.driver && !pci_is_enabled(pdev)) return 0; =20 - if (pdev->current_state !=3D PCI_D3hot) - goto exit; + if (pdev->current_state !=3D PCI_D3hot) { + *flags &=3D ~PCI_HOST_D3COLD_ALLOWED; + return 0; + } =20 if (device_may_wakeup(&pdev->dev)) { - if (!pci_pme_capable(pdev, PCI_D3cold)) - goto exit; - else + if (pci_pme_capable(pdev, PCI_D3cold)) *flags |=3D PCI_HOST_PME_D3COLD_CAPABLE; + else + *flags &=3D ~PCI_HOST_D3COLD_ALLOWED; } =20 return 0; - -exit: - *flags &=3D ~PCI_HOST_D3COLD_ALLOWED; - - return -EOPNOTSUPP; } =20 /** --=20 2.34.1 From nobody Sat Sep 26 03:55:16 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4B3B31716D for ; Sat, 5 Sep 2026 00:49:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569351; cv=none; b=t9FwmVg8ygEkgN9WvSR0izVrpsTcgQxr3S/NBiZrfiNGTSFdCnnGDNtF+pHy0IdC8MSvlMCCMncOqovCuR+WImWqpyZDstVseIOvkfGiV7TS1KHrcLswg+Du46RH1hkFK/MU/duORaRY9z6FEK5u93HaYJyufvdq6KUkDVOcw+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569351; c=relaxed/simple; bh=Q/hcehAe1T3B2LPGiG5zYS730GO0II5dK3ygD4/Fn28=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PoDe+OWbyJqHol+hEAdXI4GG6BVZe3237TUyljb7Ow/lPI5Fe5HqhMJg/k8Ugmi1n4O00nPfwg78jReZcLOr05L/LsGq8DXbwfmUSt70bBygr9eeHZNCXugPS8Jlw6Q7oOYnXqpG603JuGJInMmXN80vDRAElrWWY3wYZ9iA8nc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ogHIVktQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ed9tgJ/F; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ogHIVktQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ed9tgJ/F" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 684KbSKC3418982 for ; Sat, 5 Sep 2026 00:49:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= l9v/56p6HJOZu6muIuJLlRunOTV4icdJBQiBGkkZcGg=; b=ogHIVktQ6kUZ08X6 oK0sS0xRkqtZO3zaG+u7/hEmA9NV1Av9GxHfRxJxRqcwvfHC5KPoJGdXkNb05BGz RkY0K6cRACbZ9zHE5bGL5B8rD7/kXGh1BHGw1ULR2ZhqTemyuNmZovTuX/sP0Ma/ exQwe4v02+YduJ7vryRNs3TJlkdZ9WGhK7z2Xk4BnkubUq2QV/X7exZK151zJyVG mj/YM0MgLwURkwM2IQS/BxbtMHS1X32rJwFefRjncy6uv3M7CR52h2yBXawYCbtk exEK/K/73KEH/iG4CSERKhjJH31YjfMO/xSwIvw+B8wtwCtovxL1S0oNgAmbVPpR j04/wg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gg00ytcq7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 05 Sep 2026 00:49:08 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-398d0010cfaso3148798a91.3 for ; Fri, 04 Sep 2026 17:49:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788569348; x=1789174148; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=l9v/56p6HJOZu6muIuJLlRunOTV4icdJBQiBGkkZcGg=; b=ed9tgJ/FEN8sGZI781GAV3inCGmDHwfSM3alvUA03VFGwyXg0CMsUn2ozKLANfIVum k/JM83JHPEuXgN/62ANGh/jMUkyx+Y9Ah8ukziQ/iQu2QgBJCcevLh8FzKRy91iW2wi2 xsQ0sY5VOaLJXggxiaNCsj9pDeYp01yOx03EAVP3d8Hv+k7mDTEYD+QjMbLrMo14843m UI0hpwkA6ugYGFJp6q4vv1hA0AcZ7H5Xjeslk/4648aV5Oyn2D0L2mcSD6jNQA3ykTv3 UEkZ96noDjO4m+NEWu9ynzjAy1hXaCpq4F0sHhM6ye/ZcE1t+l+NU0bxSPEuPonI/ctC a1HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788569348; x=1789174148; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=l9v/56p6HJOZu6muIuJLlRunOTV4icdJBQiBGkkZcGg=; b=C1s56+fI1fNEn0Q4Ul0XsnSs4NOIBR4W47FumIaFp59J/viM0ajcHuDGPkyAqCXH8Q QIegRbDOx7hSDN4WQs3hrcLLe7oDhW/Ze0S7OJUChdf5L201LTE5vPmiEFSgNb4891xk IE13/mDMT2qw+gAtYFobiwb1ep4scESTSCd6vhp03ELTaXS8dRnaBzTdNMLw+7pJt3RP SyFyv9nX0Sa30JOrBpnECnbryix5ZOpZZ1LTBfDVQ+lauqShT1aztGD0jPWh39EPTPhn 6PAAajUPuDVzlc1NZ/mx2nHvLcaIddWZTDfkthWppfKxeoBn2EhEnTE+kWl+3epbuXgH UKXw== X-Forwarded-Encrypted: i=1; AKwUvBxBynirrZsbXkfEItw6Q5Y4HLKscRYnq76yTCTYq6vhaZrjTU9dxejhK8yYICxhVRRCPuBLiPCt4FwYDbU=@vger.kernel.org X-Gm-Message-State: AFuF++mXdbksN/NyI/ri4e3E+M0JSle3djwzqJURjnA2zDh7cx8WUITC YuqVIMNVywcGDBqPOKRbPnoAnNjUVY8qQ89BORlDS9mHbBr/2jLB8oFf85nkXonavSqgPjkoN0W vEsswHsEjgqAJcn3mpiekL5ZteZyJI97J7PeCCK60O6rwXpHtH7RfUGvqlrmz6PuHDEk= X-Gm-Gg: AYBFou0YIOdiES8PDFtJo/z7yecxsKcw+/7ZgtAb7jESbvNSyy8BYV50REYvXPLNvpd nJq7CiycksiWcym+LAqRAAkxgqOwrpCOM4nIxgiKkdi0qGfLATqfpGCmJy7j2AlQdEWVcsE2nks 7IIxb9ZSl2V9X86YP2lZTKYe9CLmYBldqdDiN6SlGc99OACvZLTSkmruk+wmWdUNOzNtT/4sGIU cDNGlwxYxbwVpVVas917/f6qArnc/f+MTgudLvl0CGScdcT7/Cn6gt7iSnRz9sl/Kiz68H1q7K3 VSPMhyJSJMjhvD9aD7y6KbcjWXVkmlXkV3Eu6r05gikxmtEwMJs4L4lSAYhelU9MKFL47/tHFyi ONR0LB7WXoD5Ge9/bsofxQJhSuFGpceX23TU= X-Received: by 2002:a05:6a21:3382:b0:3d0:a555:c823 with SMTP id adf61e73a8af0-3da39feab06mr15571114637.14.1788569348193; Fri, 04 Sep 2026 17:49:08 -0700 (PDT) X-Received: by 2002:a05:6a21:3382:b0:3d0:a555:c823 with SMTP id adf61e73a8af0-3da39feab06mr15571067637.14.1788569347807; Fri, 04 Sep 2026 17:49:07 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1432441f5f2sm10843907c88.15.2026.09.04.17.49.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2026 17:49:07 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 05 Sep 2026 06:18:49 +0530 Subject: [PATCH v5 2/3] PCI: dwc: Force L2 link entry on shutdown/reboot without D3cold check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260905-shutdown-v5-2-f0c6bafa1d4f@oss.qualcomm.com> References: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> In-Reply-To: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> To: Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas Cc: konrad.dybcio@oss.qualcomm.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788569335; l=2715; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Q/hcehAe1T3B2LPGiG5zYS730GO0II5dK3ygD4/Fn28=; b=xw6hvdlwQIOeHMGQ0aR+jQB4XQy5tEtnGc9orZJBPpaqf8ZjKwi7G0ddFs2bD5ZbE+gjzB/pt 4Jco2f/VBt4BJAPXAnc56ZTa+SvToe9texAys8jT4C3p92WJ/lP6BzX X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfX4HvaiDwLOwbk Kgbn+BMc9sUqCbkGUvU4gsHzyA8kps3njU+7wG0DlfsJ3cMBq2TXNAeiseOwigulgBeOr1rft34 f6xfuTp95rumac1UcKTxXvn+OeANqno= X-Authority-Analysis: v=2.4 cv=TP11jVla c=1 sm=1 tr=0 ts=6a9b6704 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=yeOUdISH2rptVKx3L3YA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: BQWkXdfWuB2fo91crvS9BJsNY23v0R3N X-Proofpoint-GUID: BQWkXdfWuB2fo91crvS9BJsNY23v0R3N X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfX6IgjMavIjT7c LgMxx84U46qyVgjZn0yqpV7h+wjDWXf8GsUmKDZ3+eyGzlBtlNXUZn0NtJMBdhBpbns88BdNiKC 2vYoryw0OHOkkc2EF/d/fUwSEfBSLExU3DM4diaKEBJWy8aQpN08J7PCLImg4H8TRVtYcElphJI htuAcdVWShTAs1RqJnEz5nzqVOl1glDEK9Rm5MEA2gRGFCOms7uzU0I0NZzXkZ5Ag/088stEnwP XwRlZjrjMEbD19HcfUSrX1ousy27Tz8fgy/jCUiOnuvNrlfHi/NMhAciRJFJSCzBaLFf9XQsOfr 3T60miuViarVnooF2Km03rjPh1p4KfibFBtOeAkm4AMPZY6lVI0zxwi4SKKzCMMfgpUxinr6zgs /YkOOYak5gCe6aL4eBVMA6dG+7IwTbZCB2QhzsDwgSgyiLa8gQjUcM05Um8jvG4apFn64Ngi6f7 kdoLttslhfd1sII4MVw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-04_06,2026-09-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 suspectscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609050004 dw_pcie_suspend_noirq() normally calls pci_host_common_d3cold_possible() to check whether every downstream endpoint can be put into D3cold before bothering to move the link to L2. If no endpoint supports it, the function returns early and leaves the link up. Querying D3cold support during shutdown is actively harmful, not just slow: pci_host_common_d3cold_possible() requires every active endpoint to already be in PCI_D3hot, and returns false otherwise. If any endpoint is still in D0 -- which is common, since endpoint drivers aren't guaranteed to have suspended by the time the host's shutdown path runs the check fails and dw_pcie_suspend_noirq() returns early without ever moving the link to L2, leaving it up right up to the point where the system cuts power/clocks to the controller. Add a "force_d3cold" flag to struct dw_pcie_rp that callers set explicitly to force this behavior, rather than having dw_pcie_suspend_noirq() infer the shutdown/reboot case itself from system_state. Still call pci_host_common_d3cold_possible() unconditionally, since it's also how "pme_capable" gets set, but ignore its return value when force_d3cold is set and force L2 entry regardless. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-designware-host.c | 5 +++-- drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index f5a38e6fd8d7..a8a3861c2956 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -1224,14 +1224,15 @@ static int dw_pcie_pme_turn_off(struct dw_pcie *pci) =20 int dw_pcie_suspend_noirq(struct dw_pcie *pci) { - bool pme_capable =3D false; + bool d3cold, pme_capable =3D false; int ret =3D 0; u32 val; =20 if (!dw_pcie_link_up(pci)) goto stop_link; =20 - if (!pci_host_common_d3cold_possible(pci->pp.bridge, &pme_capable)) + d3cold =3D pci_host_common_d3cold_possible(pci->pp.bridge, &pme_capable); + if (!d3cold && !pci->pp.force_d3cold) return 0; =20 if (pci->pp.ops->pme_turn_off) { diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index a53ac27cd244..8becf4e62703 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -471,6 +471,7 @@ struct dw_pcie_rp { bool native_ecam; bool skip_l23_ready; bool skip_pwrctrl_off; + bool force_d3cold; }; =20 struct dw_pcie_ep_ops { --=20 2.34.1 From nobody Sat Sep 26 03:55:16 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1365311592 for ; Sat, 5 Sep 2026 00:49:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569356; cv=none; b=JhrZm8H3RJofQXakZYYMjBkk97XHWZ+7+oqZnglQDMxVHoJNo2riQ1QQqzR5nzhJJ5DIElw2OK7ejq6iBNtmAbPrcnjx42wATX5NoHBwcibfTX3jkcp393vYir6CqR9YcdFOne+UbuZACsS1rSam6B18C3cfjOJA4QJkAYAjDM0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788569356; c=relaxed/simple; bh=PvQXCFikz7+VcAqvA6t2Ujka4N7pKImpgFaj/e/tCBM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IcdGKGTOXsrTB45xlFu/2HqOeTmVfBul4OhL1B9PG98/WvSbp5Wh7hMWDji6Kkzo+G7NXLeidu/236tw9G/9d76Vi4qW72XB2h8etehI7Ix08QmicTSS4iBRK1n5nhyQdvuyBN+gCHb/9g99iFXxuJ6wRVgKrzGSrcHfH4kYvzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ASedEVdE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IlKM4z1Y; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ASedEVdE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IlKM4z1Y" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 684KbU7m347609 for ; Sat, 5 Sep 2026 00:49:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= Md8xapU073VDnkdcz3pCROBsNDKkTMi0kEel5VMy/bo=; b=ASedEVdE0zSIDYaB +DgOrxXAq5errKEo0SFT2hcz+H5yEHTfqdcx7PpP5ZbOsReYKxhCt1mBO3HmzTvM cNA6ZNFhlZOmx6HQmQchrU9bZsqz7UjgkUw18AvON5hECETz3tXjED6ZatE9Eb0Z pgnQLh7FnT5yM0oEURelsW53XVTOljuWxusqbLBT3i2M5f19CoGuDvBaIKf10Xqt 8+x9U8BqW1NqBAG4IPWOL3Z8yb+dHPtMSbpvY3GuTA5A+TvwNc588Zi7RtCSD7e8 gOPitHFPJmqQO00dH7iPYLsNVkyU8r2XMnesu5GfUxn6Ey1Niib/mXp1Gw5rnAHa 21ZArA== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gg0122yx8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 05 Sep 2026 00:49:13 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-38e54b6556aso2210142a91.2 for ; Fri, 04 Sep 2026 17:49:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1788569352; x=1789174152; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Md8xapU073VDnkdcz3pCROBsNDKkTMi0kEel5VMy/bo=; b=IlKM4z1Yj2OOib7S4kKtRtj6jCuzpAcwyZTtFUqAEa2DrB2KoAt04uxsqutHH3Y+df Qb2MYf1X519CERU9OgjogMH0y01XWB3cE+bIOE3uHQfmxQuwq2kfWYrvV/Sf5SAM5uI5 7IzKwl4Lw2Uqk8NKNofNrNj68J9qfRWvUwPQXSfANCjzckp7my3Fo7awvBEEmmjd76Op 858JvlcShNb+noT81rK9phfRrnUKvCIqKdH4mqT19cUnEH9jW8EDtfWCyFAHeiWbMaB/ tU+/EDYfm/Xz15e6iNMwnMOiq5G7mpFDWWfASd1kh9OTfY61f9435OU0PYggDY38dNHO taPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788569352; x=1789174152; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Md8xapU073VDnkdcz3pCROBsNDKkTMi0kEel5VMy/bo=; b=fx1xF31C6rDZvaXKSAmNkMJErCEx1z0gkYC3/mut8xzptsraemQ0+tZh0CqMPdAIDu XWPBESebDTfyGFIpQYEy6qWwOGgQoyD6AxZCZfbayjmH9BNe8+vZ8Aa0gvZrlPV56HED a/zWnW0G5jiAfMCnCwndut90htU1/Ut+Eg95b1kugiUisEvCYClDrLc1eFJ0PsoEHpRQ Nw+9vUSRfajGsFmExHO+OkjuxlFnnUt0lvTocnLjybIlXLVY8zLpgum4Lcz4yhh7nkTE sdZs2K8bD3BlI1no3in+Ll1KRUjrsRVT7CKPavYCeODQUytqK7r8F8vlto7gLUOzcyAE k7mQ== X-Forwarded-Encrypted: i=1; AKwUvByd6POaSf8ewGctUq0jevNqJPThIaubCMF3+GdHx+CtvCX/hjY97f33tFQ1qg295oHA7lNVtxwar1l6d5o=@vger.kernel.org X-Gm-Message-State: AFuF++kzBuunlUDhRXZ/hV4QKvnrqkRLwZvGhzGcQ09Rw99pp75yJLtn lzHQ+cKqysqwRXVasbDMTIpq7CH/YquhfGWj0ujauoeb9fHqTuOQipY1GgAwC2nwo+jDnmvXe6z vABwTL2UnF0FS3TKlJBooF9QbEMeoHFfP7cnRmsKUplQ5P+45BrYtonmyC2Dc04rSUGU= X-Gm-Gg: AYBFou0PSj+sr1dgyPWBD/WQlLmuKZ1JA8v2ooDiBDRWk/j6SKEf/q5QigK4fDzr0Gm QeIQ95Z7iir863ybm2Na5c2MWrS8AsANn5EejBx0/CNfgsynk95YKoA8CQo7f5hqrhPZSXejFWQ RKfgypnTZw9hFeYjTnPp9dPVPHitBmq2pGX5gKNNyJXa7Jx3irVn6nHBNj9FUpZt6rGITqIG/bY CuApa4A1+HgGxygD0AuiGphEv0IFjDKvjmgQlPna66v2VZP1vpztpTpgzHfSgbQjlodAcSA/0Z8 VvXaUSC5B3fQ5Ou+uDNfZsqkIGQsUWOpd6pntb/u959y2V/N42LIrUg+46Kgsf0rvl2lzolD+HZ Ro0vjmsvtnTjogS1YinyAERP4f1jlNTS+coI= X-Received: by 2002:a17:90b:534e:b0:398:ba0e:96f6 with SMTP id 98e67ed59e1d1-39b2624f0f4mr13817685a91.23.1788569352335; Fri, 04 Sep 2026 17:49:12 -0700 (PDT) X-Received: by 2002:a17:90b:534e:b0:398:ba0e:96f6 with SMTP id 98e67ed59e1d1-39b2624f0f4mr13817649a91.23.1788569351908; Fri, 04 Sep 2026 17:49:11 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-1432441f5f2sm10843907c88.15.2026.09.04.17.49.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Sep 2026 17:49:11 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 05 Sep 2026 06:18:50 +0530 Subject: [PATCH v5 3/3] PCI: qcom: Implement shutdown() callback Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260905-shutdown-v5-3-f0c6bafa1d4f@oss.qualcomm.com> References: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> In-Reply-To: <20260905-shutdown-v5-0-f0c6bafa1d4f@oss.qualcomm.com> To: Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas Cc: konrad.dybcio@oss.qualcomm.com, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Krishna Chaitanya Chundru , Manivannan Sadhasivam X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788569335; l=2931; i=krishna.chundru@oss.qualcomm.com; s=20230907; h=from:subject:message-id; bh=X9pEskPcIL//ByohSRkzhW7Fg5XmyuSC5RVulFPk/RI=; b=pJ23BNDibNBii90irb9rRFMgg7dcmuKxLM4wLglTXh/j7Gci2L6JJTysrMIAX+oWLsr6Lkj2S 5s1I/A2ydQmAO6bUH7dy9OhNP0JiViY7pA3Y9hbpGS1smQBpDSgJv4X X-Developer-Key: i=krishna.chundru@oss.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=dfSwG3Xe c=1 sm=1 tr=0 ts=6a9b6709 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=kXhGf0cxdCgfIYue-YsA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfXyyn9L8xm9LW7 Z94EXJcOesJD4Oyp2jrFTAleNKoY4tFX5JJv5kUHfNtJesvOtXI8mceBkQk7E6vQ390Z0PXD/JY 9jeNAEnH6sCYQV9UWfE/HBeefA/jMZgNdW1NOmuuAiuFAidBOb7XQrlJrZO+JULmpGxkdbn3LFb tfh9ICSYfP3aR+Fkqm1sM+WPQqqjnqdMwJDU3mKA+/0KAN3pfBfi3hDfoIGsluRCvvxEcOjkVhs Zj7WJvvQhUc4ewf8FgMaTRC0f88nU4ypm3qbSRMqLmnxMQDTb5ox1/+72WKSzruyMjGZlDDibAd Z4BExj/QrNmmjwqXzADblE/mEJa2BZhZSTezkA0nTfLnnCwRuYATPoq7DnP3bnkeJpZMbf4CODz FClnqS9lHjzphSLMu71n88WG173fJPWmtSbDvLzeOril7gsmTlVi2W0VqbumLW82feTXhnYrWrz n6qW/R4LU9asfLmeowA== X-Proofpoint-GUID: DdIPMiZGqOXoHbzKdt12ELXVIzja_nw5 X-Proofpoint-ORIG-GUID: DdIPMiZGqOXoHbzKdt12ELXVIzja_nw5 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTA1MDAwNCBTYWx0ZWRfX3TqJH8VHxry/ TN3nqyaFVlO1TbjePEbmLcInsznrfdExa796KfAbkSl6X7G/D98MDUbLiYczUdKfjXL5CwYyD3I 243exrHF0kKFKkV936PSMpjU5S47mrQ= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-09-04_06,2026-09-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2609050004 From: Manivannan Sadhasivam PCIe host controllers should bring the link down cleanly before system shutdown/reboot proceeds to remove power/clocks from the controller. Without this, the link may still be up and endpoints still have transactions in flight when power/clocks are cut, which can trip SMMU translation faults or NoC protocol errors. Reuse dw_pcie_suspend_noirq() in the shutdown path to force the link into L2, putting it into D3cold. device_shutdown() runs with interrupts enabled, unlike suspend_noirq(). Mask the chained MSI IRQ(s) and the Global IRQ before tearing down the link and clocks/PHY, since a late/spurious interrupt could otherwise reach a handler that touches now-unclocked PARF/DBI registers. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-qcom.c | 38 ++++++++++++++++++++++++++++++= ++++ 1 file changed, 38 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controlle= r/dwc/pcie-qcom.c index b58a607b713f..38801830fb70 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1924,6 +1924,9 @@ static int qcom_pcie_ecam_host_init(struct pci_config= _window *cfg) pp->use_imsi_rx =3D true; dw_pcie_msi_init(pp); =20 + /* Stash pci so qcom_pcie_shutdown() can mask the MSI IRQ(s) later */ + platform_set_drvdata(to_platform_device(dev), pci); + return devm_add_action_or_reset(dev, qcom_pci_free_msi, pp); } =20 @@ -2337,6 +2340,40 @@ static int qcom_pcie_probe(struct platform_device *p= dev) return ret; } =20 +static void qcom_pcie_shutdown(struct platform_device *pdev) +{ + const struct qcom_pcie_cfg *pcie_cfg =3D of_device_get_match_data(&pdev->= dev); + struct qcom_pcie *pcie; + + if (pcie_cfg && pcie_cfg->firmware_managed) { + /* + * Firmware owns the link teardown and clock/PHY shutdown in + * this mode; Linux only owns the chained MSI IRQ(s), which + * still need to be masked off before shutdown proceeds. + */ + struct dw_pcie *pci =3D platform_get_drvdata(pdev); + + if (pci->pp.use_imsi_rx) + dw_pcie_free_msi(&pci->pp); + return; + } + + pcie =3D platform_get_drvdata(pdev); + if (pcie) { + if (pcie->pci->pp.use_imsi_rx) + dw_pcie_free_msi(&pcie->pci->pp); + + if (pcie->global_irq) + disable_irq(pcie->global_irq); + + pcie->pci->pp.force_d3cold =3D true; + dw_pcie_suspend_noirq(pcie->pci); + } + + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); +} + static int qcom_pcie_suspend_noirq(struct device *dev) { struct qcom_pcie *pcie; @@ -2519,5 +2556,6 @@ static struct platform_driver qcom_pcie_driver =3D { .pm =3D &qcom_pcie_pm_ops, .probe_type =3D PROBE_PREFER_ASYNCHRONOUS, }, + .shutdown =3D qcom_pcie_shutdown, }; builtin_platform_driver(qcom_pcie_driver); --=20 2.34.1