soc: qcom: rpmpd: Hook up VDDMX as parent of SM6375 VDDGX
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Mon, 13 Mar 2023 20:00:07 +0000 (21:00 +0100)
committerBjorn Andersson <andersson@kernel.org>
Wed, 15 Mar 2023 22:40:28 +0000 (15:40 -0700)
The GPU core clock requires that both VDDGX and VDDMX domains are scaled
at the same rate at the same time (well, MX just before GX but you get
the idea). Set MX as parent of GX to take care of that.

Suggested-by: Bjorn Andersson <andersson@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230313-topic-rpmpd-v3-9-06a4f448ff90@linaro.org
drivers/soc/qcom/rpmpd.c

index 2027c820caa7c356041a5d1705b1998d73b13adf..84283719853c99a0c58d7c3bd16e1fa63e7cc64c 100644 (file)
@@ -216,18 +216,22 @@ static struct rpmpd gfx_s2b_vfc = {
        .key = KEY_FLOOR_CORNER,
 };
 
+static struct rpmpd mx_rwmx0_lvl;
 static struct rpmpd gx_rwgx0_lvl_ao;
 static struct rpmpd gx_rwgx0_lvl = {
        .pd = { .name = "gx", },
        .peer = &gx_rwgx0_lvl_ao,
        .res_type = RPMPD_RWGX,
+       .parent = &mx_rwmx0_lvl.pd,
        .res_id = 0,
        .key = KEY_LEVEL,
 };
 
+static struct rpmpd mx_rwmx0_lvl_ao;
 static struct rpmpd gx_rwgx0_lvl_ao = {
        .pd = { .name = "gx_ao", },
        .peer = &gx_rwgx0_lvl,
+       .parent = &mx_rwmx0_lvl_ao.pd,
        .active_only = true,
        .res_type = RPMPD_RWGX,
        .res_id = 0,