On Mon 15 Nov 23:26 CST 2021, Rajendra Nayak wrote: > The requirement to specify the active + sleep and active-only MX power > domains as the parents of the corresponding CX power domains is applicable > only on the sdm845 SoC. With the same struct definition reused for all the > SoCs this condition was wrongly applied to all those SoCs as well, which > isn't needed. Define new sdm845 specific structures to manage this > dependency and remove the parent assignements from the common structure. > Looking at the downstream sm8150 dts I see that both cx and mmcx specifies mx as parent "supply". Is this not needed or should we instead name these resources "cx_with_mx_parent" and have sm8150 opt in as well? Regards, Bjorn > Signed-off-by: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx> > --- > drivers/soc/qcom/rpmhpd.c | 22 ++++++++++++++++++---- > 1 file changed, 18 insertions(+), 4 deletions(-) > > diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c > index c71481d..12d8ce9 100644 > --- a/drivers/soc/qcom/rpmhpd.c > +++ b/drivers/soc/qcom/rpmhpd.c > @@ -108,7 +108,6 @@ static struct rpmhpd cx_ao; > static struct rpmhpd cx = { > .pd = { .name = "cx", }, > .peer = &cx_ao, > - .parent = &mx.pd, > .res_name = "cx.lvl", > }; > > @@ -116,7 +115,6 @@ static struct rpmhpd cx_ao = { > .pd = { .name = "cx_ao", }, > .active_only = true, > .peer = &cx, > - .parent = &mx_ao.pd, > .res_name = "cx.lvl", > }; > > @@ -149,12 +147,28 @@ static struct rpmhpd mxc_ao = { > }; > > /* SDM845 RPMH powerdomains */ > +static struct rpmhpd sdm845_cx_ao; > +static struct rpmhpd sdm845_cx = { > + .pd = { .name = "cx", }, > + .peer = &sdm845_cx_ao, > + .parent = &mx.pd, > + .res_name = "cx.lvl", > +}; > + > +static struct rpmhpd sdm845_cx_ao = { > + .pd = { .name = "cx_ao", }, > + .active_only = true, > + .peer = &sdm845_cx, > + .parent = &mx_ao.pd, > + .res_name = "cx.lvl", > +}; > + > static struct rpmhpd *sdm845_rpmhpds[] = { > [SDM845_EBI] = &ebi, > [SDM845_MX] = &mx, > [SDM845_MX_AO] = &mx_ao, > - [SDM845_CX] = &cx, > - [SDM845_CX_AO] = &cx_ao, > + [SDM845_CX] = &sdm845_cx, > + [SDM845_CX_AO] = &sdm845_cx_ao, > [SDM845_LMX] = &lmx, > [SDM845_LCX] = &lcx, > [SDM845_GFX] = &gfx, > -- > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member > of Code Aurora Forum, hosted by The Linux Foundation >