summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/host/nvhost_acm.c
diff options
context:
space:
mode:
authorArto Merilainen <amerilainen@nvidia.com>2014-01-27 15:35:02 +0200
committerTerje Bergstrom <tbergstrom@nvidia.com>2014-01-29 03:35:13 -0800
commit26a801dc5fd89df910c0b03c094c5d17d1e9866f (patch)
tree0f3f6191465841d3a44680172162b97d2b4f469a /drivers/video/tegra/host/nvhost_acm.c
parentbf09d3dfdbb185850d023179f352d34d3f852178 (diff)
video: tegra: host: Module suspend informs EDP
GPU scaling informs the current GPU load to EDP each time we change the GPU frequency. Usually the load vanishes and hence this approach has proven to work well. However, occassionally the GPU load is high on the last time we estimate the frequency (before suspending) and this leads EDP to think that GPU is busy even though it is already turned off. This patch adds a path to inform EDP about zero load when we are suspending the GPU EDP device. Change-Id: Idfe72ad6afbf2aa01cc30408b7f0890c76a89f62 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/360431 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/host/nvhost_acm.c')
-rw-r--r--drivers/video/tegra/host/nvhost_acm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/video/tegra/host/nvhost_acm.c b/drivers/video/tegra/host/nvhost_acm.c
index d1f81ea2211f..319c1e73be4e 100644
--- a/drivers/video/tegra/host/nvhost_acm.c
+++ b/drivers/video/tegra/host/nvhost_acm.c
@@ -33,6 +33,7 @@
#include <linux/tegra-powergate.h>
#include <linux/tegra-soc.h>
#include <trace/events/nvhost.h>
+#include <linux/platform_data/tegra_edp.h>
#include <mach/mc.h>
#include <mach/pm_domains.h>
@@ -598,6 +599,10 @@ int nvhost_module_suspend(struct device *dev)
if (pdata->suspend_ndev)
pdata->suspend_ndev(dev);
+ /* inform edp governor that there is no load any more */
+ if (pdata->gpu_edp_device)
+ tegra_edp_notify_gpu_load(0);
+
return 0;
}
EXPORT_SYMBOL(nvhost_module_suspend);