[PATCH 0/3] ICE: Enable runtime PM support
From: Kuldeep Singh
Date: Thu Oct 22 2026 - 05:57:02 EST
This series fixes ICE clock lifetime handling when ICE is modeled as a
standalone device and referenced by storage controllers through
qcom,ice.
Currently, ICE driver enables clocks during probe and keeps them
prepared after probe completes. This keeps the ICE clock voted even when
the storage controller is idle. Add runtime PM support to the ICE driver
so the standalone ICE device can enable clocks for probe-time register
access, then disable them and remain suspended while idle.
While enabling runtime PM in ice exposed couple of sequence bugs in
storage drivers(ufs and sdhci-msm) as any key programming call used to
go ice and never complaint as ice-clocks were always on.
Example, unclocked register access happened from ufs/mmc in
qcom_ice_program_key().
qcom_ice_writel(ice, 0x0, QCOM_ICE_REG_CRYPTOCFG(slot));
Fixing this issue require ice instance at early ufs/emmc probe so that
correct sequence is established and ice is ready to accept key program
calls from blk-crypto or any explicit storage operation.
Merge strategy:
Patch 1/3 and 2/3 are storage driver fixes and should be available
before patch 3/3 lands otherwise will result in bootup crash.
Validation:
Tested on shikra-evk, kodiak rb3-gen2 and sm8750-mtp.
Signed-off-by: Kuldeep Singh <kuldeep.singh@xxxxxxxxxxxxxxxx>
---
Kuldeep Singh (3):
mmc: sdhci-msm: Enable ICE before enabling crypto support
ufs: ufs-qcom: Enable ICE before enabling crypto support
soc: qcom: ice: Add runtime PM support
drivers/mmc/host/sdhci-msm.c | 21 ++-----
drivers/soc/qcom/ice.c | 139 ++++++++++++++++++++++++++++++++++++-------
drivers/ufs/host/ufs-qcom.c | 29 ++++++---
3 files changed, 142 insertions(+), 47 deletions(-)
---
base-commit: 9a482184d910775cf648863148944945b74e2815
change-id: 20261022-qcom_ice_pm_enable-3c5d21b99e42
Best regards,
--
Kuldeep Singh <kuldeep.singh@xxxxxxxxxxxxxxxx>