summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/remoteproc/omap_remoteproc.c9
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;
}