public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE
@ 2026-03-23  9:17 Harshal Dev
  2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
                   ` (10 more replies)
  0 siblings, 11 replies; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

When the kernel is booted without the 'clk_ignore_unused' and
'pd_ignore_unused' command‑line flags, 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@oss.qualcomm.com>
---
Changes in v4:
- Squashed commits 1 and 2 from v3 to form a single consolidated patch with
  an updated and more concise commit message that explains why the DT binding
  needs to be fixed and why the fix is necessary for this release cycle.
- Re-order the ICE driver source code patches to be positioned before the DTS
  patches.
- Collected Reviewed-by tags from Konrad for DTS patches which were missed in
  v3.
- Link to v3: https://lore.kernel.org/r/20260317-qcom_ice_power_and_clk_vote-v3-0-53371dbabd6a@oss.qualcomm.com

Changes in v3:
- Dropped "_clk" suffix from clock names in DT binding and sources and ensure
  ICE driver looks for these updated clock names.
- Updated commit message of DT binding change (Patch 1) to explicitly state
  that the change is preserving backward compatibility.
- Introduced new DT binding commit to ensure eliza and milos require the iface
  clock and power-domain.
- Check for IS_ERR() on devm_clk_get_optional_enabled(dev, "iface") return
  value.
- Minor beautification of dev_err() prints as suggested by Konrad.
- Rebased onto latest linux-next tag next-20260316.
- Link to v2: https://lore.kernel.org/r/20260310-qcom_ice_power_and_clk_vote-v2-0-b9c2a5471d9e@oss.qualcomm.com

Changes in v2:
- Updated the DT bindings and ICE driver source to ensure no ABI breaks are
  made in this patch series. A follow-up patch series will mark the clocks
  and power-domain as required to preserve bisectability.
- Added list of allowed clock-names to the DT-binding.
- Added Fixes tag to mark the original regressions and ensure back-porting
  for stable trees.
- Updated the commit messages to explicitly mention the problem of
  potential unclocked register access and stuck clocks during probe.
- Dropped explicit calls to pm_runtime_* APIs from ICE probe, suspend and
  resume.
- Link to v1: https://lore.kernel.org/r/20260123-qcom_ice_power_and_clk_vote-v1-0-e9059776f85c@qti.qualcomm.com

---
Harshal Dev (11):
      dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
      soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
      arm64: dts: qcom: kaanapali: 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

 .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
 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                             | 17 +++++++++--
 11 files changed, 94 insertions(+), 12 deletions(-)
---
base-commit: 95c541ddfb0815a0ea8477af778bb13bb075079a
change-id: 20260120-qcom_ice_power_and_clk_vote-769704f5036a

Best regards,
-- 
Harshal Dev <harshal.dev@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-24 10:46   ` Kuldeep Singh
  2026-04-06  8:37   ` Krzysztof Kozlowski
  2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
                   ` (9 subsequent siblings)
  10 siblings, 2 replies; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
power-domain and iface clock. Without enabling the iface clock and the
associated power-domain the ICE hardware cannot function correctly and
leads to unclocked hardware accesses being observed during probe.

Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
power-domain and iface clock for new devices (Eliza and Milos) introduced
in the current release (7.0) with yet-to-stabilize ABI, while preserving
backward compatibility for older devices.

Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
index 876bf90ed96e..ccb6b8dd8e11 100644
--- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
+++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
@@ -30,6 +30,16 @@ properties:
     maxItems: 1
 
   clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: iface
+
+  power-domains:
     maxItems: 1
 
   operating-points-v2: true
@@ -44,6 +54,25 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,eliza-inline-crypto-engine
+              - qcom,milos-inline-crypto-engine
+
+    then:
+      required:
+        - power-domains
+        - clock-names
+      properties:
+        clocks:
+          minItems: 2
+        clock-names:
+          minItems: 2
+
 examples:
   - |
     #include <dt-bindings/clock/qcom,sm8550-gcc.h>
@@ -52,7 +81,11 @@ examples:
       compatible = "qcom,sm8550-inline-crypto-engine",
                    "qcom,inline-crypto-engine";
       reg = <0x01d88000 0x8000>;
-      clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+      clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+               <&gcc GCC_UFS_PHY_AHB_CLK>;
+      clock-names = "core",
+                    "iface";
+      power-domains = <&gcc UFS_PHY_GDSC>;
 
       operating-points-v2 = <&ice_opp_table>;
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
  2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-23 12:27   ` Konrad Dybcio
                     ` (2 more replies)
  2026-03-23  9:17 ` [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
                   ` (8 subsequent siblings)
  10 siblings, 3 replies; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Since Qualcomm inline-crypto engine (ICE) is now a dedicated driver
de-coupled from the QCOM UFS driver, it explicitly votes for its required
clocks during probe. For scenarios where the 'clk_ignore_unused' flag is
not passed on the kernel command line, to avoid potential unclocked ICE
hardware register access during probe the ICE driver should additionally
vote on the 'iface' clock.
Also update the suspend and resume callbacks to handle un-voting and voting
on the 'iface' clock.

