diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-13 17:58:41 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-17 09:54:08 -0500 |
commit | 7d5869e78f4c9d32f834dadefbb7dcb3c9d4d85f (patch) | |
tree | 136560d132409e801be0c0e0ba00da7ea9695d05 /drivers/bcma/main.c | |
parent | 685a4ef0df23b97eea1842c2698da9a2e35fc976 (diff) |
bcma: connect the bcma bus suspend/resume to the bcma driver suspend/resume
Now the low-level driver actually gets informed that it is getting suspended and resumed.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/bcma/main.c')
-rw-r--r-- | drivers/bcma/main.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index b711d9d634a7..febbc0a1222a 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c | |||
@@ -243,6 +243,16 @@ int __init bcma_bus_early_register(struct bcma_bus *bus, | |||
243 | #ifdef CONFIG_PM | 243 | #ifdef CONFIG_PM |
244 | int bcma_bus_suspend(struct bcma_bus *bus) | 244 | int bcma_bus_suspend(struct bcma_bus *bus) |
245 | { | 245 | { |
246 | struct bcma_device *core; | ||
247 | |||
248 | list_for_each_entry(core, &bus->cores, list) { | ||
249 | struct device_driver *drv = core->dev.driver; | ||
250 | if (drv) { | ||
251 | struct bcma_driver *adrv = container_of(drv, struct bcma_driver, drv); | ||
252 | if (adrv->suspend) | ||
253 | adrv->suspend(core); | ||
254 | } | ||
255 | } | ||
246 | return 0; | 256 | return 0; |
247 | } | 257 | } |
248 | 258 | ||
@@ -257,6 +267,15 @@ int bcma_bus_resume(struct bcma_bus *bus) | |||
257 | bcma_core_chipcommon_init(&bus->drv_cc); | 267 | bcma_core_chipcommon_init(&bus->drv_cc); |
258 | } | 268 | } |
259 | 269 | ||
270 | list_for_each_entry(core, &bus->cores, list) { | ||
271 | struct device_driver *drv = core->dev.driver; | ||
272 | if (drv) { | ||
273 | struct bcma_driver *adrv = container_of(drv, struct bcma_driver, drv); | ||
274 | if (adrv->resume) | ||
275 | adrv->resume(core); | ||
276 | } | ||
277 | } | ||
278 | |||
260 | return 0; | 279 | return 0; |
261 | } | 280 | } |
262 | #endif | 281 | #endif |