diff options
-rw-r--r-- | drivers/remoteproc/omap_remoteproc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index 6a4d1b65eca3..cd9ec467dca8 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c @@ -419,6 +419,8 @@ static int _suspend(struct rproc *rproc, bool auto_suspend) for (i = 0; i < pdata->timers_cnt; i++) omap_dm_timer_stop(timers[i].odt); + omap_mbox_disable(oproc->mbox); + oproc->suspended = true; return 0; @@ -454,6 +456,8 @@ static int omap_rproc_resume(struct rproc *rproc) if (oproc->boot_reg) writel(rproc->bootaddr, oproc->boot_reg); + omap_mbox_enable(oproc->mbox); + /* * if need_kick flag is true, we need to kick all the vrings as * we do not know which vrings were tried to be kicked while the @@ -469,10 +473,11 @@ static int omap_rproc_resume(struct rproc *rproc) omap_dm_timer_start(timers[i].odt); ret = pdata->device_enable(pdev); - if (ret) + if (ret) { for (i = 0; i < pdata->timers_cnt; i++) omap_dm_timer_stop(timers[i].odt); - + omap_mbox_disable(oproc->mbox); + } return ret; } |