Re: [PATCH v1 1/1] mmc: sdhci-msm: Set ice clk rate
From: Adrian Hunter
Date: Mon Jun 01 2026 - 03:35:04 EST
On 29/05/2026 11:10, Ram Prakash Gupta wrote:
> Set ice clk rate from sdhci msm platform driver, needed for
> target which are having legacy ice support, and need sdhci msm
> platform driver to set rate.
Please expand upon what "legacy" means here?
For CQ case, qcom_ice_create() prefers "ice_core_clk" before
"ice". How does that relate to this? Please clarify that in the
commit message also.
>
> Signed-off-by: Ram Prakash Gupta <ram.gupta@xxxxxxxxxxxxxxxx>
> ---
> drivers/mmc/host/sdhci-msm.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index b4131b12df56..c6a073718aa4 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -286,6 +286,7 @@ struct sdhci_msm_host {
> /* core, iface, cal and sleep clocks */
> struct clk_bulk_data bulk_clks[4];
> #ifdef CONFIG_MMC_CRYPTO
> + struct clk *ice_clk; /* ICE clock */
Why keep ice_clk?
> struct qcom_ice *ice;
> #endif
> unsigned long clk_rate;
> @@ -2708,6 +2709,17 @@ static int sdhci_msm_probe(struct platform_device *pdev)
> return ret;
> }
>
> +#ifdef CONFIG_MMC_CRYPTO
> + /* Setup ICE clock */
> + msm_host->ice_clk = devm_clk_get(&pdev->dev, "ice");
> + if (!IS_ERR(msm_host->ice_clk)) {
Does not attempt to deal with -EPROBE_DEFER, although bus_clk above
doesn't either.
> + /* Vote for max. clk rate for max. performance */
> + ret = clk_set_rate(msm_host->ice_clk, INT_MAX);
> + if (ret)
> + dev_err(&pdev->dev, "ice clk set rate failed (%d)\n", ret);
> + }
> +#endif
Could put this in a helper+stub function in the "Inline Crypto Engine
(ICE) support" section, to save having #ifdef CONFIG_MMC_CRYPTO here
> +
> /* Setup main peripheral bus clock */
> clk = devm_clk_get(&pdev->dev, "iface");
> if (IS_ERR(clk)) {