sh: allow runtime pm without suspend/resume callbacks
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>
This commit is contained in:
parent
1c2e36cc9b
commit
a65d0d79c4
@ -45,12 +45,14 @@ static int __platform_pm_runtime_resume(struct platform_device *pdev)
|
|||||||
|
|
||||||
dev_dbg(d, "__platform_pm_runtime_resume() [%d]\n", hwblk);
|
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);
|
hwblk_enable(hwblk_info, hwblk);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
if (test_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags)) {
|
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)
|
if (!ret)
|
||||||
clear_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
|
clear_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
|
||||||
else
|
else
|
||||||
@ -73,12 +75,15 @@ static int __platform_pm_runtime_suspend(struct platform_device *pdev)
|
|||||||
|
|
||||||
dev_dbg(d, "__platform_pm_runtime_suspend() [%d]\n", hwblk);
|
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));
|
BUG_ON(!test_bit(PDEV_ARCHDATA_FLAG_IDLE, &ad->flags));
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
hwblk_enable(hwblk_info, hwblk);
|
if (d->driver->pm && d->driver->pm->runtime_suspend) {
|
||||||
ret = d->driver->pm->runtime_suspend(d);
|
hwblk_enable(hwblk_info, hwblk);
|
||||||
hwblk_disable(hwblk_info, hwblk);
|
ret = d->driver->pm->runtime_suspend(d);
|
||||||
|
hwblk_disable(hwblk_info, hwblk);
|
||||||
|
}
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
set_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
|
set_bit(PDEV_ARCHDATA_FLAG_SUSP, &ad->flags);
|
||||||
|
Loading…
Reference in New Issue
Block a user