summaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorJoonyoung Shim2015-06-12 10:27:16 +0200
committerInki Dae2015-06-19 17:32:59 +0200
commitb74f14fd5c98b4cbd0763ea1841478eef5bdb7d8 (patch)
tree40470f6581cc5a67ed24118d608d96e6ebc6bbd6 /drivers/gpu
parentdrm/exynos: remove chained calls to enable (diff)
downloadkernel-qcow2-linux-b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8.tar.gz
kernel-qcow2-linux-b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8.tar.xz
kernel-qcow2-linux-b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8.zip
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>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c2
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)
for (i = 0; i < WINDOWS_NR; i++)
fimd_win_disable(crtc, i);
+ writel(0, ctx->regs + VIDCON0);
+
clk_disable_unprepare(ctx->lcd_clk);
clk_disable_unprepare(ctx->bus_clk);