Skip to content

Commit

Permalink
sh: allow runtime pm without suspend/resume callbacks
Browse files Browse the repository at this point in the history
This patch updates the Runtime PM code for SuperH Mobile
to allow drivers to have NULL as pm or callback value.
With this in place there is no need for no-op functions.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Magnus Damm authored and Paul Mundt committed Dec 4, 2009
1 parent 1c2e36c commit a65d0d7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions arch/sh/kernel/cpu/shmobile/pm_runtime.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,14 @@ static int __platform_pm_runtime_resume(struct platform_device *pdev)

dev_dbg(d, "__platform_pm_runtime_resume() [%d]\n", hwblk);

if (d->driver && d->driver->pm && d->driver->pm->runtime_resume) {
if (d->driver) {
hwblk_enable(hwblk_info, hwblk);
ret = 0;

if (test_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags)) {
ret = d->driver->pm->runtime_resume(d);
if (d->driver->pm && d->driver->pm->runtime_resume)
ret = d->driver->pm->runtime_resume(d);

if (!ret)
clear_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
else
Expand All @@ -73,12 +75,15 @@ static int __platform_pm_runtime_suspend(struct platform_device *pdev)

dev_dbg(d, "__platform_pm_runtime_suspend() [%d]\n", hwblk);

if (d->driver && d->driver->pm && d->driver->pm->runtime_suspend) {
if (d->driver) {
BUG_ON(!test_bit(PDEV_ARCHDATA_FLAG_IDLE, &ad->flags));
ret = 0;

hwblk_enable(hwblk_info, hwblk);
ret = d->driver->pm->runtime_suspend(d);
hwblk_disable(hwblk_info, hwblk);
if (d->driver->pm && d->driver->pm->runtime_suspend) {
hwblk_enable(hwblk_info, hwblk);
ret = d->driver->pm->runtime_suspend(d);
hwblk_disable(hwblk_info, hwblk);
}

if (!ret) {
set_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
Expand Down

0 comments on commit a65d0d7

Please sign in to comment.