Re: [PATCH 1/2] OPP: Use _set_opp_level() for single genpd case

From: Viresh Kumar
Date: Wed Oct 25 2023 - 11:26:07 EST


On 25-10-23, 15:47, Stephan Gerhold wrote:
> FWIW I'm hitting this WARNing when trying to set up the parent domain
> setup for CPR->RPMPD(MX) on MSM8916 that I discussed with Uffe recently
> [1]. I know, me and all my weird OPP setups. :'D
>
> Basically, I have cpufreq voting for performance states of the CPR genpd
> (via required-opps). CPR is supposed to have <&rpmpd MSM8916_VDDMX_AO>
> as parent genpd and translates to the parent performance state using the
> "required-opps" in the *CPR* OPP table:
>
> cpr: power-controller@b018000 {
> compatible = "qcom,msm8916-cpr", "qcom,cpr";
> reg = <0x0b018000 0x1000>;
> /* ... */
> #power-domain-cells = <0>;
> operating-points-v2 = <&cpr_opp_table>;
> /* Supposed to be parent domain, not consumer */
> power-domains = <&rpmpd MSM8916_VDDMX_AO>;
>
> cpr_opp_table: opp-table {
> compatible = "operating-points-v2-qcom-level";
>
> cpr_opp1: opp1 {
> opp-level = <1>;
> qcom,opp-fuse-level = <1>;
> required-opps = <&rpmpd_opp_svs_soc>;
> };
> cpr_opp2: opp2 {
> opp-level = <2>;
> qcom,opp-fuse-level = <2>;
> required-opps = <&rpmpd_opp_nom>;
> };
> cpr_opp3: opp3 {
> opp-level = <3>;
> qcom,opp-fuse-level = <3>;
> required-opps = <&rpmpd_opp_super_turbo>;
> };
> };
> };

I have forgotten a bit about this usecase. How exactly does the
configurations work currently for this ? I mean genpd core must be
setting the vote finally for only one of them or something else ?

--
viresh