Input: serio - switch to using dev_pm_ops
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 23 Jul 2009 04:51:36 +0000 (21:51 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 26 Jul 2009 18:17:01 +0000 (11:17 -0700)
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/serio/serio.c
include/linux/serio.h

index d66f4944f2a0efc0a18508d9c4707bf069567830..0236f0d5fd9156319f01abf3dd4f7d7cf6d2972f 100644 (file)
@@ -931,15 +931,11 @@ static int serio_uevent(struct device *dev, struct kobj_uevent_env *env)
 #endif /* CONFIG_HOTPLUG */
 
 #ifdef CONFIG_PM
-static int serio_suspend(struct device *dev, pm_message_t state)
+static int serio_suspend(struct device *dev)
 {
        struct serio *serio = to_serio_port(dev);
 
-       if (!serio->suspended && state.event == PM_EVENT_SUSPEND)
-               serio_cleanup(serio);
-
-       serio->suspended = state.event == PM_EVENT_SUSPEND ||
-                          state.event == PM_EVENT_FREEZE;
+       serio_cleanup(serio);
 
        return 0;
 }
@@ -952,13 +948,17 @@ static int serio_resume(struct device *dev)
         * Driver reconnect can take a while, so better let kseriod
         * deal with it.
         */
-       if (serio->suspended) {
-               serio->suspended = false;
-               serio_queue_event(serio, NULL, SERIO_RECONNECT_PORT);
-       }
+       serio_queue_event(serio, NULL, SERIO_RECONNECT_PORT);
 
        return 0;
 }
+
+static const struct dev_pm_ops serio_pm_ops = {
+       .suspend        = serio_suspend,
+       .resume         = serio_resume,
+       .poweroff       = serio_suspend,
+       .restore        = serio_resume,
+};
 #endif /* CONFIG_PM */
 
 /* called from serio_driver->connect/disconnect methods under serio_mutex */
@@ -1015,8 +1015,7 @@ static struct bus_type serio_bus = {
        .remove         = serio_driver_remove,
        .shutdown       = serio_shutdown,
 #ifdef CONFIG_PM
-       .suspend        = serio_suspend,
-       .resume         = serio_resume,
+       .pm             = &serio_pm_ops,
 #endif
 };
 
index 126d24c9eaa86a8fa374f9a28285e51e0ef7a4a5..a640bc2afe76542493236decb1790b7fc9a06495 100644 (file)
@@ -31,8 +31,6 @@ struct serio {
 
        bool manual_bind;
        bool registered;        /* port has been fully registered with driver core */
-       bool suspended;         /* port is suspended */
-
 
        struct serio_device_id id;