PM / Runtime: Avoid resuming devices again in pm_runtime_force_resume()
authorUlf Hansson <ulf.hansson@linaro.org>
Mon, 30 May 2016 09:33:12 +0000 (11:33 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 16 Jun 2016 13:14:36 +0000 (15:14 +0200)
If the runtime PM status of the device isn't RPM_SUSPENDED, prevent the
pm_runtime_force_resume() from invoking the ->runtime_resume() callback
for the device, as it's not the expected behaviour from the subsystem/driver.

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

index b746904185045a9092865030006f28350c9a9916..09e4eb1a72862162323786f2fc3556331b4a7f8a 100644 (file)
@@ -1506,6 +1506,9 @@ int pm_runtime_force_resume(struct device *dev)
                goto out;
        }
 
+       if (!pm_runtime_status_suspended(dev))
+               goto out;
+
        ret = pm_runtime_set_active(dev);
        if (ret)
                goto out;