diff options
-rw-r--r-- | drivers/video/tegra/dc/dc.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index e2daa826e..41413d613 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c | |||
@@ -2349,17 +2349,20 @@ static void _tegra_dc_controller_disable(struct tegra_dc *dc) | |||
2349 | clk_disable(dc->clk); | 2349 | clk_disable(dc->clk); |
2350 | tegra_dvfs_set_rate(dc->clk, 0); | 2350 | tegra_dvfs_set_rate(dc->clk, 0); |
2351 | 2351 | ||
2352 | for (i = 0; i < DC_N_WINDOWS; i++) { | 2352 | if (dc->out && dc->out->disable) |
2353 | dc->out->disable(); | ||
2354 | |||
2355 | for (i = 0; i < dc->n_windows; i++) { | ||
2353 | struct tegra_dc_win *w = &dc->windows[i]; | 2356 | struct tegra_dc_win *w = &dc->windows[i]; |
2357 | |||
2358 | /* reset window bandwidth */ | ||
2354 | w->bandwidth = 0; | 2359 | w->bandwidth = 0; |
2355 | w->new_bandwidth = 0; | 2360 | w->new_bandwidth = 0; |
2356 | } | ||
2357 | 2361 | ||
2358 | if (dc->out && dc->out->disable) | 2362 | /* disable windows */ |
2359 | dc->out->disable(); | 2363 | w->flags &= ~TEGRA_WIN_FLAG_ENABLED; |
2360 | 2364 | ||
2361 | /* flush any pending syncpt waits */ | 2365 | /* flush any pending syncpt waits */ |
2362 | for (i = 0; i < dc->n_windows; i++) { | ||
2363 | while (dc->syncpt[i].min < dc->syncpt[i].max) { | 2366 | while (dc->syncpt[i].min < dc->syncpt[i].max) { |
2364 | dc->syncpt[i].min++; | 2367 | dc->syncpt[i].min++; |
2365 | nvhost_syncpt_cpu_incr(&dc->ndev->host->syncpt, | 2368 | nvhost_syncpt_cpu_incr(&dc->ndev->host->syncpt, |