From nobody Sat Apr 4 00:09:14 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 D8AF235E930 for ; Mon, 23 Mar 2026 07:15:37 +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=1774250139; cv=none; b=s4trnEMhR/OZGWKecSrAYwQUVNCtoL+5EkJ0os1M2WBnJARNWK4mIK9wwiG0GxylMWdHjngRDok28ok1sZjAoWQOR0WQwuUJFy3moFzDhnE7b1ofDiRuuxrw6+UJ2j8/H9N/eBfmMAwa5Kus2agWW2YeQBKrD/ioXwz8c7TlZIk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774250139; c=relaxed/simple; bh=1kVB09tNu2L/JXEZO/ToUYxEMkDFaHUqjJ74Zd0YDCI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ns9zk8ap/4CdJLfDdGv5a/+lQ1DIGPSU12NZ3JZkCC2qWlm7P+fLAOsYDLVsgPWfM3IuniLGguVkCpiQ8sfgxTFa0uASi9AklND7Xo9c5CP8kRXTs3qUVzTavrQ4F4+lpNhe2t8vmSOV076eicfAvPsXcGjqsNKCFEDnV4g46KY= 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=CvKSK86U; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OJMd9SSb; 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="CvKSK86U"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OJMd9SSb" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62N4Lwua745170 for ; Mon, 23 Mar 2026 07:15:37 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= BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=CvKSK86UrjlaEy7p 1wXtadtBUHR4UVZCwgtD39vKozOQTaWoBKxn4NL0XVIr6c3tfYXArsyJjbCdYGKa CVa4qU7DsY5E0vHaICrU0pdbXMp06V/OeTXDvYV+cN5V6ZugadQFtMCnj+dxN49N vdpsxC0FoLTVlojzPcTxERiKx+LeDVK/vRk8MKrZFBd13j3X3emGHB4P4B/tyFRB 0i9xrVe0vnrEp8tNiA655PaODGJyCCtv+XZmGwjJiwmiGNIwC98k/CfonILSCbbk zZxBItXP1PZKmThS//5fEWA9DDI5XR2ufY9Qx0EMYnsSFCXestYsW5j0YZI3Lj7+ y5sOvQ== Received: from mail-dy1-f199.google.com (mail-dy1-f199.google.com [74.125.82.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1jb5mb20-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 07:15:36 +0000 (GMT) Received: by mail-dy1-f199.google.com with SMTP id 5a478bee46e88-2bdf75bc88fso2937311eec.0 for ; Mon, 23 Mar 2026 00:15:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774250136; x=1774854936; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=OJMd9SSbwW2FC1lf4iEBvqq0VFp+55X5mTPhY8ElpTvKcUa1lNtldsInLgdyejPNxF AWxFJ2k23SHZcvwOYlGf5ZUsONqPyTRE7kV2ou6YqVLmOBY+ulzQ2kdQLzbyh3b9CrnB TkL2meLPn6m5dUNBvolDyBC0CLMJf/dn4AVYQdRZuxoIe5wOA3E/yQIHHQPydLHTKHv3 4xvVpfQhVvFhRdyYYinQ9G0jftz4xJKwUJ0CwKa2+l5rE1UaCEQEpXDwsxJsjhsN9j73 ORP+eNOdjg2zMq9/AWuJT9SvafxNP6w2ltDwXaa9zESjixYPZmIhCZK4bQJqeNrpI4IL KO5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774250136; x=1774854936; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BJhpV2AzAumJm8pTjJTWL4q0sS8IJpLGwzEITJtHskk=; b=N75ioBq0blN9JEh53aoybl6hYo6qAW1A2mXSe0jE19FGbpyF240pGGZxw36rAnqhRa lXdJeYFxqEvef5dsv4brnTDlOTVH8Y49U3s6acOk/GQlm+fluGUxG4srXcHEP2bVHjg5 jKthpZnSzX+oPM7Nm8iPtl8Lp7imOIJLTuObfxPkno6Q/ErhzENXOlkFts1E7ciMfaW6 LsM8EvnjLgjNS/+F8TQg54a9DSnyFYsBAeAWoIdopkrC5JDyBifNhKixkYTqCKiXGXS5 Vldr0k4GylO0EEKH/1ot+SuzVjZMre+wjTe6llCb76IXOPqlP8Ctx2sIIWQBMkbn935p Yucg== X-Forwarded-Encrypted: i=1; AJvYcCUZbDpIFP0Fcm+HyQHcNAsV7Ckkn4e/q6PH10wYhVNFixzxIdxsNU98ayyYtkwodasvc8/bk/ZsrLL9/MA=@vger.kernel.org X-Gm-Message-State: AOJu0YwgTbtr1ipQWV2bYsQQZ4qvIong6UonIqArC0FGpWlQPKmoikba Od0z34uvr8DGe3H4BxmcfqbkUyxOtc2s4GQ/3abFUj3AlsyF8wivPhJRl3e2vP8BsX7J0RCrb/e bvDSSWWkFLS2Z3bm8Pmvw30h88hwd17hX2ygEZkziZ3geGakXbOEHCwtZuXrVFGZLi2s= X-Gm-Gg: ATEYQzx+Hz+F6NDqgkPaxtI4MIo3RIKubIbwAUKOmXppg+Bm46wGPM983TKY+5KF6Pa 44Vvgr6Okr8ZFASZMnLs9a0+Hgc4p8qJ9ol8NL2VffrQxlqS4O7Ux8MupjlgsPm3PFbB7GVdqRL PAPXfc/WTSnYXh8K31ZkbcQ36ga/58Z+47l1QO114Trg+Z4IOXF/LiFbMLpNt2YSyuzVnXjcRnP bqzf5o9+Len1FcXIOc8vBvC8I6Ssw1mhwVd3ybTWIZlZZkEC6NWq97PhT/eH7bA6GqXJHMlrWGZ 3O3lBVCZ28R+fhVViPde00mqJV/DV6q6kzw5tqvLwfJevTOJJTUDDV+DyvhUXhhA68w0YpzbKUv eVdXNlbenLn59DoSX7YjF3uM55PFvuWqXHRxwZZyRfi3EuHGEKv6Nf6pdje32zC6cFrPt X-Received: by 2002:a05:7301:3f07:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c1095fb80fmr4975769eec.14.1774250135755; Mon, 23 Mar 2026 00:15:35 -0700 (PDT) X-Received: by 2002:a05:7301:3f07:b0:2b7:fdb6:ccf6 with SMTP id 5a478bee46e88-2c1095fb80fmr4975754eec.14.1774250135214; Mon, 23 Mar 2026 00:15:35 -0700 (PDT) Received: from hu-qianyu-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c10b14cadbsm13997886eec.3.2026.03.23.00.15.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 00:15:34 -0700 (PDT) From: Qiang Yu Date: Mon, 23 Mar 2026 00:15:29 -0700 Subject: [PATCH v2 2/5] phy: qcom: qmp-pcie: Add multiple power-domains support 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: <20260323-glymur_gen5x8_phy_0323-v2-2-ce0fc07f0e52@oss.qualcomm.com> References: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> In-Reply-To: <20260323-glymur_gen5x8_phy_0323-v2-0-ce0fc07f0e52@oss.qualcomm.com> To: Vinod Koul , Neil Armstrong , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Qiang Yu X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774250130; l=2504; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=1kVB09tNu2L/JXEZO/ToUYxEMkDFaHUqjJ74Zd0YDCI=; b=MtfPg0/WzxcccrnkITZarstr4an0FSrB3GYefYIOIEx+XcVZGCq+zCV0mtEnRv7BQn+FRSU+K EOPre4HDVu3AdlWQAR9PHbVlaBLIqW/krj80b7m5CZdbEa6mP2H3cyq X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Authority-Analysis: v=2.4 cv=aJv9aL9m c=1 sm=1 tr=0 ts=69c0e898 cx=c_pps a=cFYjgdjTJScbgFmBucgdfQ==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=eu5IZVYEi8O4nexjJlAA:9 a=QEXdDO2ut3YA:10 a=scEy_gLbYbu1JhEsrz4S:22 X-Proofpoint-GUID: FYbBu5BwL1IPPXR3zV0wwp6vNEHzCeCW X-Proofpoint-ORIG-GUID: FYbBu5BwL1IPPXR3zV0wwp6vNEHzCeCW X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA1NCBTYWx0ZWRfX6zGDfNCgAcwl EHsSJeN6zAoMBz3UBFsYgemDMgdVOBsA6Jx3NaZYb+6LQxzlUw1wIHNfy7/akg3Jb4oMDoTj6B5 o2NjxX7xPk49X0QYxRiEyEpLKFIw8FJwnxqTLbxAm9CK9KVPtetOJ3wkYVD46Qbs43ejmxQFRcO ZxScmhgCB3JFQoiysse/QF+w2VAHhQstGVj92mzZNhYtAcc0YPOgPMUCoMGZiU1gZfF6t1+vT+U tMq8tYqXoRmpM7gK7LFsFpeV42KKUu5RV5UyHvL38jZwLnwcaYJsNzTpBL2i5T8kxY3Ua+finhF nGJ0dhjdw4n9mU2Omrf/i9C3udcnhkFgKf/asK8r0rYQ/xGzZINE2jGFfRZ51+WPljwumy/A9mj YQ2uCqs1MvXnublrcQuaymMYQeGbReZLzZrC0CZM2jtVNNzNW07VEsU1yX77fT2XlKLLPVEAJ3H X1Oq6BTi19f0YtbcpCg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_02,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 malwarescore=0 adultscore=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230054 The Glymur SoC's 3rd PCIe instance supports 8-lane mode using two PHYs in a bifurcated configuration. Each PHY has its own power domain (phy_gdsc) that must be powered on before initialization per hardware requirements. Current PHY power management assumes a single power domain per PHY, preventing proper setup for this dual-PHY scenario. Add support for multiple power domains by using devm_pm_domain_attach_list() to attach power domains manually, while maintaining compatibility with single power domain PHYs. Enable runtime PM to allow power domain control when the PCIe driver calls phy_power_on/phy_power_off: - Single power domain: QMP PHY platform device directly attaches to power domain and controls it during runtime resume/suspend - Multiple power domains: devm_pm_domain_attach_list() creates virtual devices as power domain suppliers, linked to the QMP PHY platform device as consumer This ensures power domains are properly attached and turned on/off for both single and multiple power domain configurations. Signed-off-by: Qiang Yu Reviewed-by: Dmitry Baryshkov --- drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcom= m/phy-qcom-qmp-pcie.c index fed2fc9bb31108d51f88d34f3379c7744681f485..424c935e27a8766e1e26762bd3d= 7df527c1520e3 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -5329,6 +5330,7 @@ static int qmp_pcie_parse_dt(struct qmp_pcie *qmp) =20 static int qmp_pcie_probe(struct platform_device *pdev) { + struct dev_pm_domain_list *pd_list; struct device *dev =3D &pdev->dev; struct phy_provider *phy_provider; struct device_node *np; @@ -5348,6 +5350,16 @@ static int qmp_pcie_probe(struct platform_device *pd= ev) WARN_ON_ONCE(!qmp->cfg->pwrdn_ctrl); WARN_ON_ONCE(!qmp->cfg->phy_status); =20 + ret =3D devm_pm_domain_attach_list(dev, NULL, &pd_list); + if (ret < 0 && ret !=3D -EEXIST) { + dev_err(dev, "Failed to attach power domain\n"); + return ret; + } + + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; + ret =3D qmp_pcie_clk_init(qmp); if (ret) return ret; --=20 2.34.1