Re: [PATCH v6 4/4] soc: qcom: ice: Set ICE clk to TURBO on probe
From: Konrad Dybcio
Date: Thu Feb 19 2026 - 09:18:59 EST
On 2/19/26 10:39 AM, Abhinaba Rakshit wrote:
> MMC controller lacks a clock scaling mechanism, unlike the UFS
> controller. By default, the MMC controller is set to TURBO mode
> during probe, but the ICE clock remains at XO frequency,
> leading to read/write performance degradation on eMMC.
>
> To address this, set the ICE clock to TURBO during probe to
> align it with the controller clock. This ensures consistent
> performance and avoids mismatches between the controller
> and ICE clock frequencies.
>
> For platforms where ICE is represented as a separate device,
> use the OPP framework to vote for TURBO mode, maintaining
> proper voltage and power domain constraints.
>
> Signed-off-by: Abhinaba Rakshit <abhinaba.rakshit@xxxxxxxxxxxxxxxx>
> ---
> drivers/soc/qcom/ice.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c
> index 1372dc4a4a4d0df982ea3a174df8779a37ce07c6..a60a793f9c230e08ebd7cae89a828980e762db27 100644
> --- a/drivers/soc/qcom/ice.c
> +++ b/drivers/soc/qcom/ice.c
> @@ -665,6 +665,13 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
> dev_info(dev, "ICE OPP table is not registered\n");
> }
>
> + if (engine->has_opp) {
> + /* Vote for maximum clock rate for maximum performance */
> + err = dev_pm_opp_set_rate(dev, INT_MAX);
> + if (err)
> + dev_warn(dev, "Failed boosting the ICE clk to TURBO\n");
I suppose this isn't exactly critical, but should never happen either
Nonetheless, it's fine
Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
Konrad