summaryrefslogtreecommitdiff
path: root/drivers/video/tegra
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/tegra')
-rw-r--r--drivers/video/tegra/dc/dc.c8
-rw-r--r--drivers/video/tegra/dc/dc_priv.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index 43d31840fd34..a61e86fb5dd7 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1103,7 +1103,9 @@ void tegra_dc_disable(struct tegra_dc *dc)
if (dc->enabled) {
dc->enabled = false;
- _tegra_dc_disable(dc);
+
+ if (!dc->suspended)
+ _tegra_dc_disable(dc);
}
mutex_unlock(&dc->lock);
@@ -1335,6 +1337,8 @@ static int tegra_dc_suspend(struct nvhost_device *ndev, pm_message_t state)
if (dc->enabled) {
tegra_fb_suspend(dc->fb);
_tegra_dc_disable(dc);
+
+ dc->suspended = true;
}
mutex_unlock(&dc->lock);
@@ -1348,6 +1352,8 @@ static int tegra_dc_resume(struct nvhost_device *ndev)
dev_info(&ndev->dev, "resume\n");
mutex_lock(&dc->lock);
+ dc->suspended = false;
+
if (dc->enabled)
_tegra_dc_enable(dc);
diff --git a/drivers/video/tegra/dc/dc_priv.h b/drivers/video/tegra/dc/dc_priv.h
index 3f7fdbff023b..c8476f8b5ffc 100644
--- a/drivers/video/tegra/dc/dc_priv.h
+++ b/drivers/video/tegra/dc/dc_priv.h
@@ -63,6 +63,7 @@ struct tegra_dc {
struct clk *emc_clk;
bool enabled;
+ bool suspended;
struct tegra_dc_out *out;
struct tegra_dc_out_ops *out_ops;