From nobody Wed Apr 15 12:58:29 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 2C5353921C1 for ; Mon, 13 Apr 2026 06:26:22 +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=1776061583; cv=none; b=QTvJGp5EPe6x8UxXs0BaHfMGgUN1L7OnAwqE6KPaZRnfWLd0xI5cEK68sRptYxArQ/W+R7QLWdpgNzMwPsYtBN6l6stO0KLFkZUjCCGTHcyAHbjtlHwMJqtH9OFw/IZkXylLldwgWtvRBm4H0NI8SOwWAmcgCNuDQmu8ZUHaQ5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776061583; c=relaxed/simple; bh=WuxD6kGdL+V30CDieIdjcJTNov5dAUcLLKr/2N6fJU4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b5EAeXCkinx94mFkME54aaF4AsYC4VU5sigN24r5MNr+irgzvXg6OYGjwuf6nAA6nnw+s03VrILWvNANCqb8Eg+SrFkx79gGLgudPrlHnmLZyybaZk+TCwAWuSnhbJUd24dJB3jz7JOtwc/T0xZWXtEKcqdL8yPb+t7drlV6MlQ= 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=VwksyroC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IxrIxxB9; 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="VwksyroC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IxrIxxB9" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63CM02eC3744695 for ; Mon, 13 Apr 2026 06:26:21 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= Le29xCZV1ZgyaYyiM/bMz3/EFr3qGhovELMUCsNM1sE=; b=VwksyroCd/hL84vz r9VH6GJsr+u4eyUE4i4TV7xJGRmI6xmDcgKKGRoOd2QG0ZjbSpjywjsBEzSvei/T 8ioW2NL7yyeiChKOQIXAeKUbVsZXiunAYIDNxhhEDpLTD9CeXqqGjY3QQHFLpaCa HH0Uy3IbRx/xIw1ncn79AE/QTXeNAOD8gHmnwnhOYyJ2zzKN0zJufBTabrKw8mm1 ru43pPelq+rldv2dabI3L6pB84TmG4fxHxK2tTL1CN0aIPYgIqKv9m2Lhd09+gl4 n1mKcIjcjpODX1YGyNvUN4CrwRu6XiK8tZB/4N8rhz/xPk3CX8uhERnPxEyOYZ20 BHJPag== Received: from mail-dy1-f197.google.com (mail-dy1-f197.google.com [74.125.82.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dfjbpbr99-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Apr 2026 06:26:21 +0000 (GMT) Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-2d8a677cdfaso874955eec.1 for ; Sun, 12 Apr 2026 23:26:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776061581; x=1776666381; 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=Le29xCZV1ZgyaYyiM/bMz3/EFr3qGhovELMUCsNM1sE=; b=IxrIxxB9Im0ZjORs1LqYgW6JxBoHQeS1HgGcgcjlzAkhiSkrU2I7YyrticYLrqlACX E7mn0wKKy0HegZyyEGxfb5xZFIXammhEJ6/jYa8mSli1eUzatLR/sBvleAPsHpncrYqD A1qFEmyhsAPwARMhqOBF1Pg4u2fCqiUbvjFU76HnBBDQSE9mFdpPtP9DucGKOg/qKmlg RxwYZTJp4aLkL6kfmj+yIZXOc48zDkY5O70dTOvypWpycwbkMtAAdqO51uNUDWeNAp9O XWFvme4EP6lN8k2P1WLqwpsdOVRnmZ9ddF70qhJhXNRp4QGm/T2r8VQNGna8rAcPdyLN nhFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776061581; x=1776666381; 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=Le29xCZV1ZgyaYyiM/bMz3/EFr3qGhovELMUCsNM1sE=; b=MHZJIKdibXADVSo6EiZj0iWVseH8PGrzftlHc5ngQVuEAWB/aLDeUWEeP2XRZ5NDUD lJzOxk4uDthu6+SB33vP5toO940xmlhvfm9nlO0X6fg4IkGmtZsDWcbo8SvEHCuzEqgv 65CEQzIqZQeF0xJTzQFvJ+dlIrl5B4xG3yzN7s97UxrQ4JiHR89LZUf65QaicXUKN3wF uSCrzzBCzsd2TDL8ZmXYXmdFmc7PxFsZSBDA+LlVMelNQ847foTlKCx/j1QZhJKTBfnX jTrA9M7C2zlxBjdVxDFDrP30KJCzNjI1uoY3Evk7WOfTh/1FZQ9VvXou59W5yC8otI/k ckaQ== X-Forwarded-Encrypted: i=1; AFNElJ+GlT3VIiyIIswHKUmeFOQUsaqawovUWnS1C4sasq2WtqYhNR264wSNsafBI7hVx+hmZyBDrjqRRIJdyfw=@vger.kernel.org X-Gm-Message-State: AOJu0YxabAQuqIshnbeSX0y057rcDpZbapF5Y6qD8QspSyUhmqc7RwM4 /SyOwcs5kBVa9n73/+vu9jMfM6KfzQ606452FO8WS5qifragmw/9KvyR/Jir1BhiSBy/185/Je8 zbWDcA4WmMvt959he93ikCODN/l6fvgywBtRd8INQjBy1f0+vV4gCR8F4G/p0CeaD2uA= X-Gm-Gg: AeBDiev1oamj4t0xkrqoEbmJxVfCzxW6v+CH6Z6AWoeQIsWgoSsQEn1jUBbioxMu+YU E3x4VzYaBKvD3p3veiOjygVx/vquj3Az30qmSW8d7uRP7me0ix+5C6ley+QbM59E+4LTYjQP2wc UuPRT+o+zOrsp5+HMqKM9kA1TB6oStIxB+0ARyWyQfF7rcElKv96inNmP9WhpMtPchazmd0rg3N UmdeHAYhqKSokQrangVhTyQytuueYH6Z++kWIZB6OBTAPQC2/KAoBqRg2wfDVjhUjLBjK6uriMC c2GoROrCRJTD+8EDbaqZ2g2MAgEzCJFMQbk1f87JDpXG3DFx54EV73//f8WcPrCk72tzkZr7OlO qS7P3MBbf2k77P5a0HPTmphgV16IHdlCinpk7+dchxo9bd9mEJEa6IxQaW2uj9tGCMDzA X-Received: by 2002:a05:7300:220d:b0:2c1:6676:5ed6 with SMTP id 5a478bee46e88-2d589669863mr5936238eec.25.1776061580837; Sun, 12 Apr 2026 23:26:20 -0700 (PDT) X-Received: by 2002:a05:7300:220d:b0:2c1:6676:5ed6 with SMTP id 5a478bee46e88-2d589669863mr5936224eec.25.1776061580282; Sun, 12 Apr 2026 23:26:20 -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-2d561cd3138sm15260935eec.14.2026.04.12.23.26.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 23:26:19 -0700 (PDT) From: Qiang Yu Date: Sun, 12 Apr 2026 23:25:57 -0700 Subject: [PATCH v3 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: <20260412-glymur_gen5x8_phy_0413-v3-2-affcebc16b8b@oss.qualcomm.com> References: <20260412-glymur_gen5x8_phy_0413-v3-0-affcebc16b8b@oss.qualcomm.com> In-Reply-To: <20260412-glymur_gen5x8_phy_0413-v3-0-affcebc16b8b@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 , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776061577; l=2571; i=qiang.yu@oss.qualcomm.com; s=20250513; h=from:subject:message-id; bh=WuxD6kGdL+V30CDieIdjcJTNov5dAUcLLKr/2N6fJU4=; b=oIeAAqEG9SEUZcNaYwhRdKHtYtS+diUCf/WWHL1ZhagoSPXt4BK35q/TEcJmwzjJWYyfJOvuO R/LkzvwtIECDN9YfRwvv8LAB50WN4CywYm/PTyFq8z4kB1rhRXMUaJr X-Developer-Key: i=qiang.yu@oss.qualcomm.com; a=ed25519; pk=Rr94t+fykoieF1ngg/bXxEfr5KoQxeXPtYxM8fBQTAI= X-Authority-Analysis: v=2.4 cv=PuijqQM3 c=1 sm=1 tr=0 ts=69dc8c8d cx=c_pps a=Uww141gWH0fZj/3QKPojxA==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=eu5IZVYEi8O4nexjJlAA:9 a=QEXdDO2ut3YA:10 a=PxkB5W3o20Ba91AHUih5:22 X-Proofpoint-ORIG-GUID: CGczyK0g4XJMIOca5i3Yb4GKQih-lPUw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDEzMDA2MCBTYWx0ZWRfX7o6tUSQdnL4V dWcLHH7jVT+mB2DFPpxLB/VVOsQYOxDehdTXlZHx0qwD4b8065xHV0vkvxD0DapHFtDR442HFVh HdGXZVceOMfnoD1mDKL+hW4muCgSpRDZQSZhfX9KH+SnOvhnNT5VGPqRn46A+TE5p817z/+tOE3 VJ6DI6BZw1UuBOEa2At9LUO9amUgeCkijuWb8hHl706eMP3qP1+oM1xpkKotiCfuaBz9jHjREG5 ddYiv1UZ5SZ+F17sNgv4lynRMdiB4tgcrAGOT/vNRk9aeZvTvOnY9QmcSY0YXVPykcyHHcSq/pW yg5KGntKNdvF2HqV+PTiu6qCyABlag9/13SegzbtlA36IScJlgWKECzjVUcZhNoCWFuH5ruY7nA Stg5h9v1a7PuozMU9nl3ykOCDxP5O2D1JoLqqQJTv9rrlUB8jABds4cRrhtcF9H8PHj/QHdFRB+ XiCX09pugh8UcM6zCIw== X-Proofpoint-GUID: CGczyK0g4XJMIOca5i3Yb4GKQih-lPUw 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-04-13_02,2026-04-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 spamscore=0 phishscore=0 malwarescore=0 clxscore=1015 impostorscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000 definitions=main-2604130060 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. Reviewed-by: Dmitry Baryshkov Signed-off-by: Qiang Yu --- 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