diff mbox

[v2,1/2] PM / Domains: Remove redundant pm_runtime_get|put*() in pm_genpd_prepare()

Message ID 1461653238-3891-2-git-send-email-ulf.hansson@linaro.org
State Accepted
Commit 624c8df7d2823ec0df9609025480309322886ed3
Headers show

Commit Message

Ulf Hansson April 26, 2016, 6:47 a.m. UTC
The PM core increases and decreases the runtime PM usage count in the
system PM prepare phase. This makes some of the pm_runtime_get|put*()
calls in pm_gendp_prepare() redundant, so let's remove them.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

Reviewed-by: Kevin Hilman <khilman@baylibre.com>

---

Changes in v2:
	Updated changlog and added Kevin's reviewed by.

---
 drivers/base/power/domain.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

-- 
1.9.1

Comments

Ulf Hansson April 26, 2016, 7:08 a.m. UTC | #1
On 26 April 2016 at 08:47, Ulf Hansson <ulf.hansson@linaro.org> wrote:
> The PM core increases and decreases the runtime PM usage count in the

> system PM prepare phase. This makes some of the pm_runtime_get|put*()

> calls in pm_gendp_prepare() redundant, so let's remove them.


Huh, I noticed I missed to update pm_gendp_prepare() to pm_genpd_prepare().

Rafael, can you amend the patch or you want me to send a v3?

Kind regards
Uffe

>

> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

> Reviewed-by: Kevin Hilman <khilman@baylibre.com>

> ---

>

> Changes in v2:

>         Updated changlog and added Kevin's reviewed by.

>

> ---

>  drivers/base/power/domain.c | 10 ++--------

>  1 file changed, 2 insertions(+), 8 deletions(-)

>

> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c

> index 4ce4ce0..60a3573 100644

> --- a/drivers/base/power/domain.c

> +++ b/drivers/base/power/domain.c

> @@ -730,14 +730,11 @@ static int pm_genpd_prepare(struct device *dev)

>          * at this point and a system wakeup event should be reported if it's

>          * set up to wake up the system from sleep states.

>          */

> -       pm_runtime_get_noresume(dev);

>         if (pm_runtime_barrier(dev) && device_may_wakeup(dev))

>                 pm_wakeup_event(dev, 0);

>

> -       if (pm_wakeup_pending()) {

> -               pm_runtime_put(dev);

> +       if (pm_wakeup_pending())

>                 return -EBUSY;

> -       }

>

>         if (resume_needed(dev, genpd))

>                 pm_runtime_resume(dev);

> @@ -751,10 +748,8 @@ static int pm_genpd_prepare(struct device *dev)

>

>         mutex_unlock(&genpd->lock);

>

> -       if (genpd->suspend_power_off) {

> -               pm_runtime_put_noidle(dev);

> +       if (genpd->suspend_power_off)

>                 return 0;

> -       }

>

>         /*

>          * The PM domain must be in the GPD_STATE_ACTIVE state at this point,

> @@ -776,7 +771,6 @@ static int pm_genpd_prepare(struct device *dev)

>                 pm_runtime_enable(dev);

>         }

>

> -       pm_runtime_put(dev);

>         return ret;

>  }

>

> --

> 1.9.1

>

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 4ce4ce0..60a3573 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -730,14 +730,11 @@  static int pm_genpd_prepare(struct device *dev)
 	 * at this point and a system wakeup event should be reported if it's
 	 * set up to wake up the system from sleep states.
 	 */
-	pm_runtime_get_noresume(dev);
 	if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
 		pm_wakeup_event(dev, 0);
 
-	if (pm_wakeup_pending()) {
-		pm_runtime_put(dev);
+	if (pm_wakeup_pending())
 		return -EBUSY;
-	}
 
 	if (resume_needed(dev, genpd))
 		pm_runtime_resume(dev);
@@ -751,10 +748,8 @@  static int pm_genpd_prepare(struct device *dev)
 
 	mutex_unlock(&genpd->lock);
 
-	if (genpd->suspend_power_off) {
-		pm_runtime_put_noidle(dev);
+	if (genpd->suspend_power_off)
 		return 0;
-	}
 
 	/*
 	 * The PM domain must be in the GPD_STATE_ACTIVE state at this point,
@@ -776,7 +771,6 @@  static int pm_genpd_prepare(struct device *dev)
 		pm_runtime_enable(dev);
 	}
 
-	pm_runtime_put(dev);
 	return ret;
 }