From: Kevin Hilman <khilman@kernel.org> To: Alexander Aring <alex.aring@gmail.com> Cc: linux-rpi-kernel@lists.infradead.org, robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, swarren@wwwdotorg.org, lee@kernel.org, eric@anholt.net, linux@arm.linux.org.uk, f.fainelli@gmail.com, rjui@broadcom.com, sbranden@broadcom.com, rjw@rjwysocki.net, ulf.hansson@linaro.org, len.brown@intel.com, pavel@ucw.cz, gregkh@linuxfoundation.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-pm@vger.kernel.org, kernel@pengutronix.de Subject: Re: [PATCH 1/3] power: domain: add pm_genpd_uninit Date: Mon, 30 Nov 2015 15:19:09 -0800 [thread overview] Message-ID: <7h7fkz9itu.fsf@deeprootsystems.com> (raw) In-Reply-To: <1447956490-22930-2-git-send-email-alex.aring@gmail.com> (Alexander Aring's message of "Thu, 19 Nov 2015 19:08:08 +0100") Alexander Aring <alex.aring@gmail.com> writes: > This patch adds function pm_genpd_uninit for undo a pm_genpd_init. This > is useful for multiple power domains while probing. If the probing fails > after one pm_genpd_init was called we need to undo all previous > registrations of generic pm domains inside the gpd_list list. > > There is a check on IS_ERR_OR_NULL(genpd) which is useful to check again > registered power domains and not registered domains, the driver can use > this mechanism to have an array with registered and non-registered power > domains, where non-registered power domains are NULL. > > Cc: Rafael J. Wysocki <rjw@rjwysocki.net> > Cc: Kevin Hilman <khilman@kernel.org> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Pavel Machek <pavel@ucw.cz> > Cc: Len Brown <len.brown@intel.com> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Alexander Aring <alex.aring@gmail.com> > --- > drivers/base/power/domain.c | 22 ++++++++++++++++++++++ > include/linux/pm_domain.h | 4 ++++ > 2 files changed, 26 insertions(+) > > diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c > index e03b1ad..24f54b8 100644 > --- a/drivers/base/power/domain.c > +++ b/drivers/base/power/domain.c > @@ -1509,6 +1509,28 @@ void pm_genpd_init(struct generic_pm_domain *genpd, > } > EXPORT_SYMBOL_GPL(pm_genpd_init); > > +/** > + * pm_genpd_uninit - Uninitialize a generic I/O PM domain object. > + * @genpd: PM domain object to initialize. > + */ > +void pm_genpd_uninit(struct generic_pm_domain *genpd) > +{ > + if (IS_ERR_OR_NULL(genpd)) > + return; > + > + /* check if domain is still in registered inside the pm subsystem */ > + WARN_ON_ONCE(!list_empty(&genpd->master_links) || > + !list_empty(&genpd->slave_links) || > + !list_empty(&genpd->dev_list)); So we WARN if there are parents/children/devices, but shouldn't this return an error instead of continuing to remove/uninit the genpd? The caller of _uninit should probably also be removing any parents/children and removing devices before calling _uninit, no? > + mutex_lock(&gpd_list_lock); > + list_del(&genpd->gpd_list_node); > + mutex_unlock(&gpd_list_lock); > + > + mutex_destroy(&genpd->lock); > +} > +EXPORT_SYMBOL_GPL(pm_genpd_uninit); Kevin
WARNING: multiple messages have this Message-ID (diff)
From: khilman@kernel.org (Kevin Hilman) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/3] power: domain: add pm_genpd_uninit Date: Mon, 30 Nov 2015 15:19:09 -0800 [thread overview] Message-ID: <7h7fkz9itu.fsf@deeprootsystems.com> (raw) In-Reply-To: <1447956490-22930-2-git-send-email-alex.aring@gmail.com> (Alexander Aring's message of "Thu, 19 Nov 2015 19:08:08 +0100") Alexander Aring <alex.aring@gmail.com> writes: > This patch adds function pm_genpd_uninit for undo a pm_genpd_init. This > is useful for multiple power domains while probing. If the probing fails > after one pm_genpd_init was called we need to undo all previous > registrations of generic pm domains inside the gpd_list list. > > There is a check on IS_ERR_OR_NULL(genpd) which is useful to check again > registered power domains and not registered domains, the driver can use > this mechanism to have an array with registered and non-registered power > domains, where non-registered power domains are NULL. > > Cc: Rafael J. Wysocki <rjw@rjwysocki.net> > Cc: Kevin Hilman <khilman@kernel.org> > Cc: Ulf Hansson <ulf.hansson@linaro.org> > Cc: Pavel Machek <pavel@ucw.cz> > Cc: Len Brown <len.brown@intel.com> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Signed-off-by: Alexander Aring <alex.aring@gmail.com> > --- > drivers/base/power/domain.c | 22 ++++++++++++++++++++++ > include/linux/pm_domain.h | 4 ++++ > 2 files changed, 26 insertions(+) > > diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c > index e03b1ad..24f54b8 100644 > --- a/drivers/base/power/domain.c > +++ b/drivers/base/power/domain.c > @@ -1509,6 +1509,28 @@ void pm_genpd_init(struct generic_pm_domain *genpd, > } > EXPORT_SYMBOL_GPL(pm_genpd_init); > > +/** > + * pm_genpd_uninit - Uninitialize a generic I/O PM domain object. > + * @genpd: PM domain object to initialize. > + */ > +void pm_genpd_uninit(struct generic_pm_domain *genpd) > +{ > + if (IS_ERR_OR_NULL(genpd)) > + return; > + > + /* check if domain is still in registered inside the pm subsystem */ > + WARN_ON_ONCE(!list_empty(&genpd->master_links) || > + !list_empty(&genpd->slave_links) || > + !list_empty(&genpd->dev_list)); So we WARN if there are parents/children/devices, but shouldn't this return an error instead of continuing to remove/uninit the genpd? The caller of _uninit should probably also be removing any parents/children and removing devices before calling _uninit, no? > + mutex_lock(&gpd_list_lock); > + list_del(&genpd->gpd_list_node); > + mutex_unlock(&gpd_list_lock); > + > + mutex_destroy(&genpd->lock); > +} > +EXPORT_SYMBOL_GPL(pm_genpd_uninit); Kevin
next prev parent reply other threads:[~2015-11-30 23:19 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-11-19 18:08 [PATCH 0/3] ARM: bcm2835: add support for rpi power domain driver Alexander Aring 2015-11-19 18:08 ` Alexander Aring 2015-11-19 18:08 ` [PATCH 1/3] power: domain: add pm_genpd_uninit Alexander Aring 2015-11-19 18:08 ` Alexander Aring [not found] ` <1447956490-22930-2-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-11-24 20:22 ` Ulf Hansson 2015-11-24 20:22 ` Ulf Hansson 2015-11-30 23:19 ` Kevin Hilman [this message] 2015-11-30 23:19 ` Kevin Hilman 2015-11-19 18:08 ` [PATCH 2/3] ARM: bcm2835: add rpi power domain driver Alexander Aring 2015-11-19 18:08 ` Alexander Aring 2015-11-24 20:44 ` Ulf Hansson 2015-11-24 20:44 ` Ulf Hansson [not found] ` <CAPDyKFqiGe+E6WRELduZJoKwFRkgnFxBvPjEa3jX04EAC3vXrA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-11-24 21:02 ` Alexander Aring 2015-11-24 21:02 ` Alexander Aring 2015-11-25 19:33 ` Eric Anholt 2015-11-25 19:33 ` Eric Anholt 2015-11-24 21:43 ` Eric Anholt 2015-11-24 21:43 ` Eric Anholt 2015-11-30 23:51 ` Kevin Hilman 2015-11-30 23:51 ` Kevin Hilman 2015-12-01 21:00 ` Alexander Aring 2015-12-01 21:00 ` Alexander Aring 2015-12-01 23:27 ` Kevin Hilman 2015-12-01 23:27 ` Kevin Hilman 2015-12-04 9:22 ` Alexander Aring 2015-12-04 9:22 ` Alexander Aring 2015-11-19 18:08 ` [PATCH 3/3] devicetree: add rpi power domain driver bindings Alexander Aring 2015-11-19 18:08 ` Alexander Aring 2015-11-20 16:14 ` Rob Herring 2015-11-20 16:14 ` Rob Herring
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=7h7fkz9itu.fsf@deeprootsystems.com \ --to=khilman@kernel.org \ --cc=alex.aring@gmail.com \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=devicetree@vger.kernel.org \ --cc=eric@anholt.net \ --cc=f.fainelli@gmail.com \ --cc=galak@codeaurora.org \ --cc=gregkh@linuxfoundation.org \ --cc=ijc+devicetree@hellion.org.uk \ --cc=kernel@pengutronix.de \ --cc=lee@kernel.org \ --cc=len.brown@intel.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=linux@arm.linux.org.uk \ --cc=mark.rutland@arm.com \ --cc=pavel@ucw.cz \ --cc=pawel.moll@arm.com \ --cc=rjui@broadcom.com \ --cc=rjw@rjwysocki.net \ --cc=robh+dt@kernel.org \ --cc=sbranden@broadcom.com \ --cc=swarren@wwwdotorg.org \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.