diff options
| author | David S. Miller <davem@davemloft.net> | 2012-01-17 12:11:52 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-01-17 12:11:52 -0500 |
| commit | 4144cb2ade46d97b9c41682fd2e9064a59f23a98 (patch) | |
| tree | 4b5ef937b4d0dcede6b1669f03c3b6dccf57d5bc /drivers/bcma/main.c | |
| parent | 59f608d84f937cb5e2fd3a0b9f848f200d47ba85 (diff) | |
| parent | 604c4ef1c453a1b2ea2cdf04d2b49afec421ebfa (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
Diffstat (limited to 'drivers/bcma/main.c')
| -rw-r--r-- | drivers/bcma/main.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index 10f92b371e58..febbc0a1222a 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -241,6 +241,21 @@ int __init bcma_bus_early_register(struct bcma_bus *bus, } #ifdef CONFIG_PM +int bcma_bus_suspend(struct bcma_bus *bus) +{ + struct bcma_device *core; + + list_for_each_entry(core, &bus->cores, list) { + struct device_driver *drv = core->dev.driver; + if (drv) { + struct bcma_driver *adrv = container_of(drv, struct bcma_driver, drv); + if (adrv->suspend) + adrv->suspend(core); + } + } + return 0; +} + int bcma_bus_resume(struct bcma_bus *bus) { struct bcma_device *core; @@ -252,6 +267,15 @@ int bcma_bus_resume(struct bcma_bus *bus) bcma_core_chipcommon_init(&bus->drv_cc); } + list_for_each_entry(core, &bus->cores, list) { + struct device_driver *drv = core->dev.driver; + if (drv) { + struct bcma_driver *adrv = container_of(drv, struct bcma_driver, drv); + if (adrv->resume) + adrv->resume(core); + } + } + return 0; } #endif |
