Re: [PATCH v8 10/10] soc: qcom: rpmhpd: Mark mx as a parent for cx
From: Ulf Hansson
Date: Fri Dec 21 2018 - 05:33:46 EST
On Fri, 21 Dec 2018 at 09:57, Rajendra Nayak <rnayak@xxxxxxxxxxxxxx> wrote:
>
> Specify the active + sleep and active-only MX power domains as
> the parents of the corresponding CX power domains. This will ensure that
> performance state requests on CX automatically generate equivalent requests
> on MX power domains.
>
> This is used to enforce a requirement that exists for various
> hardware blocks on SDM845 that MX performance state >= CX performance
> state for a given operating frequency.
>
> Signed-off-by: Rajendra Nayak <rnayak@xxxxxxxxxxxxxx>
> Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
Kind regards
Uffe
> ---
> drivers/soc/qcom/rpmhpd.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/soc/qcom/rpmhpd.c b/drivers/soc/qcom/rpmhpd.c
> index f7fbe57f31ae..71d693c31e3b 100644
> --- a/drivers/soc/qcom/rpmhpd.c
> +++ b/drivers/soc/qcom/rpmhpd.c
> @@ -97,12 +97,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",
> };
>
> @@ -372,6 +374,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);
> }
>
> --
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
> of Code Aurora Forum, hosted by The Linux Foundation
>