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