Re: [PATCH] PM: domains: log failures to register always-on domains

From: Ulf Hansson
Date: Fri Sep 30 2022 - 07:03:17 EST


On Thu, 29 Sept 2022 at 17:42, Johan Hovold <johan+linaro@xxxxxxxxxx> wrote:
>
> Always-on PM domains must be on during initialisation or the domain is
> currently silently rejected.
>
> Print an error message in case an always-on domain is not on to make it
> easier to debug drivers getting this wrong (e.g. by setting an always-on
> genpd flag without making sure that the state matches).
>
> Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx>

Reviewed-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>

Kind regards
Uffe

> ---
> drivers/base/power/domain.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
>
> Both myself and Matthias have hit this with the Qualcomm GCC drivers
> when updating static genpd flags directly instead of using/adding driver
> specific flags to propagate the setting.
>
> Johan
>
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index bbfbf05b3446..7200e307effb 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -2087,8 +2087,10 @@ int pm_genpd_init(struct generic_pm_domain *genpd,
>
> /* Always-on domains must be powered on at initialization. */
> if ((genpd_is_always_on(genpd) || genpd_is_rpm_always_on(genpd)) &&
> - !genpd_status_on(genpd))
> + !genpd_status_on(genpd)) {
> + pr_err("always-on PM domain %s is not on\n", genpd->name);
> return -EINVAL;
> + }
>
> /* Multiple states but no governor doesn't make sense. */
> if (!gov && genpd->state_count > 1)
> --
> 2.35.1
>