diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2013-12-05 02:01:55 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-11 22:37:54 -0800 |
commit | 633dba4a3b3665c5cce839938f18c74e4e86570f (patch) | |
tree | 627169006eb47a8ff5f4d3ce46b01aa488605b8d | |
parent | 09b35fb0e19ad13c66662ae7fefeb50b6a9888b7 (diff) |
PNP: fix restoring devices after hibernation
commit 8a37ea50e7acf8db6821ba094ca41384e7d8c70c upstream.
On returning from hibernation 'restore' callback is called,
not 'resume'. Fix it.
Fixes: eaf140b60ec9 (PNP: convert PNP driver bus legacy pm_ops to dev_pm_ops)
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/pnp/driver.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c index a39ee38a9414..2bd5c5f7db08 100644 --- a/drivers/pnp/driver.c +++ b/drivers/pnp/driver.c @@ -197,6 +197,11 @@ static int pnp_bus_freeze(struct device *dev) return __pnp_bus_suspend(dev, PMSG_FREEZE); } +static int pnp_bus_poweroff(struct device *dev) +{ + return __pnp_bus_suspend(dev, PMSG_HIBERNATE); +} + static int pnp_bus_resume(struct device *dev) { struct pnp_dev *pnp_dev = to_pnp_dev(dev); @@ -234,9 +239,14 @@ static int pnp_bus_resume(struct device *dev) } static const struct dev_pm_ops pnp_bus_dev_pm_ops = { + /* Suspend callbacks */ .suspend = pnp_bus_suspend, - .freeze = pnp_bus_freeze, .resume = pnp_bus_resume, + /* Hibernate callbacks */ + .freeze = pnp_bus_freeze, + .thaw = pnp_bus_resume, + .poweroff = pnp_bus_poweroff, + .restore = pnp_bus_resume, }; struct bus_type pnp_bus_type = { |