Fixes: 2afbf43a4aec6 ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver")
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 drivers/soc/qcom/ice.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c
index b203bc685cad..bf4ab2d9e5c0 100644
--- a/drivers/soc/qcom/ice.c
+++ b/drivers/soc/qcom/ice.c
@@ -108,6 +108,7 @@ struct qcom_ice {
 	void __iomem *base;
 
 	struct clk *core_clk;
+	struct clk *iface_clk;
 	bool use_hwkm;
 	bool hwkm_init_complete;
 	u8 hwkm_version;
@@ -312,8 +313,13 @@ int qcom_ice_resume(struct qcom_ice *ice)
 
 	err = clk_prepare_enable(ice->core_clk);
 	if (err) {
-		dev_err(dev, "failed to enable core clock (%d)\n",
-			err);
+		dev_err(dev, "Failed to enable core clock: %d\n", err);
+		return err;
+	}
+
+	err = clk_prepare_enable(ice->iface_clk);
+	if (err) {
+		dev_err(dev, "Failed to enable iface clock: %d\n", err);
 		return err;
 	}
 	qcom_ice_hwkm_init(ice);
@@ -323,6 +329,7 @@ EXPORT_SYMBOL_GPL(qcom_ice_resume);
 
 int qcom_ice_suspend(struct qcom_ice *ice)
 {
+	clk_disable_unprepare(ice->iface_clk);
 	clk_disable_unprepare(ice->core_clk);
 	ice->hwkm_init_complete = false;
 
@@ -579,11 +586,17 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
 	engine->core_clk = devm_clk_get_optional_enabled(dev, "ice_core_clk");
 	if (!engine->core_clk)
 		engine->core_clk = devm_clk_get_optional_enabled(dev, "ice");
+	if (!engine->core_clk)
+		engine->core_clk = devm_clk_get_optional_enabled(dev, "core");
 	if (!engine->core_clk)
 		engine->core_clk = devm_clk_get_enabled(dev, NULL);
 	if (IS_ERR(engine->core_clk))
 		return ERR_CAST(engine->core_clk);
 
+	engine->iface_clk = devm_clk_get_optional_enabled(dev, "iface");
+	if (IS_ERR(engine->iface_clk))
+		return ERR_CAST(engine->iface_clk);
+
 	if (!qcom_ice_check_supported(engine))
 		return ERR_PTR(-EOPNOTSUPP);
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
  2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
  2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-24  5:04   ` Kuldeep Singh
  2026-03-23  9:17 ` [PATCH v4 04/11] arm64: dts: qcom: lemans: " Harshal Dev
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
kaanapali.

Fixes: 2eeb5767d53f4 ("arm64: dts: qcom: Introduce Kaanapali SoC")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/kaanapali.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index 9ef57ad0ca71..52af56e09168 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -868,7 +868,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 04/11] arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (2 preceding siblings ...)
  2026-03-23  9:17 ` [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-24 10:33   ` Kuldeep Singh
  2026-03-23  9:17 ` [PATCH v4 05/11] arm64: dts: qcom: monaco: " Harshal Dev
                   ` (6 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for lemans.

Fixes: 96272ba7103d4 ("arm64: dts: qcom: sa8775p: enable the inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/lemans.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 67b2c7e819ad..cdfa42293022 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -2758,7 +2758,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sa8775p-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 05/11] arm64: dts: qcom: monaco: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (3 preceding siblings ...)
  2026-03-23  9:17 ` [PATCH v4 04/11] arm64: dts: qcom: lemans: " Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-24 10:48   ` Kuldeep Singh
  2026-03-23  9:17 ` [PATCH v4 06/11] arm64: dts: qcom: sc7180: " Harshal Dev
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
monaco.

Fixes: cc9d29aad876d ("arm64: dts: qcom: qcs8300: enable the inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/monaco.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index f92fdb1cefa0..e408f102a8b3 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -2725,7 +2725,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,qcs8300-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		crypto: crypto@1dfa000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 06/11] arm64: dts: qcom: sc7180: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (4 preceding siblings ...)
  2026-03-23  9:17 ` [PATCH v4 05/11] arm64: dts: qcom: monaco: " Harshal Dev
@ 2026-03-23  9:17 ` Harshal Dev
  2026-03-24 10:48   ` Kuldeep Singh
  2026-03-23  9:18 ` [PATCH v4 07/11] arm64: dts: qcom: kodiak: " Harshal Dev
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:17 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sc7180.

Fixes: 858536d9dc946 ("arm64: dts: qcom: sc7180: Add UFS nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 8d69225a4271..9eaee5dc824c 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1605,7 +1605,11 @@ ice: crypto@1d90000 {
 			compatible = "qcom,sc7180-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d90000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		ipa: ipa@1e40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 07/11] arm64: dts: qcom: kodiak: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (5 preceding siblings ...)
  2026-03-23  9:17 ` [PATCH v4 06/11] arm64: dts: qcom: sc7180: " Harshal Dev
@ 2026-03-23  9:18 ` Harshal Dev
  2026-03-24 10:37   ` Kuldeep Singh
  2026-03-23  9:18 ` [PATCH v4 08/11] arm64: dts: qcom: sm8450: " Harshal Dev
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:18 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
kodiak.

Fixes: dfd5ee7b34bb7 ("arm64: dts: qcom: sc7280: Add inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/kodiak.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 149954a3eb7c..9765bf361db4 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -2579,7 +2579,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sc7280-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 08/11] arm64: dts: qcom: sm8450: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (6 preceding siblings ...)
  2026-03-23  9:18 ` [PATCH v4 07/11] arm64: dts: qcom: kodiak: " Harshal Dev
@ 2026-03-23  9:18 ` Harshal Dev
  2026-03-24 10:38   ` Kuldeep Singh
  2026-03-23  9:18 ` [PATCH v4 09/11] arm64: dts: qcom: sm8550: " Harshal Dev
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:18 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8450.

Fixes: 86b0aef435851 ("arm64: dts: qcom: sm8450: Use standalone ICE node for UFS")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8450.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index fd2d5648b92a..0dba282d644d 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -5374,7 +5374,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sm8450-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 09/11] arm64: dts: qcom: sm8550: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (7 preceding siblings ...)
  2026-03-23  9:18 ` [PATCH v4 08/11] arm64: dts: qcom: sm8450: " Harshal Dev
@ 2026-03-23  9:18 ` Harshal Dev
  2026-03-24 10:39   ` Kuldeep Singh
  2026-03-23  9:18 ` [PATCH v4 10/11] arm64: dts: qcom: sm8650: " Harshal Dev
  2026-03-23  9:18 ` [PATCH v4 11/11] arm64: dts: qcom: sm8750: " Harshal Dev
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:18 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8550.

Fixes: b8630c48b43fc ("arm64: dts: qcom: sm8550: Add the Inline Crypto Engine node")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index e3f93f4f412d..473fb4748036 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2449,7 +2449,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 10/11] arm64: dts: qcom: sm8650: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (8 preceding siblings ...)
  2026-03-23  9:18 ` [PATCH v4 09/11] arm64: dts: qcom: sm8550: " Harshal Dev
@ 2026-03-23  9:18 ` Harshal Dev
  2026-03-24 10:39   ` Kuldeep Singh
  2026-03-23  9:18 ` [PATCH v4 11/11] arm64: dts: qcom: sm8750: " Harshal Dev
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:18 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8650.

Fixes: 10e0246712951 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8650.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 357e43b90740..d211bd94fb41 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -4081,7 +4081,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v4 11/11] arm64: dts: qcom: sm8750: Add power-domain and iface clk for ice node
  2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (9 preceding siblings ...)
  2026-03-23  9:18 ` [PATCH v4 10/11] arm64: dts: qcom: sm8650: " Harshal Dev
@ 2026-03-23  9:18 ` Harshal Dev
  2026-03-24 10:47   ` Kuldeep Singh
  10 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-23  9:18 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
sm8750.

Fixes: b1dac789c650a ("arm64: dts: qcom: sm8750: Add ICE nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8750.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index f56b1f889b85..8c33bc3620ef 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -2083,7 +2083,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
  2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
@ 2026-03-23 12:27   ` Konrad Dybcio
  2026-03-24  4:48   ` Kuldeep Singh
  2026-03-24 16:29   ` Manivannan Sadhasivam
  2 siblings, 0 replies; 30+ messages in thread
From: Konrad Dybcio @ 2026-03-23 12:27 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Kuldeep Singh, Krzysztof Kozlowski

On 3/23/26 10:17 AM, Harshal Dev wrote:
> Since Qualcomm inline-crypto engine (ICE) is now a dedicated driver
> de-coupled from the QCOM UFS driver, it explicitly votes for its required
> clocks during probe. For scenarios where the 'clk_ignore_unused' flag is
> not passed on the kernel command line, to avoid potential unclocked ICE
> hardware register access during probe the ICE driver should additionally
> vote on the 'iface' clock.
> Also update the suspend and resume callbacks to handle un-voting and voting
> on the 'iface' clock.
> 
> Fixes: 2afbf43a4aec6 ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
> ---

[...]


> +	if (!engine->core_clk)
> +		engine->core_clk = devm_clk_get_optional_enabled(dev, "core");

This change is a little sneaky given the commit message but I don't mind

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
  2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
  2026-03-23 12:27   ` Konrad Dybcio
@ 2026-03-24  4:48   ` Kuldeep Singh
  2026-03-24 16:29   ` Manivannan Sadhasivam
  2 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24  4:48 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:47 PM, Harshal Dev wrote:
> Since Qualcomm inline-crypto engine (ICE) is now a dedicated driver
> de-coupled from the QCOM UFS driver, it explicitly votes for its required
> clocks during probe. For scenarios where the 'clk_ignore_unused' flag is
> not passed on the kernel command line, to avoid potential unclocked ICE
> hardware register access during probe the ICE driver should additionally
> vote on the 'iface' clock.
> Also update the suspend and resume callbacks to handle un-voting and voting
> on the 'iface' clock.
> 
> Fixes: 2afbf43a4aec6 ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node
  2026-03-23  9:17 ` [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
@ 2026-03-24  5:04   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24  5:04 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:47 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
> GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
> kaanapali.
> 
> Fixes: 2eeb5767d53f4 ("arm64: dts: qcom: Introduce Kaanapali SoC")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

> ---
>  arch/arm64/boot/dts/qcom/kaanapali.dtsi | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index 9ef57ad0ca71..52af56e09168 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> @@ -868,7 +868,11 @@ ice: crypto@1d88000 {
>  				     "qcom,inline-crypto-engine";
>  			reg = <0x0 0x01d88000 0x0 0x18000>;
>  
> -			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
> +			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
> +				 <&gcc GCC_UFS_PHY_AHB_CLK>;
> +			clock-names = "core",
> +				      "iface";
> +			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
>  		};
>  
>  		tcsr_mutex: hwlock@1f40000 {
> 

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 04/11] arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
  2026-03-23  9:17 ` [PATCH v4 04/11] arm64: dts: qcom: lemans: " Harshal Dev
@ 2026-03-24 10:33   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:33 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:47 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for lemans.
> 
> Fixes: 96272ba7103d4 ("arm64: dts: qcom: sa8775p: enable the inline crypto engine")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 07/11] arm64: dts: qcom: kodiak: Add power-domain and iface clk for ice node
  2026-03-23  9:18 ` [PATCH v4 07/11] arm64: dts: qcom: kodiak: " Harshal Dev
@ 2026-03-24 10:37   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:37 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski


On 3/23/2026 2:48 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
> GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
> kodiak.
> 
> Fixes: dfd5ee7b34bb7 ("arm64: dts: qcom: sc7280: Add inline crypto engine")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Tested on qcm6490-idp and ice ufs probe works fine.

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 08/11] arm64: dts: qcom: sm8450: Add power-domain and iface clk for ice node
  2026-03-23  9:18 ` [PATCH v4 08/11] arm64: dts: qcom: sm8450: " Harshal Dev
@ 2026-03-24 10:38   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:38 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:48 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8450.
> 
> Fixes: 86b0aef435851 ("arm64: dts: qcom: sm8450: Use standalone ICE node for UFS")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 09/11] arm64: dts: qcom: sm8550: Add power-domain and iface clk for ice node
  2026-03-23  9:18 ` [PATCH v4 09/11] arm64: dts: qcom: sm8550: " Harshal Dev
@ 2026-03-24 10:39   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:39 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:48 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8550.
> 
> Fixes: b8630c48b43fc ("arm64: dts: qcom: sm8550: Add the Inline Crypto Engine node")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 10/11] arm64: dts: qcom: sm8650: Add power-domain and iface clk for ice node
  2026-03-23  9:18 ` [PATCH v4 10/11] arm64: dts: qcom: sm8650: " Harshal Dev
@ 2026-03-24 10:39   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:39 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski


On 3/23/2026 2:48 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8650.
> 
> Fixes: 10e0246712951 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
@ 2026-03-24 10:46   ` Kuldeep Singh
  2026-03-31  9:40     ` Harshal Dev
  2026-04-06  8:37   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:46 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski


On 3/23/2026 2:47 PM, Harshal Dev wrote:
> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
> power-domain and iface clock. Without enabling the iface clock and the
> associated power-domain the ICE hardware cannot function correctly and
> leads to unclocked hardware accesses being observed during probe.
> 
> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
> power-domain and iface clock for new devices (Eliza and Milos) introduced
> in the current release (7.0) with yet-to-stabilize ABI, while preserving
> backward compatibility for older devices.
> 
> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
> ---
>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>  1 file changed, 34 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
> index 876bf90ed96e..ccb6b8dd8e11 100644
> --- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
> +++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
> @@ -30,6 +30,16 @@ properties:
>      maxItems: 1
>  
>    clocks:
> +    minItems: 1
> +    maxItems: 2
> +
> +  clock-names:
> +    minItems: 1
> +    items:
> +      - const: core
> +      - const: iface
> +
> +  power-domains:
>      maxItems: 1
>  
>    operating-points-v2: true
> @@ -44,6 +54,25 @@ required:
>  
>  additionalProperties: false
>  
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - qcom,eliza-inline-crypto-engine
> +              - qcom,milos-inline-crypto-engine
> +
> +    then:
> +      required:
> +        - power-domains
> +        - clock-names
> +      properties:
> +        clocks:
> +          minItems: 2
> +        clock-names:
> +          minItems: 2
> +

Hi Krzysztof,

As motive here is to enforce 2 clocks for upcoming targets and keep
minItems as 1 for already merged ones for ensuring backward
compatibility. Can we do like below?

allOf:
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - qcom,kaanapali-inline-crypto-engine
                - qcom,qcs8300-inline-crypto-engine
                - qcom,sa8775p-inline-crypto-engine
                - qcom,sc7180-inline-crypto-engine
                - qcom,sc7280-inline-crypto-engine
                - qcom,sm8450-inline-crypto-engine
                - qcom,sm8550-inline-crypto-engine
                - qcom,sm8650-inline-crypto-engine
                - qcom,sm8750-inline-crypto-engine

    then:
      required:
        - power-domains
        - clock-names
      properties:
        clocks:
          minItems: 2
        clock-names:
          minItems: 2

This will ensure for every new target addition, default clock count is
enforced as 2 default.
Please share your thoughts as well.

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 11/11] arm64: dts: qcom: sm8750: Add power-domain and iface clk for ice node
  2026-03-23  9:18 ` [PATCH v4 11/11] arm64: dts: qcom: sm8750: " Harshal Dev
