Input: serio - switch to using dev_pm_ops
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
ebd7768dae
commit
633aae23ff
2 changed files with 11 additions and 14 deletions
|
@ -931,16 +931,12 @@ static int serio_uevent(struct device *dev, struct kobj_uevent_env *env)
|
||||||
#endif /* CONFIG_HOTPLUG */
|
#endif /* CONFIG_HOTPLUG */
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#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);
|
struct serio *serio = to_serio_port(dev);
|
||||||
|
|
||||||
if (!serio->suspended && state.event == PM_EVENT_SUSPEND)
|
|
||||||
serio_cleanup(serio);
|
serio_cleanup(serio);
|
||||||
|
|
||||||
serio->suspended = state.event == PM_EVENT_SUSPEND ||
|
|
||||||
state.event == PM_EVENT_FREEZE;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -952,13 +948,17 @@ static int serio_resume(struct device *dev)
|
||||||
* Driver reconnect can take a while, so better let kseriod
|
* Driver reconnect can take a while, so better let kseriod
|
||||||
* deal with it.
|
* 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;
|
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 */
|
#endif /* CONFIG_PM */
|
||||||
|
|
||||||
/* called from serio_driver->connect/disconnect methods under serio_mutex */
|
/* called from serio_driver->connect/disconnect methods under serio_mutex */
|
||||||
|
@ -1015,8 +1015,7 @@ static struct bus_type serio_bus = {
|
||||||
.remove = serio_driver_remove,
|
.remove = serio_driver_remove,
|
||||||
.shutdown = serio_shutdown,
|
.shutdown = serio_shutdown,
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
.suspend = serio_suspend,
|
.pm = &serio_pm_ops,
|
||||||
.resume = serio_resume,
|
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -31,8 +31,6 @@ struct serio {
|
||||||
|
|
||||||
bool manual_bind;
|
bool manual_bind;
|
||||||
bool registered; /* port has been fully registered with driver core */
|
bool registered; /* port has been fully registered with driver core */
|
||||||
bool suspended; /* port is suspended */
|
|
||||||
|
|
||||||
|
|
||||||
struct serio_device_id id;
|
struct serio_device_id id;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue