Re: [PATCH v1 1/1] drivers: remoteproc: Add bus scaling capability during bootup
From: Krzysztof Kozlowski
Date: Tue Oct 18 2022 - 21:56:09 EST
On 18/10/2022 17:10, Gokul krishna Krishnakumar wrote:
> During bootup since remote processors cannot request for
> additional bus bandwidth from the interconect framework,
> platform driver should provide the proxy resources. Make
> a proxy vote for maximizing the bus bandwidth during bootup
> for a remote processor and remove it once processor is up.
>
(...)
>
> @@ -265,6 +340,7 @@ static void qcom_pas_handover(struct qcom_q6v5 *q6v5)
> clk_disable_unprepare(adsp->aggre2_clk);
> clk_disable_unprepare(adsp->xo);
> adsp_pds_disable(adsp, adsp->proxy_pds, adsp->proxy_pd_count);
> + do_bus_scaling(adsp, false);
> }
>
> static int adsp_stop(struct rproc *rproc)
> @@ -383,6 +459,22 @@ static int adsp_init_regulator(struct qcom_adsp *adsp)
> return 0;
> }
>
> +static void adsp_init_bus_scaling(struct qcom_adsp *adsp)
> +{
> + if (scm_perf_client)
> + goto get_rproc_client;
> +
> + scm_perf_client = of_icc_get(adsp->dev, "crypto_ddr");
Aren't you adding here new DT properties to the device? If so, this
requires updating bindings.
> + if (IS_ERR(scm_perf_client))
> + dev_warn(adsp->dev, "Crypto scaling not setup\n");
> +
> +get_rproc_client:
> + adsp->bus_client = of_icc_get(adsp->dev, "rproc_ddr");
> + if (IS_ERR(adsp->bus_client))
> + dev_warn(adsp->dev, "%s: No bus client\n", __func__);
> +
> +}
Best regards,
Krzysztof