@ 2026-03-24 10:47   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:47 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:48 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
> GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
> sm8750.
> 
> Fixes: b1dac789c650a ("arm64: dts: qcom: sm8750: Add ICE nodes")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>


-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 05/11] arm64: dts: qcom: monaco: Add power-domain and iface clk for ice node
  2026-03-23  9:17 ` [PATCH v4 05/11] arm64: dts: qcom: monaco: " Harshal Dev
@ 2026-03-24 10:48   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:48 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:47 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
> GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
> monaco.
> 
> Fixes: cc9d29aad876d ("arm64: dts: qcom: qcs8300: enable the inline crypto engine")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 06/11] arm64: dts: qcom: sc7180: Add power-domain and iface clk for ice node
  2026-03-23  9:17 ` [PATCH v4 06/11] arm64: dts: qcom: sc7180: " Harshal Dev
@ 2026-03-24 10:48   ` Kuldeep Singh
  0 siblings, 0 replies; 30+ messages in thread
From: Kuldeep Singh @ 2026-03-24 10:48 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski



On 3/23/2026 2:47 PM, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sc7180.
> 
> Fixes: 858536d9dc946 ("arm64: dts: qcom: sc7180: Add UFS nodes")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
  2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
  2026-03-23 12:27   ` Konrad Dybcio
  2026-03-24  4:48   ` Kuldeep Singh
@ 2026-03-24 16:29   ` Manivannan Sadhasivam
  2 siblings, 0 replies; 30+ messages in thread
