PM: Drop generic_subsys_pm_ops
Rafael J. Wysocki [Sat, 17 Dec 2011 23:34:42 +0000 (00:34 +0100)]
Since the PM core is now going to execute driver callbacks directly
if the corresponding subsystem callbacks are not present,
forward-only subsystem callbacks (i.e. such that only execute the
corresponding driver callbacks) are not necessary any more.  Thus
it is possible to remove generic_subsys_pm_ops, because the only
callback in there that is not forward-only, .runtime_idle, is not
really used by the only user of generic_subsys_pm_ops, which is
vio_bus_type.

However, the generic callback routines themselves cannot be removed
from generic_ops.c, because they are used individually by a number
of subsystems.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>

arch/powerpc/kernel/vio.c
drivers/base/power/generic_ops.c
include/linux/pm.h

index f65af61..8b08629 100644 (file)
@@ -1406,7 +1406,6 @@ static struct bus_type vio_bus_type = {
        .match = vio_bus_match,
        .probe = vio_bus_probe,
        .remove = vio_bus_remove,
-       .pm = GENERIC_SUBSYS_PM_OPS,
 };
 
 /**
index 5a5b154..10bdd79 100644 (file)
@@ -276,28 +276,3 @@ void pm_generic_complete(struct device *dev)
        pm_runtime_idle(dev);
 }
 #endif /* CONFIG_PM_SLEEP */
-
-struct dev_pm_ops generic_subsys_pm_ops = {
-#ifdef CONFIG_PM_SLEEP
-       .prepare = pm_generic_prepare,
-       .suspend = pm_generic_suspend,
-       .suspend_noirq = pm_generic_suspend_noirq,
-       .resume = pm_generic_resume,
-       .resume_noirq = pm_generic_resume_noirq,
-       .freeze = pm_generic_freeze,
-       .freeze_noirq = pm_generic_freeze_noirq,
-       .thaw = pm_generic_thaw,
-       .thaw_noirq = pm_generic_thaw_noirq,
-       .poweroff = pm_generic_poweroff,
-       .poweroff_noirq = pm_generic_poweroff_noirq,
-       .restore = pm_generic_restore,
-       .restore_noirq = pm_generic_restore_noirq,
-       .complete = pm_generic_complete,
-#endif
-#ifdef CONFIG_PM_RUNTIME
-       .runtime_suspend = pm_generic_runtime_suspend,
-       .runtime_resume = pm_generic_runtime_resume,
-       .runtime_idle = pm_generic_runtime_idle,
-#endif
-};
-EXPORT_SYMBOL_GPL(generic_subsys_pm_ops);
index 3f3ed83..21e04dd 100644 (file)
@@ -300,19 +300,6 @@ const struct dev_pm_ops name = { \
        SET_RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \
 }
 
-/*
- * Use this for subsystems (bus types, device types, device classes) that don't
- * need any special suspend/resume handling in addition to invoking the PM
- * callbacks provided by device drivers supporting both the system sleep PM and
- * runtime PM, make the pm member point to generic_subsys_pm_ops.
- */
-#ifdef CONFIG_PM
-extern struct dev_pm_ops generic_subsys_pm_ops;
-#define GENERIC_SUBSYS_PM_OPS  (&generic_subsys_pm_ops)
-#else
-#define GENERIC_SUBSYS_PM_OPS  NULL
-#endif
-
 /**
  * PM_EVENT_ messages
  *