lkml.org 
[lkml]   [2013]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH RFC] PM / Runtime: Rework the "runtime idle" helper routine
On Wed, May 29, 2013 at 01:29:06AM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> The "runtime idle" helper routine, rpm_idle(), currently ignores
> return values from .runtime_idle() callbacks executed by it.
>
> However, it turns out that many subsystems use the generic idle
> callback routine pm_generic_runtime_idle() which checks the return
> value of the driver's callback and executes pm_runtime_suspend() for
> the device unless that value is different from 0. If that logic is
> moved to rpm_idle() instead, pm_generic_runtime_idle() can be dropped
> and its users will not need any .runtime_idle() callbacks any more.
>
> Moreover, the PCI subsystem's .runtime_idle() routine,
> pci_pm_runtime_idle(), works in analogy with the generic one and if
> rpm_idle() calls rpm_suspend() after 0 has been returned by the
> .runtime_idle() callback executed by it, that routine will not be
> necessary any more and may be dropped.
>
> To reduce overall code duplication make the changes described above.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
>
> The patch doesn't break compilation for me, but it hasn't been tested
> otherwise. It applies on top of the linux-pm.git tree's linux-next branch.
>
> Thanks,
> Rafael
>
> ---
> Documentation/power/runtime_pm.txt | 5 -----
> arch/arm/mach-omap2/omap_device.c | 7 +------
> drivers/acpi/device_pm.c | 1 -
> drivers/amba/bus.c | 2 +-
> drivers/base/platform.c | 1 -
> drivers/base/power/domain.c | 1 -
> drivers/base/power/generic_ops.c | 23 -----------------------
> drivers/base/power/runtime.c | 12 +++++-------
> drivers/i2c/i2c-core.c | 2 +-

i2c-core runtime PM idle still works with this patch :-)

You can add my

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>

for the i2c parts if you like.

> drivers/mmc/core/sdio_bus.c | 2 +-
> drivers/pci/pci-driver.c | 27 ---------------------------
> drivers/spi/spi.c | 2 +-
> drivers/usb/core/port.c | 1 -
> include/linux/pm_runtime.h | 2 --
> 14 files changed, 10 insertions(+), 78 deletions(-)


\
 
 \ /
  Last update: 2013-05-29 11:21    [W:0.072 / U:0.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site