[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260123-qcom_ice_power_and_clk_vote-v1-0-e9059776f85c@qti.qualcomm.com>
Date: Fri, 23 Jan 2026 12:41:24 +0530
From: Harshal Dev <harshal.dev@....qualcomm.com>
To: Herbert Xu <herbert@...dor.apana.org.au>,
"David S. Miller" <davem@...emloft.net>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Abel Vesa <abel.vesa@....qualcomm.com>,
cros-qcom-dts-watchers@...omium.org
Cc: Brian Masney <bmasney@...hat.com>,
Neeraj Soni <neeraj.soni@....qualcomm.com>,
Gaurav Kashyap <gaurav.kashyap@....qualcomm.com>,
linux-arm-msm@...r.kernel.org, linux-crypto@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
Harshal Dev <harshal.dev@....qualcomm.com>
Subject: [PATCH 00/11] Add explicit power-domain and clock voting for
QCOM-ICE
When the kernel is booted without the 'clk_ignore_unused' command‑line
flag, votes for unused clocks and power domains are dropped by the kernel
post late_init and deferred probe timeout. Depending on the relative
timing between the ICE probe and the kernel disabling the unused clocks
and power domains occasional unclocked register accesses or 'stuck' clocks
are observed during QCOM‑ICE probe.
When the 'iface' clock is not voted on, unclocked register access would
be observed. On the other hand, if the associated power-domain for ICE
is not enabled, a 'stuck' clock is observed.
This patch series resolves both of these problems by adding explicit
power‑domain enablement and 'iface' clock‑vote handling to the QCOM‑ICE
driver.
The clock 'stuck' issue was first reported on Qualcomm RideSX4 (sa8775p)
platform: https://lore.kernel.org/all/ZZYTYsaNUuWQg3tR@x1/
Issue with unclocked ICE register access is easily reproducible on
on Qualcomm RB3Gen2 (kodiak) platform when 'clk_ignore_unused' is
not passed on the kernel command-line.
This patch series has been validated on: SM8650-MTP, RB3Gen2 and
Lemans-EVK.
Signed-off-by: Harshal Dev <harshal.dev@....qualcomm.com>
---
Harshal Dev (11):
dt-bindings: crypto: qcom,ice: Require power-domain and iface clk
arm64: dts: qcom: kaanpali: Add power-domain and iface clk for ice node
arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
arm64: dts: qcom: monaco: Add power-domain and iface clk for ice node
arm64: dts: qcom: sc7180: Add power-domain and iface clk for ice node
arm64: dts: qcom: kodiak: Add power-domain and iface clk for ice node
arm64: dts: qcom: sm8450: Add power-domain and iface clk for ice node
arm64: dts: qcom: sm8550: Add power-domain and iface clk for ice node
arm64: dts: qcom: sm8650: Add power-domain and iface clk for ice node
arm64: dts: qcom: sm8750: Add power-domain and iface clk for ice node
soc: qcom: ice: Add explicit power-domain and clock voting calls for ICE
.../bindings/crypto/qcom,inline-crypto-engine.yaml | 14 +++++++++++++-
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/kodiak.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/lemans.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/monaco.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sc7180.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sm8450.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sm8650.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sm8750.dtsi | 6 +++++-
drivers/soc/qcom/ice.c | 20 ++++++++++++++++++++
11 files changed, 78 insertions(+), 10 deletions(-)
---
base-commit: 0f853ca2a798ead9d24d39cad99b0966815c582a
change-id: 20260120-qcom_ice_power_and_clk_vote-769704f5036a
Best regards,
--
Harshal Dev <hdev@....qualcomm.com>
Powered by blists - more mailing lists