summaryrefslogtreecommitdiff
path: root/drivers/soc/qcom/rpmhpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/soc/qcom/rpmhpd.c')
-rw-r--r--drivers/soc/qcom/rpmhpd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c
index d3f819c1a90c..5741ec3fa814 100644
--- a/drivers/soc/qcom/rpmhpd.c
+++ b/drivers/soc/qcom/rpmhpd.c
@@ -101,12 +101,14 @@ static struct rpmhpd sdm845_cx_ao;
static struct rpmhpd sdm845_cx = {
.pd = { .name = "cx", },
.peer = &sdm845_cx_ao,
+ .parent = &sdm845_mx.pd,
.res_name = "cx.lvl",
};
static struct rpmhpd sdm845_cx_ao = {
.pd = { .name = "cx_ao", },
.peer = &sdm845_cx,
+ .parent = &sdm845_mx_ao.pd,
.res_name = "cx.lvl",
};
@@ -376,6 +378,15 @@ static int rpmhpd_probe(struct platform_device *pdev)
data->domains[i] = &rpmhpds[i]->pd;
}
+ /* Add subdomains */
+ for (i = 0; i < num_pds; i++) {
+ if (!rpmhpds[i])
+ continue;
+ if (rpmhpds[i]->parent)
+ pm_genpd_add_subdomain(rpmhpds[i]->parent,
+ &rpmhpds[i]->pd);
+ }
+
return of_genpd_add_provider_onecell(pdev->dev.of_node, data);
}