aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bcma
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/bcma')
-rw-r--r--drivers/bcma/main.c19
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
244int bcma_bus_suspend(struct bcma_bus *bus) 244int 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