diff options
author | Jon Mayo <jmayo@nvidia.com> | 2011-08-31 18:01:45 -0700 |
---|---|---|
committer | Annamaria Pyreddy <apyreddy@nvidia.com> | 2011-09-13 15:13:00 -0700 |
commit | 027e44f4c68ad2d3418083290da6f7d379077d67 (patch) | |
tree | fbce6e273ea01981ec7182bfbf6f85fb941f445e | |
parent | 5c1b33b215a56d4eaaeeb39702dd8f6e30c2f070 (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.c | 8 |
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++; |