Message ID | 20220929154214.7305-1-johan+linaro@kernel.org (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | PM: domains: log failures to register always-on domains | expand |
Johan Hovold <johan+linaro@kernel.org> writes: > 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@kernel.org> Reviewed-by: Kevin Hilman <khilman@baylibre.com> > --- > 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
On Thu, 29 Sept 2022 at 17:42, Johan Hovold <johan+linaro@kernel.org> 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@kernel.org> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> 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 >
On Fri, Sep 30, 2022 at 12:39 PM Ulf Hansson <ulf.hansson@linaro.org> wrote: > > On Thu, 29 Sept 2022 at 17:42, Johan Hovold <johan+linaro@kernel.org> 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@kernel.org> > > Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Applied as 6.1-rc material, thanks! > > --- > > 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 > >
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)
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@kernel.org> --- 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