diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/tegra/dc/dc.c | 15 | ||||
-rw-r--r-- | drivers/video/tegra/fb.c | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/dc.c b/drivers/video/tegra/dc/dc.c index 4b3bacc7be60..3e5e0b386918 100644 --- a/drivers/video/tegra/dc/dc.c +++ b/drivers/video/tegra/dc/dc.c @@ -2376,6 +2376,21 @@ bool tegra_dc_stats_get(struct tegra_dc *dc) return true; } +/* make the screen blank by disabling all windows */ +void tegra_dc_blank(struct tegra_dc *dc) +{ + struct tegra_dc_win *dcwins[DC_N_WINDOWS]; + unsigned i; + + for (i = 0; i < DC_N_WINDOWS; i++) { + dcwins[i] = tegra_dc_get_window(dc, i); + dcwins[i]->flags &= ~TEGRA_WIN_FLAG_ENABLED; + } + + tegra_dc_update_windows(dcwins, DC_N_WINDOWS); + tegra_dc_sync_windows(dcwins, DC_N_WINDOWS); +} + static void _tegra_dc_disable(struct tegra_dc *dc) { _tegra_dc_controller_disable(dc); diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c index b170bcdcba2c..72176b7e99a5 100644 --- a/drivers/video/tegra/fb.c +++ b/drivers/video/tegra/fb.c @@ -182,10 +182,14 @@ static int tegra_fb_blank(int blank, struct fb_info *info) return 0; case FB_BLANK_NORMAL: + dev_dbg(&tegra_fb->ndev->dev, "blank - normal\n"); + tegra_dc_blank(tegra_fb->win->dc); + return 0; + case FB_BLANK_VSYNC_SUSPEND: case FB_BLANK_HSYNC_SUSPEND: case FB_BLANK_POWERDOWN: - dev_dbg(&tegra_fb->ndev->dev, "blank\n"); + dev_dbg(&tegra_fb->ndev->dev, "blank - powerdown\n"); tegra_dc_disable(tegra_fb->win->dc); return 0; |