summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2011-08-31 18:01:45 -0700
committerAnnamaria Pyreddy <apyreddy@nvidia.com>2011-09-13 15:13:00 -0700
commit027e44f4c68ad2d3418083290da6f7d379077d67 (patch)
treefbce6e273ea01981ec7182bfbf6f85fb941f445e
parent5c1b33b215a56d4eaaeeb39702dd8f6e30c2f070 (diff)
video: tegra: dc: disable windows on dc disable
When disabling a display, also disable its windows. This forces applications to resend windows on hotplug and resume or they will see a blank screen. Bug 871107 Bug 871652 (cherry picked from commit 945b3333a7e3851999ce5af9088304cf2d4d9be0) Change-Id: Ie98cc437f36bacc74d411786ec317d97e59369a8 Reviewed-on: http://git-master/r/51040 Reviewed-by: Annamaria Pyreddy <apyreddy@nvidia.com> Tested-by: Annamaria Pyreddy <apyreddy@nvidia.com>
-rw-r--r--drivers/video/tegra/dc/dc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c
index b2cb5c404d90..337a3ebf9113 100644
--- a/drivers/video/tegra/dc/dc.c
+++ b/drivers/video/tegra/dc/dc.c
@@ -1507,6 +1507,8 @@ void tegra_dc_enable(struct tegra_dc *dc)
static void _tegra_dc_controller_disable(struct tegra_dc *dc)
{
+ int i;
+
disable_irq(dc->irq);
if (dc->out_ops && dc->out_ops->disable)
@@ -1519,6 +1521,12 @@ static void _tegra_dc_controller_disable(struct tegra_dc *dc)
if (dc->out && dc->out->disable)
dc->out->disable();
+ for (i = 0; i < dc->n_windows; i++) {
+ struct tegra_dc_win *w = &dc->windows[i];
+
+ /* disable windows */
+ w->flags &= ~TEGRA_WIN_FLAG_ENABLED;
+ }
/* flush any pending syncpt waits */
while (dc->syncpt_min < dc->syncpt_max) {
dc->syncpt_min++;