summaryrefslogtreecommitdiff
path: root/drivers/video/tegra
diff options
context:
space:
mode:
authorMayuresh Kulkarni <mkulkarni@nvidia.com>2011-01-13 18:22:43 -0800
committerColin Cross <ccross@android.com>2011-01-14 15:28:19 -0800
commitcea5c11234ecf4692aae8cf27a4d0c8008c703a0 (patch)
tree8bca46db3738baba4cd7f043cea76674f9109cc1 /drivers/video/tegra
parent5be6f571ae59b681eac6f3916cd102e4765ec85c (diff)
video: tegra: host: disable MPE auto-power-gate
It is seen that auto-power-gate of MPE causes some issues when long run camera stress test is run. The issue manifest itself in the form of MPE sync-point not getting triggered from hardware and hence the caller who is waiting on it hangs up the system. Disabling auto-power-gate for MPE seems to resolve this issue. Original work of Jay Cheng <jacheng@nvidia.com> Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Change-Id: Iaef9f959cbc00dd715352ca637955cd2bea6f355
Diffstat (limited to 'drivers/video/tegra')
-rw-r--r--drivers/video/tegra/host/nvhost_acm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/video/tegra/host/nvhost_acm.c b/drivers/video/tegra/host/nvhost_acm.c
index a4bbce2b6f1d..14b2b5a6b8c1 100644
--- a/drivers/video/tegra/host/nvhost_acm.c
+++ b/drivers/video/tegra/host/nvhost_acm.c
@@ -31,6 +31,7 @@
#define ACM_TIMEOUT 1*HZ
#define DISABLE_3D_POWERGATING
+#define DISABLE_MPE_POWERGATING
void nvhost_module_busy(struct nvhost_module *mod)
{
@@ -156,6 +157,19 @@ int nvhost_module_init(struct nvhost_module *mod, const char *name,
}
#endif
+#ifdef DISABLE_MPE_POWERGATING
+ /*
+ * Disable power gating for MPE as it seems to cause issues with
+ * camera record stress tests when run in loop.
+ */
+ if (mod->powergate_id == TEGRA_POWERGATE_MPE) {
+ tegra_powergate_sequence_power_up(mod->powergate_id,
+ mod->clk[0]);
+ clk_disable(mod->clk[0]);
+ mod->powergate_id = -1;
+ }
+#endif
+
mutex_init(&mod->lock);
init_waitqueue_head(&mod->idle);
INIT_DELAYED_WORK(&mod->powerdown, powerdown_handler);