[PATCH] drm/exynos: remove hardware overlays disable from fimd probe

Andrzej Hajda a.hajda at samsung.com
Mon Jun 2 02:11:32 PDT 2014


Hi Rahul,

On 05/28/2014 08:11 AM, Rahul Sharma wrote:
> 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 at samsung.com>

This patch causes regression on some exynos4210-universal_c210 devices,
everything works expect colors are incorrect - it seems blue component
is very dark, almost black.

Regards
Andrzej

> ---
> Based on exynos-drm-next branch.
> 
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c |   17 -----------------
>  1 file changed, 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index bd30d0c..2ec634f 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)
>  	win_data->enabled = false;
>  }
>  
> -static void fimd_clear_win(struct fimd_context *ctx, int win)
> -{
> -	writel(0, ctx->regs + WINCON(win));
> -	writel(0, ctx->regs + VIDOSD_A(win));
> -	writel(0, ctx->regs + VIDOSD_B(win));
> -	writel(0, ctx->regs + VIDOSD_C(win));
> -
> -	if (win == 1 || win == 2)
> -		writel(0, ctx->regs + VIDOSD_D(win));
> -
> -	fimd_shadow_protect_win(ctx, win, false);
> -}
> -
>  static void fimd_window_suspend(struct exynos_drm_manager *mgr)
>  {
>  	struct fimd_context *ctx = mgr->ctx;
> @@ -898,16 +885,12 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
>  {
>  	struct fimd_context *ctx = fimd_manager.ctx;
>  	struct drm_device *drm_dev = data;
> -	int win;
>  
>  	fimd_mgr_initialize(&fimd_manager, drm_dev);
>  	exynos_drm_crtc_create(&fimd_manager);
>  	if (ctx->display)
>  		exynos_drm_create_enc_conn(drm_dev, ctx->display);
>  
> -	for (win = 0; win < WINDOWS_NR; win++)
> -		fimd_clear_win(ctx, win);
> -
>  	return 0;
>  
>  }
> 



More information about the dri-devel mailing list