diff options
author | Joonyoung Shim <jy0922.shim@samsung.com> | 2015-06-12 04:27:16 -0400 |
---|---|---|
committer | Inki Dae <daeinki@gmail.com> | 2015-06-19 11:32:59 -0400 |
commit | b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8 (patch) | |
tree | 40470f6581cc5a67ed24118d608d96e6ebc6bbd6 | |
parent | c329f667ba3392c3270902335690f548a2778374 (diff) |
drm/exynos: initialize VIDCON0 when fimd is disabled
When the fimd is disabled by fimd_disable(), enabled overlay layers also
are disabled. If clocks for fimd are enabled by fimd_enable() on this
case, it can lead IOMMU page fault. The reason is that VIDCON0_ENVID and
VIDCON0_ENVID_F bits of VIDCON0 register are set still even though fimd
is disabled, so it may continue display output of prior when clocks for
fimd are enabled again.
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index eafcf07987a6..324055f032ec 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c | |||
@@ -801,6 +801,8 @@ static void fimd_disable(struct exynos_drm_crtc *crtc) | |||
801 | for (i = 0; i < WINDOWS_NR; i++) | 801 | for (i = 0; i < WINDOWS_NR; i++) |
802 | fimd_win_disable(crtc, i); | 802 | fimd_win_disable(crtc, i); |
803 | 803 | ||
804 | writel(0, ctx->regs + VIDCON0); | ||
805 | |||
804 | clk_disable_unprepare(ctx->lcd_clk); | 806 | clk_disable_unprepare(ctx->lcd_clk); |
805 | clk_disable_unprepare(ctx->bus_clk); | 807 | clk_disable_unprepare(ctx->bus_clk); |
806 | 808 | ||