From: Joonyoung Shim Date: Fri, 12 Jun 2015 08:27:16 +0000 (+0900) Subject: drm/exynos: initialize VIDCON0 when fimd is disabled X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=b74f14fd5c98b4cbd0763ea1841478eef5bdb7d8;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git 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 Signed-off-by: Inki Dae --- 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);