summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/host/nvhost_acm.c
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2011-08-12 13:25:57 +0300
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:48:16 -0800
commitd540f7650771617c58cee51d1223888dd37d1ad0 (patch)
tree5bac39ea46040c1ec4b2b4e3e7311b05d3d3c743 /drivers/video/tegra/host/nvhost_acm.c
parent5ff305a4b37bd8cf481897f5a120354c845c91f7 (diff)
tegra: host: Disable MPE power gating
Disable MPE power gating until power gating race has been fixed. Bug 857044 Original-Change-Id: I92a5adf608ee302fb23413c6ef60d3478c0779d7 Reviewed-on: http://git-master/r/46943 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Aleksandr Frid <afrid@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: Rae65b78f6a831457b17c6ebcdd02a13c7d90160d
Diffstat (limited to 'drivers/video/tegra/host/nvhost_acm.c')
-rw-r--r--drivers/video/tegra/host/nvhost_acm.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/drivers/video/tegra/host/nvhost_acm.c b/drivers/video/tegra/host/nvhost_acm.c
index fe105c156470..b042aa1b35ee 100644
--- a/drivers/video/tegra/host/nvhost_acm.c
+++ b/drivers/video/tegra/host/nvhost_acm.c
@@ -352,6 +352,11 @@ static bool _3d_powergating_disabled(void)
return 1;
}
+/* MPE power gating disabled as it causes syncpt hangs */
+static bool _mpe_powergating_disabled(void)
+{
+ return 1;
+}
#if !defined(CONFIG_ARCH_TEGRA_2x_SOC)
int nvhost_module_get_rate(struct nvhost_module *mod, unsigned long *rate,
int index)
@@ -505,16 +510,22 @@ int nvhost_module_init(struct nvhost_module *mod, const char *name,
} else if (strcmp(name, "mpe") == 0)
mod->powergate_id = TEGRA_POWERGATE_MPE;
+ if (mod->powergate_id == TEGRA_POWERGATE_MPE
+ && _mpe_powergating_disabled()) {
+ tegra_unpowergate_partition(mod->powergate_id);
+ mod->powergate_id = -1;
+ }
+
if (mod->powergate_id == TEGRA_POWERGATE_3D
&& _3d_powergating_disabled()) {
tegra_unpowergate_partition(mod->powergate_id);
mod->powergate_id = -1;
#ifdef CONFIG_ARCH_TEGRA_3x_SOC
- if (mod->powergate_id2 == TEGRA_POWERGATE_3D1) {
- tegra_unpowergate_partition(mod->powergate_id2);
- mod->powergate_id2 = -1;
- }
+ if (mod->powergate_id2 == TEGRA_POWERGATE_3D1) {
+ tegra_unpowergate_partition(mod->powergate_id2);
+ mod->powergate_id2 = -1;
+ }
#endif
}