From: Manivannan Sadhasivam @ 2026-03-24 16:29 UTC (permalink / raw)
  To: Harshal Dev
  Cc: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	cros-qcom-dts-watchers, Eric Biggers, Dmitry Baryshkov,
	Jingyi Wang, Tengfei Fan, Bartosz Golaszewski, David Wronek,
	Luca Weiss, Neil Armstrong, Melody Olvera, Alexander Koskovich,
	Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski

On Mon, Mar 23, 2026 at 02:47:55PM +0530, Harshal Dev wrote:
> Since Qualcomm inline-crypto engine (ICE) is now a dedicated driver
> de-coupled from the QCOM UFS driver, it explicitly votes for its required
> clocks during probe. For scenarios where the 'clk_ignore_unused' flag is
> not passed on the kernel command line, to avoid potential unclocked ICE
> hardware register access during probe the ICE driver should additionally
> vote on the 'iface' clock.
> Also update the suspend and resume callbacks to handle un-voting and voting
> on the 'iface' clock.
> 
> Fixes: 2afbf43a4aec6 ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>

- Mani

> ---
>  drivers/soc/qcom/ice.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c
> index b203bc685cad..bf4ab2d9e5c0 100644
> --- a/drivers/soc/qcom/ice.c
> +++ b/drivers/soc/qcom/ice.c
> @@ -108,6 +108,7 @@ struct qcom_ice {
>  	void __iomem *base;
>  
>  	struct clk *core_clk;
> +	struct clk *iface_clk;
>  	bool use_hwkm;
>  	bool hwkm_init_complete;
>  	u8 hwkm_version;
> @@ -312,8 +313,13 @@ int qcom_ice_resume(struct qcom_ice *ice)
>  
>  	err = clk_prepare_enable(ice->core_clk);
>  	if (err) {
> -		dev_err(dev, "failed to enable core clock (%d)\n",
> -			err);
> +		dev_err(dev, "Failed to enable core clock: %d\n", err);
> +		return err;
> +	}
> +
> +	err = clk_prepare_enable(ice->iface_clk);
> +	if (err) {
> +		dev_err(dev, "Failed to enable iface clock: %d\n", err);
>  		return err;
>  	}
>  	qcom_ice_hwkm_init(ice);
> @@ -323,6 +329,7 @@ EXPORT_SYMBOL_GPL(qcom_ice_resume);
>  
>  int qcom_ice_suspend(struct qcom_ice *ice)
>  {
> +	clk_disable_unprepare(ice->iface_clk);
>  	clk_disable_unprepare(ice->core_clk);
>  	ice->hwkm_init_complete = false;
>  
> @@ -579,11 +586,17 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
>  	engine->core_clk = devm_clk_get_optional_enabled(dev, "ice_core_clk");
>  	if (!engine->core_clk)
>  		engine->core_clk = devm_clk_get_optional_enabled(dev, "ice");
> +	if (!engine->core_clk)
> +		engine->core_clk = devm_clk_get_optional_enabled(dev, "core");
>  	if (!engine->core_clk)
>  		engine->core_clk = devm_clk_get_enabled(dev, NULL);
>  	if (IS_ERR(engine->core_clk))
>  		return ERR_CAST(engine->core_clk);
>  
> +	engine->iface_clk = devm_clk_get_optional_enabled(dev, "iface");
> +	if (IS_ERR(engine->iface_clk))
> +		return ERR_CAST(engine->iface_clk);
> +
>  	if (!qcom_ice_check_supported(engine))
>  		return ERR_PTR(-EOPNOTSUPP);
>  
> 
> -- 
> 2.34.1
> 

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-03-24 10:46   ` Kuldeep Singh
@ 2026-03-31  9:40     ` Harshal Dev
  2026-04-06  8:25       ` Harshal Dev
  0 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-03-31  9:40 UTC (permalink / raw)
  To: Kuldeep Singh, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski

Hi Kuldeep,

On 3/24/2026 4:16 PM, Kuldeep Singh wrote:
> 
> On 3/23/2026 2:47 PM, Harshal Dev wrote:
>> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
>> power-domain and iface clock. Without enabling the iface clock and the
>> associated power-domain the ICE hardware cannot function correctly and
>> leads to unclocked hardware accesses being observed during probe.
>>
>> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
>> power-domain and iface clock for new devices (Eliza and Milos) introduced
>> in the current release (7.0) with yet-to-stabilize ABI, while preserving
>> backward compatibility for older devices.
>>
>> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
>> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
>> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>> ---
>>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>>  1 file changed, 34 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>> index 876bf90ed96e..ccb6b8dd8e11 100644
>> --- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>> +++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>> @@ -30,6 +30,16 @@ properties:
>>      maxItems: 1
>>  
>>    clocks:
>> +    minItems: 1
>> +    maxItems: 2
>> +
>> +  clock-names:
>> +    minItems: 1
>> +    items:
>> +      - const: core
>> +      - const: iface
>> +
>> +  power-domains:
>>      maxItems: 1
>>  
>>    operating-points-v2: true
>> @@ -44,6 +54,25 @@ required:
>>  
>>  additionalProperties: false
>>  
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,eliza-inline-crypto-engine
>> +              - qcom,milos-inline-crypto-engine
>> +
>> +    then:
>> +      required:
>> +        - power-domains
>> +        - clock-names
>> +      properties:
>> +        clocks:
>> +          minItems: 2
>> +        clock-names:
>> +          minItems: 2
>> +
> 
> Hi Krzysztof,
> 
> As motive here is to enforce 2 clocks for upcoming targets and keep
> minItems as 1 for already merged ones for ensuring backward
> compatibility. Can we do like below?
> 
> allOf:
>   - if:
>       not:
>         properties:
>           compatible:
>             contains:
>               enum:
>                 - qcom,kaanapali-inline-crypto-engine
>                 - qcom,qcs8300-inline-crypto-engine
>                 - qcom,sa8775p-inline-crypto-engine
>                 - qcom,sc7180-inline-crypto-engine
>                 - qcom,sc7280-inline-crypto-engine
>                 - qcom,sm8450-inline-crypto-engine
>                 - qcom,sm8550-inline-crypto-engine
>                 - qcom,sm8650-inline-crypto-engine
>                 - qcom,sm8750-inline-crypto-engine
> 
>     then:
>       required:
>         - power-domains
>         - clock-names
>       properties:
>         clocks:
>           minItems: 2
>         clock-names:
>           minItems: 2
> 
> This will ensure for every new target addition, default clock count is
> enforced as 2 default.
> Please share your thoughts as well.
> 

I don't really have any particular objections to this proposal, but I can
see that other bindings where the need for an additional clock was realized
later on use a similar pattern as this patchset does:
https://elixir.bootlin.com/linux/v7.0-rc2/source/Documentation/devicetree/bindings/timer/fsl,imxgpt.yaml

I'll wait for Krzysztof to take a final call on this.

Regards,
Harshal


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-03-31  9:40     ` Harshal Dev
@ 2026-04-06  8:25       ` Harshal Dev
  0 siblings, 0 replies; 30+ messages in thread
From: Harshal Dev @ 2026-04-06  8:25 UTC (permalink / raw)
  To: Kuldeep Singh, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski

Hi Krzysztof,

May I request your review on this commit once again. Hopefully I have resolved
the issues pointed out in the previous version of this commit.

Thank you very much,
Harshal

On 3/31/2026 3:10 PM, Harshal Dev wrote:
> Hi Kuldeep,
> 
> On 3/24/2026 4:16 PM, Kuldeep Singh wrote:
>>
>> On 3/23/2026 2:47 PM, Harshal Dev wrote:
>>> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
>>> power-domain and iface clock. Without enabling the iface clock and the
>>> associated power-domain the ICE hardware cannot function correctly and
>>> leads to unclocked hardware accesses being observed during probe.
>>>
>>> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
>>> power-domain and iface clock for new devices (Eliza and Milos) introduced
>>> in the current release (7.0) with yet-to-stabilize ABI, while preserving
>>> backward compatibility for older devices.
>>>
>>> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
>>> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
>>> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>>> ---
>>>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>>>  1 file changed, 34 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>>> index 876bf90ed96e..ccb6b8dd8e11 100644
>>> --- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>>> +++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
>>> @@ -30,6 +30,16 @@ properties:
>>>      maxItems: 1
>>>  
>>>    clocks:
>>> +    minItems: 1
>>> +    maxItems: 2
>>> +
>>> +  clock-names:
>>> +    minItems: 1
>>> +    items:
>>> +      - const: core
>>> +      - const: iface
>>> +
>>> +  power-domains:
>>>      maxItems: 1
>>>  
>>>    operating-points-v2: true
>>> @@ -44,6 +54,25 @@ required:
>>>  
>>>  additionalProperties: false
>>>  
>>> +allOf:
>>> +  - if:
>>> +      properties:
>>> +        compatible:
>>> +          contains:
>>> +            enum:
>>> +              - qcom,eliza-inline-crypto-engine
>>> +              - qcom,milos-inline-crypto-engine
>>> +
>>> +    then:
>>> +      required:
>>> +        - power-domains
>>> +        - clock-names
>>> +      properties:
>>> +        clocks:
>>> +          minItems: 2
>>> +        clock-names:
>>> +          minItems: 2
>>> +
>>
>> Hi Krzysztof,
>>
>> As motive here is to enforce 2 clocks for upcoming targets and keep
>> minItems as 1 for already merged ones for ensuring backward
>> compatibility. Can we do like below?
>>
>> allOf:
>>   - if:
>>       not:
>>         properties:
>>           compatible:
>>             contains:
>>               enum:
>>                 - qcom,kaanapali-inline-crypto-engine
>>                 - qcom,qcs8300-inline-crypto-engine
>>                 - qcom,sa8775p-inline-crypto-engine
>>                 - qcom,sc7180-inline-crypto-engine
>>                 - qcom,sc7280-inline-crypto-engine
>>                 - qcom,sm8450-inline-crypto-engine
>>                 - qcom,sm8550-inline-crypto-engine
>>                 - qcom,sm8650-inline-crypto-engine
>>                 - qcom,sm8750-inline-crypto-engine
>>
>>     then:
>>       required:
>>         - power-domains
>>         - clock-names
>>       properties:
>>         clocks:
>>           minItems: 2
>>         clock-names:
>>           minItems: 2
>>
>> This will ensure for every new target addition, default clock count is
>> enforced as 2 default.
>> Please share your thoughts as well.
>>
> 
> I don't really have any particular objections to this proposal, but I can
> see that other bindings where the need for an additional clock was realized
> later on use a similar pattern as this patchset does:
> https://elixir.bootlin.com/linux/v7.0-rc2/source/Documentation/devicetree/bindings/timer/fsl,imxgpt.yaml
> 
> I'll wait for Krzysztof to take a final call on this.
> 
> Regards,
> Harshal
> 


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
  2026-03-24 10:46   ` Kuldeep Singh
@ 2026-04-06  8:37   ` Krzysztof Kozlowski
  2026-04-06  9:20     ` Harshal Dev
  1 sibling, 1 reply; 30+ messages in thread
From: Krzysztof Kozlowski @ 2026-04-06  8:37 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Konrad Dybcio,
	Kuldeep Singh, Krzysztof Kozlowski

On 23/03/2026 10:17, Harshal Dev wrote:
> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
> power-domain and iface clock. Without enabling the iface clock and the
> associated power-domain the ICE hardware cannot function correctly and
> leads to unclocked hardware accesses being observed during probe.
> 
> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
> power-domain and iface clock for new devices (Eliza and Milos) introduced
> in the current release (7.0) with yet-to-stabilize ABI, while preserving
> backward compatibility for older devices.
> 
> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
> ---
>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>  1 file changed, 34 insertions(+), 1 deletion(-)

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-04-06  8:37   ` Krzysztof Kozlowski
@ 2026-04-06  9:20     ` Harshal Dev
  2026-04-06  9:45       ` Harshal Dev
  0 siblings, 1 reply; 30+ messages in thread
From: Harshal Dev @ 2026-04-06  9:20 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Konrad Dybcio,
	Kuldeep Singh, Krzysztof Kozlowski



On 4/6/2026 2:07 PM, Krzysztof Kozlowski wrote:
> On 23/03/2026 10:17, Harshal Dev wrote:
>> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
>> power-domain and iface clock. Without enabling the iface clock and the
>> associated power-domain the ICE hardware cannot function correctly and
>> leads to unclocked hardware accesses being observed during probe.
>>
>> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
>> power-domain and iface clock for new devices (Eliza and Milos) introduced
>> in the current release (7.0) with yet-to-stabilize ABI, while preserving
>> backward compatibility for older devices.
>>
>> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
>> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
>> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>> ---
>>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>>  1 file changed, 34 insertions(+), 1 deletion(-)
> 
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> 

Thank you for the review Krzysztof. I believe since we are targeting current RC fix, I need
to send a patch for adding the clock and power-domain for Milos and Eliza DT as well to
conform to the binding since both changes defining the ICE node for them are already picked
up by Bjorn:
https://lore.kernel.org/all/177432155637.28714.2511351512032518031.b4-ty@kernel.org/
https://lore.kernel.org/all/whoikp5tdu34gujfjqpopbhywzj6dvcxebywtwufip6jxdwp2s@oepb2y36a2hw/

Is it fine if I spin a v5 of this patch adding the DT changes for Eliza and Milos? I don't
think sending a separate patch series for updating these two DT makes sense given the RC
will close shortly.

I'll send a v5 today itself, hopefully Abel and Luca can review.

Regards,
Harshal

> Best regards,
> Krzysztof


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-04-06  9:20     ` Harshal Dev
@ 2026-04-06  9:45       ` Harshal Dev
  0 siblings, 0 replies; 30+ messages in thread
From: Harshal Dev @ 2026-04-06  9:45 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Konrad Dybcio,
	Kuldeep Singh, Krzysztof Kozlowski



On 4/6/2026 2:50 PM, Harshal Dev wrote:
> 
> 
> On 4/6/2026 2:07 PM, Krzysztof Kozlowski wrote:
>> On 23/03/2026 10:17, Harshal Dev wrote:
>>> The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
>>> power-domain and iface clock. Without enabling the iface clock and the
>>> associated power-domain the ICE hardware cannot function correctly and
>>> leads to unclocked hardware accesses being observed during probe.
>>>
>>> Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
>>> power-domain and iface clock for new devices (Eliza and Milos) introduced
>>> in the current release (7.0) with yet-to-stabilize ABI, while preserving
>>> backward compatibility for older devices.
>>>
>>> Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
>>> Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
>>> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
>>> ---
>>>  .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
>>>  1 file changed, 34 insertions(+), 1 deletion(-)
>>
>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
>>
> 
> Thank you for the review Krzysztof. I believe since we are targeting current RC fix, I need
> to send a patch for adding the clock and power-domain for Milos and Eliza DT as well to
> conform to the binding since both changes defining the ICE node for them are already picked
> up by Bjorn:
> https://lore.kernel.org/all/177432155637.28714.2511351512032518031.b4-ty@kernel.org/
> https://lore.kernel.org/all/whoikp5tdu34gujfjqpopbhywzj6dvcxebywtwufip6jxdwp2s@oepb2y36a2hw/
> 
> Is it fine if I spin a v5 of this patch adding the DT changes for Eliza and Milos? I don't
> think sending a separate patch series for updating these two DT makes sense given the RC
> will close shortly.
> 
> I'll send a v5 today itself, hopefully Abel and Luca can review.

Whoops, I can see that Eliza and Milos support is planned for 7.1. I mistakenly thought
their support is already merged for 7.0. Apologies. This commit can be picked up for
7.0 RC to fix the binding. I'll send a separate patch which fixes the Eliza and Milos
DT sources targeting 7.1 RC.

Regards,
Harshal

> 
> Regards,
> Harshal
> 
>> Best regards,
>> Krzysztof
> 


^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2026-04-06  9:45 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-23  9:17 [PATCH v4 00/11] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
2026-03-23  9:17 ` [PATCH v4 01/11] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
2026-03-24 10:46   ` Kuldeep Singh
2026-03-31  9:40     ` Harshal Dev
2026-04-06  8:25       ` Harshal Dev
2026-04-06  8:37   ` Krzysztof Kozlowski
2026-04-06  9:20     ` Harshal Dev
2026-04-06  9:45       ` Harshal Dev
2026-03-23  9:17 ` [PATCH v4 02/11] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
2026-03-23 12:27   ` Konrad Dybcio
2026-03-24  4:48   ` Kuldeep Singh
2026-03-24 16:29   ` Manivannan Sadhasivam
2026-03-23  9:17 ` [PATCH v4 03/11] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
2026-03-24  5:04   ` Kuldeep Singh
2026-03-23  9:17 ` [PATCH v4 04/11] arm64: dts: qcom: lemans: " Harshal Dev
2026-03-24 10:33   ` Kuldeep Singh
2026-03-23  9:17 ` [PATCH v4 05/11] arm64: dts: qcom: monaco: " Harshal Dev
2026-03-24 10:48   ` Kuldeep Singh
2026-03-23  9:17 ` [PATCH v4 06/11] arm64: dts: qcom: sc7180: " Harshal Dev
2026-03-24 10:48   ` Kuldeep Singh
2026-03-23  9:18 ` [PATCH v4 07/11] arm64: dts: qcom: kodiak: " Harshal Dev
2026-03-24 10:37   ` Kuldeep Singh
2026-03-23  9:18 ` [PATCH v4 08/11] arm64: dts: qcom: sm8450: " Harshal Dev
2026-03-24 10:38   ` Kuldeep Singh
2026-03-23  9:18 ` [PATCH v4 09/11] arm64: dts: qcom: sm8550: " Harshal Dev
2026-03-24 10:39   ` Kuldeep Singh
2026-03-23  9:18 ` [PATCH v4 10/11] arm64: dts: qcom: sm8650: " Harshal Dev
2026-03-24 10:39   ` Kuldeep Singh
2026-03-23  9:18 ` [PATCH v4 11/11] arm64: dts: qcom: sm8750: " Harshal Dev
2026-03-24 10:47   ` Kuldeep Singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox