aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos/exynos_drm_fimd.c
diff options
context:
space:
mode:
authorRahul Sharma <rahul.sharma@samsung.com>2014-05-28 02:11:11 -0400
committerInki Dae <daeinki@gmail.com>2014-06-01 13:07:12 -0400
commit972145c741df9a259f3cdc89c974b6e1bfadcf6e (patch)
treef0875b4df9c01e1ac9c332516c22f61750f49ae5 /drivers/gpu/drm/exynos/exynos_drm_fimd.c
parent7a80ec79f0328cc8829c901666adca968026f82d (diff)
drm/exynos: remove hardware overlays disable from fimd probe
System hangs when FIMD registers are accessed to disable hardware overlays. This is because of the clocks which are not enabled before register access. 'Hardware overlay disable' is cleaned from the FIMD probe. Signed-off-by: Rahul Sharma <rahul.sharma@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_fimd.c')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index bd30d0c05950..2ec634f7930a 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -703,19 +703,6 @@ static void fimd_win_disable(struct exynos_drm_manager *mgr, int zpos)
703 win_data->enabled = false; 703 win_data->enabled = false;
704} 704}
705 705
706static void fimd_clear_win(struct fimd_context *ctx, int win)
707{
708 writel(0, ctx->regs + WINCON(win));
709 writel(0, ctx->regs + VIDOSD_A(win));
710 writel(0, ctx->regs + VIDOSD_B(win));
711 writel(0, ctx->regs + VIDOSD_C(win));
712
713 if (win == 1 || win == 2)
714 writel(0, ctx->regs + VIDOSD_D(win));
715
716 fimd_shadow_protect_win(ctx, win, false);
717}
718
719static void fimd_window_suspend(struct exynos_drm_manager *mgr) 706static void fimd_window_suspend(struct exynos_drm_manager *mgr)
720{ 707{
721 struct fimd_context *ctx = mgr->ctx; 708 struct fimd_context *ctx = mgr->ctx;
@@ -898,16 +885,12 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
898{ 885{
899 struct fimd_context *ctx = fimd_manager.ctx; 886 struct fimd_context *ctx = fimd_manager.ctx;
900 struct drm_device *drm_dev = data; 887 struct drm_device *drm_dev = data;
901 int win;
902 888
903 fimd_mgr_initialize(&fimd_manager, drm_dev); 889 fimd_mgr_initialize(&fimd_manager, drm_dev);
904 exynos_drm_crtc_create(&fimd_manager); 890 exynos_drm_crtc_create(&fimd_manager);
905 if (ctx->display) 891 if (ctx->display)
906 exynos_drm_create_enc_conn(drm_dev, ctx->display); 892 exynos_drm_create_enc_conn(drm_dev, ctx->display);
907 893
908 for (win = 0; win < WINDOWS_NR; win++)
909 fimd_clear_win(ctx, win);
910
911 return 0; 894 return 0;
912 895
913} 896}