[RESEND PATCH] PM / Runtime: Idle devices asynchronously after probe|release
Rafael J. Wysocki
rjw at sisk.pl
Wed Apr 10 15:05:30 EDT 2013
On Wednesday, April 10, 2013 05:00:48 PM Ulf Hansson wrote:
> From: Ulf Hansson <ulf.hansson at linaro.org>
>
> Putting devices into idle|suspend in a synchronous manner means we are
> waiting for each device to become idle|suspended before the probe|release
> is fully done.
>
> This patch switch to use the asynchronous runtime PM API:s instead and
> thus improves the parallelism since we can move on and handle the next
> device in queue in an earlier phase.
Acked-by: Rafael J. Wysocki <rafael.j.wysocki at intel.com>
> Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
> Cc: Kevin Hilman <khilman at linaro.org>
> Cc: Alan Stern <stern at rowland.harvard.edu>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> ---
> drivers/base/dd.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
> index bb5645e..35fa368 100644
> --- a/drivers/base/dd.c
> +++ b/drivers/base/dd.c
> @@ -380,7 +380,7 @@ int driver_probe_device(struct device_driver *drv, struct device *dev)
>
> pm_runtime_barrier(dev);
> ret = really_probe(dev, drv);
> - pm_runtime_idle(dev);
> + pm_request_idle(dev);
>
> return ret;
> }
> @@ -428,7 +428,7 @@ int device_attach(struct device *dev)
> }
> } else {
> ret = bus_for_each_drv(dev->bus, NULL, dev, __device_attach);
> - pm_runtime_idle(dev);
> + pm_request_idle(dev);
> }
> out_unlock:
> device_unlock(dev);
> @@ -499,7 +499,7 @@ static void __device_release_driver(struct device *dev)
> BUS_NOTIFY_UNBIND_DRIVER,
> dev);
>
> - pm_runtime_put_sync(dev);
> + pm_runtime_put(dev);
>
> if (dev->bus && dev->bus->remove)
> dev->bus->remove(dev);
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
More information about the linux-arm-kernel
mailing list