aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/remoteproc
diff options
context:
space:
mode:
authorMiguel Vadillo <vadillo@ti.com>2011-10-21 15:19:56 -0500
committerIliyan Malchev <malchev@google.com>2011-10-21 13:38:18 -0700
commitdc8f85b6b2e637752829caa706f769e53eb9ef73 (patch)
tree65a3a206ef6a02c662950a4054e8f8ad1cf1a911 /drivers/remoteproc
parent17745d4ce57b8454b7082087b48b3e2027fdf5bc (diff)
downloadkernel_samsung_tuna-dc8f85b6b2e637752829caa706f769e53eb9ef73.tar.gz
kernel_samsung_tuna-dc8f85b6b2e637752829caa706f769e53eb9ef73.tar.bz2
kernel_samsung_tuna-dc8f85b6b2e637752829caa706f769e53eb9ef73.zip
omap4: remoteproc: wake up clkdm in activate() to access iommu
iommu is part of the domain of each remoteproc; wake the domain in activate function as well. This change was missed in: 61a044d436aa1891d08010d027cc3d13ab2cbf0f Change-Id: Ibe4fcfd9664796b7f60ff4f6d122b4af078de627 Signed-off-by: Miguel Vadillo <vadillo@ti.com>
Diffstat (limited to 'drivers/remoteproc')
-rw-r--r--drivers/remoteproc/omap_remoteproc.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c
index 1e01a3361c4..d86b4b4452e 100644
--- a/drivers/remoteproc/omap_remoteproc.c
+++ b/drivers/remoteproc/omap_remoteproc.c
@@ -192,13 +192,23 @@ int omap_rproc_activate(struct omap_device *od)
#ifdef CONFIG_REMOTE_PROC_AUTOSUSPEND
struct omap_rproc_priv *rpp = rproc->priv;
struct iommu *iommu;
+#endif
+ /**
+ * Domain is in HW SUP thus in hw_auto but
+ * since remoteproc will be enabled clkdm
+ * needs to be in sw_sup (Do not let it idle).
+ */
+ if (pdata->clkdm)
+ clkdm_wakeup(pdata->clkdm);
+#ifdef CONFIG_REMOTE_PROC_AUTOSUSPEND
if (!rpp->iommu) {
iommu = iommu_get(pdata->iommu_name);
if (IS_ERR(iommu)) {
dev_err(dev, "iommu_get error: %ld\n",
PTR_ERR(iommu));
- return PTR_ERR(iommu);
+ ret = PTR_ERR(iommu);
+ goto err;
}
rpp->iommu = iommu;
}
@@ -207,14 +217,6 @@ int omap_rproc_activate(struct omap_device *od)
rpp->mbox = omap_mbox_get(pdata->sus_mbox_name, NULL);
#endif
- /**
- * Domain is in HW SUP thus in hw_auto but
- * since remoteproc will be enabled clkdm
- * needs to be in sw_sup (Do not let it idle).
- */
- if (pdata->clkdm)
- clkdm_wakeup(pdata->clkdm);
-
for (i = 0; i < pdata->timers_cnt; i++)
omap_dm_timer_start(timers[i].odt);
@@ -226,7 +228,7 @@ int omap_rproc_activate(struct omap_device *od)
break;
}
}
-
+err:
/**
* Domain is in force_wkup but since remoteproc
* was enabled it is safe now to switch clkdm