[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aR7rCTZGTRGMWkMq@hu-arakshit-hyd.qualcomm.com>
Date: Thu, 20 Nov 2025 15:48:49 +0530
From: Abhinaba Rakshit <abhinaba.rakshit@....qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@....qualcomm.com>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] soc: qcom: ice: Set ICE clk to turbo on probe
On Thu, Oct 02, 2025 at 11:39:05AM +0200, Konrad Dybcio wrote:
> On 10/1/25 2:14 PM, Abhinaba Rakshit wrote:
> > Set ICE core clock to turbo (max freq) provided by dt
> > entry at ice device probe.
> >
> > Signed-off-by: Abhinaba Rakshit <abhinaba.rakshit@....qualcomm.com>
> > ---
> > 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.
> > ---
> > drivers/soc/qcom/ice.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c
> > index ec8d6bb9f426deee1038616282176bfc8e5b9ec1..eee06c499dc36a6bf380361f27e938331f1fcb10 100644
> > --- a/drivers/soc/qcom/ice.c
> > +++ b/drivers/soc/qcom/ice.c
> > @@ -535,6 +535,7 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
> > struct qcom_ice *engine;
> > const __be32 *prop;
> > int len;
> > + int err;
> >
> > if (!qcom_scm_is_available())
> > return ERR_PTR(-EPROBE_DEFER);
> > @@ -577,6 +578,13 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
> > if (!qcom_ice_check_supported(engine))
> > return ERR_PTR(-EOPNOTSUPP);
> >
> > + /* Set the ICE clk rate to TURBO */
> > + if (engine->core_clk && engine->max_freq) {
> > + err = clk_set_rate(engine->core_clk, engine->max_freq);
>
> Please make sure to use dev_pm_opp_set_rate() and add introduce an OPP
> table to ensure that there's also a turbo rpm(h) vote to match..
>
> Konrad
Sure, will move the solution using OPP-table as suggested in patchset-v2.
Powered by blists - more mailing lists