]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
PM / Domains: Remove redundant pm_runtime_get|put*() in pm_genpd_prepare()
authorUlf Hansson <ulf.hansson@linaro.org>
Tue, 26 Apr 2016 06:47:17 +0000 (08:47 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 26 Apr 2016 20:27:07 +0000 (22:27 +0200)
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_genpd_prepare() redundant, so let's remove them.

Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/power/domain.c

index 4ce4ce0a273003b273b052d8d3ebe6cc94133160..60a3573867058a8d8d88ddc788aee3fd2a130fea 100644 (file)
@@ -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;
 }