aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2005-10-28 12:52:56 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2005-10-28 12:52:56 -0400
commit9480e307cd88ef09ec9294c7d97ebec18e6d2221 (patch)
tree967e26d3a23c24dd52b114d672312c207714308c /drivers/base
parenta3a3395e487abc4c1371fe319a8ecbb3913a70a4 (diff)
[PATCH] DRIVER MODEL: Get rid of the obsolete tri-level suspend/resume callbacks
In PM v1, all devices were called at SUSPEND_DISABLE level. Then all devices were called at SUSPEND_SAVE_STATE level, and finally SUSPEND_POWER_DOWN level. However, with PM v2, to maintain compatibility for platform devices, I arranged for the PM v2 suspend/resume callbacks to call the old PM v1 suspend/resume callbacks three times with each level in order so that existing drivers continued to work. Since this is obsolete infrastructure which is no longer necessary, we can remove it. Here's an (untested) patch to do exactly that. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/platform.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index a1a56ff65b76..75ce8711bca5 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -281,13 +281,9 @@ static int platform_suspend(struct device * dev, pm_message_t state)
281{ 281{
282 int ret = 0; 282 int ret = 0;
283 283
284 if (dev->driver && dev->driver->suspend) { 284 if (dev->driver && dev->driver->suspend)
285 ret = dev->driver->suspend(dev, state, SUSPEND_DISABLE); 285 ret = dev->driver->suspend(dev, state);
286 if (ret == 0) 286
287 ret = dev->driver->suspend(dev, state, SUSPEND_SAVE_STATE);
288 if (ret == 0)
289 ret = dev->driver->suspend(dev, state, SUSPEND_POWER_DOWN);
290 }
291 return ret; 287 return ret;
292} 288}
293 289
@@ -295,13 +291,9 @@ static int platform_resume(struct device * dev)
295{ 291{
296 int ret = 0; 292 int ret = 0;
297 293
298 if (dev->driver && dev->driver->resume) { 294 if (dev->driver && dev->driver->resume)
299 ret = dev->driver->resume(dev, RESUME_POWER_ON); 295 ret = dev->driver->resume(dev);
300 if (ret == 0) 296
301 ret = dev->driver->resume(dev, RESUME_RESTORE_STATE);
302 if (ret == 0)
303 ret = dev->driver->resume(dev, RESUME_ENABLE);
304 }
305 return ret; 297 return ret;
306} 298}
307 299