From nobody Sat Jun 20 17:37:23 2026 Received: from mail-43101.protonmail.ch (mail-43101.protonmail.ch [185.70.43.101]) (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 9BFB1CA4E; Sun, 12 Apr 2026 15:30:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.101 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776007859; cv=none; b=LCQxH7TH4MGeWFpL7urz2LFfsXaLWNqE9fidKmMLrtHHLytwRVZn/t95SOlRnM2unONVeZcnwzUrQpbuBl5bfWPXjUOEFpf9hRw9EkPRaRXsnCeNrLJiT47/A2Mg0SziwpoeNgrMgL/d+QaIIrCOFyeLYhYXyAjboqxsZZctHAE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776007859; c=relaxed/simple; bh=0wfKZ1XsWLq4O8YXlheThr87U+vbrgynfRN59nNik2Q=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JHTB+L34Ut0KiaIwvmFN7kqD/q3+zxTqclcjkdhiPMU4cTDoWkSTA7b5xZ4kBn5iDQ+KSZoVR2yTq96+YvpTzejjFmnospp/qBkR2RhbAmq5KcYcSo+yy9H7acXbxIK2xB6MO1wH8vBjzPYGuYLT13TBGkQ9o1NtAzv/KaNJi7U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me; spf=pass smtp.mailfrom=pm.me; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b=czrfQYCK; arc=none smtp.client-ip=185.70.43.101 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="czrfQYCK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1776007855; x=1776267055; bh=EwPgZdkR3n111ITFHye+yYyNnOLCYX9in8OTHGIBdPw=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=czrfQYCKjlHuXZsk4b1OFn0OZXtZsiyYXz3tVMypxXELu3oazFgGLuyAmbeBInNbs 3dRP0oTzXmrPcFCUrT+pOS2LbUtH+tCRtkknxx9t7zWKBux8QXV0IRuCVo1IPQ7qBP fRJiyHGYA2mON5OZOqHVSDO7oeVYAxCRmUQKfv5TA6jMdXB1NPG/g+ol4zvvZGIAaq YWAQ/9eGJgXOPa61tp0NdoTPvTvOXpYTMfQt91hs/XAn8TLzjKnAK0GTqVZU1UMLjW 2lYegFttxmrx0JEvbUCfRHHn3r1AuBOqhurG0eEYcRYNESt1NzRzjiJ7zVYRWwOiSx +CFOpUJDidY+Q== Date: Sun, 12 Apr 2026 15:30:52 +0000 To: Bjorn Andersson , Michael Turquette , Stephen Boyd From: Alexander Koskovich Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Alexander Koskovich Subject: [PATCH 1/2] Revert "clk: qcom: rpmh: make clkaN optional" Message-ID: <20260412-clk-rpmh-vrm-opt-v1-1-37c890c420ff@pm.me> In-Reply-To: <20260412-clk-rpmh-vrm-opt-v1-0-37c890c420ff@pm.me> References: <20260412-clk-rpmh-vrm-opt-v1-0-37c890c420ff@pm.me> Feedback-ID: 37836894:user:proton X-Pm-Message-ID: 6ce20891b82e63e05c7088087cf76529cfcf18d1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" This reverts commit 166e65bc6ce317be41368d9340b870edbdbaa2aa. Reason for revert: Better handled by just marking all VRMs as optional, instead of needing to mark for each platform, done in follow up change. Signed-off-by: Alexander Koskovich --- drivers/clk/qcom/clk-rpmh.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c index 547729b1a8ee..fc99c2c305da 100644 --- a/drivers/clk/qcom/clk-rpmh.c +++ b/drivers/clk/qcom/clk-rpmh.c @@ -66,8 +66,6 @@ struct clk_rpmh { struct clk_rpmh_desc { struct clk_hw **clks; size_t num_clks; - /* RPMh clock clkaN are optional for this platform */ - bool clka_optional; }; =20 static DEFINE_MUTEX(rpmh_clk_lock); @@ -691,7 +689,6 @@ static struct clk_hw *sm8550_rpmh_clocks[] =3D { static const struct clk_rpmh_desc clk_rpmh_sm8550 =3D { .clks =3D sm8550_rpmh_clocks, .num_clks =3D ARRAY_SIZE(sm8550_rpmh_clocks), - .clka_optional =3D true, }; =20 static struct clk_hw *sm8650_rpmh_clocks[] =3D { @@ -723,7 +720,6 @@ static struct clk_hw *sm8650_rpmh_clocks[] =3D { static const struct clk_rpmh_desc clk_rpmh_sm8650 =3D { .clks =3D sm8650_rpmh_clocks, .num_clks =3D ARRAY_SIZE(sm8650_rpmh_clocks), - .clka_optional =3D true, }; =20 static struct clk_hw *sc7280_rpmh_clocks[] =3D { @@ -893,7 +889,6 @@ static struct clk_hw *sm8750_rpmh_clocks[] =3D { static const struct clk_rpmh_desc clk_rpmh_sm8750 =3D { .clks =3D sm8750_rpmh_clocks, .num_clks =3D ARRAY_SIZE(sm8750_rpmh_clocks), - .clka_optional =3D true, }; =20 static struct clk_hw *glymur_rpmh_clocks[] =3D { @@ -981,12 +976,6 @@ static int clk_rpmh_probe(struct platform_device *pdev) rpmh_clk =3D to_clk_rpmh(hw_clks[i]); res_addr =3D cmd_db_read_addr(rpmh_clk->res_name); if (!res_addr) { - hw_clks[i] =3D NULL; - - if (desc->clka_optional && - !strncmp(rpmh_clk->res_name, "clka", sizeof("clka") - 1)) - continue; - dev_err(&pdev->dev, "missing RPMh resource address for %s\n", rpmh_clk->res_name); return -ENODEV; --=20 2.53.0 From nobody Sat Jun 20 17:37:23 2026 Received: from mail-43100.protonmail.ch (mail-43100.protonmail.ch [185.70.43.100]) (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 CA31E222580 for ; Sun, 12 Apr 2026 15:31:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.100 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776007862; cv=none; b=uUVCCkUWjLSKEWfnxytURDujNr4A66f2IvuGJ5h+aa4fdba0fY3cm7a9EFOuHh2D0z1WPuGMcDUcZdelIiA9Pn7vpbcNrCRbU9BkRBxZV1GKGn5RBx+EZDNjYUO2qSHX9J2ARmRhPInbEh8qZtVOj5euCAOxfKKHa5Y63l85HWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776007862; c=relaxed/simple; bh=XggJd0e86ykAt4dKAnnY/6BR3Qb1DgKVf+hF8fuC3oY=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OsQGArp/J0X980UqB0acoK0wnIYIaiqfBGGdATLo+Fh5R1WX9ZqnDXuvc4zYRj5ZRvn0wl1HVnq7iTSLGaaLV6/0YiGqYb5MY3HnA/AirU3EMzrHIYFS5buwdZXUYYKeXPMZQmkTdaxNnZFesMfkJJZ9Y95HA3J05t3W514o/jM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me; spf=pass smtp.mailfrom=pm.me; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b=kt44Z/Lp; arc=none smtp.client-ip=185.70.43.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="kt44Z/Lp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1776007858; x=1776267058; bh=EnyWghpvtGuuiAWGwtxbsibEM57ZqhgLXNuJkGlp/pU=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=kt44Z/LpqWUXAGfuv53jEOeK+oRIqRf5GhLmpvDIJoDgAzwMfdxFXRocPtAO8NA+Q uPdv41lXe5sjw7427H7hDq5rs4OCzA2Ju5iFAXDo21uMg3v0ZJOWevhOiETqEalvQC YbdZKCkfEhU226eRt6fdebEtvC2D9KiawLjP8tnrbKmdhDhQgViKJiPDzCTa1FyZX4 6Ms0ZMd7ZTY2X93COGryJUN38GBfhnYB2SWtwc6u8030i6wlXOQEMdo5SxvZ0icIQd by2CUMOP9hd4D4Sy3cSJxEgKhuuZH4AEY+m5iFY8oZ84VQeTja+vF6WjPPZps172qM GdtCrPHytxqJw== Date: Sun, 12 Apr 2026 15:30:56 +0000 To: Bjorn Andersson , Michael Turquette , Stephen Boyd From: Alexander Koskovich Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, Alexander Koskovich Subject: [PATCH 2/2] clk: qcom: clk-rpmh: Make all VRMs optional by default Message-ID: <20260412-clk-rpmh-vrm-opt-v1-2-37c890c420ff@pm.me> In-Reply-To: <20260412-clk-rpmh-vrm-opt-v1-0-37c890c420ff@pm.me> References: <20260412-clk-rpmh-vrm-opt-v1-0-37c890c420ff@pm.me> Feedback-ID: 37836894:user:proton X-Pm-Message-ID: 42cbca3d6a675ee1b3f0a3f069f83c4d1dd2eeb1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some VRMs aren't present on all boards, so mark them as optional. This prevents probe failures on boards where not all VRMs are present. This mirrors the downstream approach for this issue. Signed-off-by: Alexander Koskovich --- drivers/clk/qcom/clk-rpmh.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/clk/qcom/clk-rpmh.c b/drivers/clk/qcom/clk-rpmh.c index fc99c2c305da..3e029d82e733 100644 --- a/drivers/clk/qcom/clk-rpmh.c +++ b/drivers/clk/qcom/clk-rpmh.c @@ -52,6 +52,7 @@ struct clk_rpmh { struct clk_hw hw; const char *res_name; u8 div; + bool optional; u32 res_addr; u32 res_on_val; u32 state; @@ -71,13 +72,14 @@ struct clk_rpmh_desc { static DEFINE_MUTEX(rpmh_clk_lock); =20 #define __DEFINE_CLK_RPMH(_name, _clk_name, _res_name, \ - _res_en_offset, _res_on, _div) \ + _res_en_offset, _res_on, _div, _optional) \ static struct clk_rpmh clk_rpmh_##_clk_name##_ao; \ static struct clk_rpmh clk_rpmh_##_clk_name =3D { \ .res_name =3D _res_name, \ .res_addr =3D _res_en_offset, \ .res_on_val =3D _res_on, \ .div =3D _div, \ + .optional =3D _optional, \ .peer =3D &clk_rpmh_##_clk_name##_ao, \ .valid_state_mask =3D (BIT(RPMH_WAKE_ONLY_STATE) | \ BIT(RPMH_ACTIVE_ONLY_STATE) | \ @@ -97,6 +99,7 @@ static DEFINE_MUTEX(rpmh_clk_lock); .res_addr =3D _res_en_offset, \ .res_on_val =3D _res_on, \ .div =3D _div, \ + .optional =3D _optional, \ .peer =3D &clk_rpmh_##_clk_name, \ .valid_state_mask =3D (BIT(RPMH_WAKE_ONLY_STATE) | \ BIT(RPMH_ACTIVE_ONLY_STATE)), \ @@ -113,11 +116,11 @@ static DEFINE_MUTEX(rpmh_clk_lock); =20 #define DEFINE_CLK_RPMH_ARC(_name, _res_name, _res_on, _div) \ __DEFINE_CLK_RPMH(_name, _name##_##div##_div, _res_name, \ - CLK_RPMH_ARC_EN_OFFSET, _res_on, _div) + CLK_RPMH_ARC_EN_OFFSET, _res_on, _div, false) =20 #define DEFINE_CLK_RPMH_VRM(_name, _suffix, _res_name, _div) \ __DEFINE_CLK_RPMH(_name, _name##_suffix, _res_name, \ - CLK_RPMH_VRM_EN_OFFSET, 1, _div) + CLK_RPMH_VRM_EN_OFFSET, 1, _div, true) =20 #define DEFINE_CLK_RPMH_BCM(_name, _res_name) \ static struct clk_rpmh clk_rpmh_##_name =3D { \ @@ -946,6 +949,9 @@ static struct clk_hw *of_clk_rpmh_hw_get(struct of_phan= dle_args *clkspec, return ERR_PTR(-EINVAL); } =20 + if (!rpmh->clks[idx]) + return ERR_PTR(-ENOENT); + return rpmh->clks[idx]; } =20 @@ -976,6 +982,11 @@ static int clk_rpmh_probe(struct platform_device *pdev) rpmh_clk =3D to_clk_rpmh(hw_clks[i]); res_addr =3D cmd_db_read_addr(rpmh_clk->res_name); if (!res_addr) { + hw_clks[i] =3D NULL; + + if (rpmh_clk->optional) + continue; + dev_err(&pdev->dev, "missing RPMh resource address for %s\n", rpmh_clk->res_name); return -ENODEV; --=20 2.53.0