[PATCH 5/9] drm/exynos/decon5433: kill BIT_IRQS_ENABLED flag

Inki Dae inki.dae at samsung.com
Thu Apr 13 08:33:48 UTC 2017



2017년 04월 05일 16:28에 Andrzej Hajda 이(가) 쓴 글:
> Since DECON uses enable_irq/disable_irq to full control IRQs,
> there is no point in having flags to trace it separately.
> As a bonus condition for software trigger becomes always true,
> so it can be removed.
> 
> Signed-off-by: Andrzej Hajda <a.hajda at samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
> index 5bdf1a0..dc2e69a 100644
> --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
> +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
> @@ -49,7 +49,6 @@ static const char * const decon_clks_name[] = {
>  
>  enum decon_flag_bits {
>  	BIT_CLKS_ENABLED,
> -	BIT_IRQS_ENABLED,
>  	BIT_WIN_UPDATED,
>  	BIT_SUSPENDED
>  };
> @@ -112,8 +111,6 @@ static int decon_enable_vblank(struct exynos_drm_crtc *crtc)
>  	if (!(ctx->out_type & I80_HW_TRG))
>  		enable_irq(ctx->te_irq);
>  
> -	set_bit(BIT_IRQS_ENABLED, &ctx->flags);
> -
>  	return 0;
>  }
>  
> @@ -121,7 +118,6 @@ static void decon_disable_vblank(struct exynos_drm_crtc *crtc)
>  {
>  	struct decon_context *ctx = crtc->ctx;
>  
> -	clear_bit(BIT_IRQS_ENABLED, &ctx->flags);
>  	if (test_bit(BIT_SUSPENDED, &ctx->flags))
>  		return;
>  
> @@ -536,9 +532,7 @@ static irqreturn_t decon_te_irq_handler(int irq, void *dev_id)
>  	    (ctx->out_type & I80_HW_TRG))
>  		return IRQ_HANDLED;
>  
> -	if (test_and_clear_bit(BIT_WIN_UPDATED, &ctx->flags) ||
> -	    test_bit(BIT_IRQS_ENABLED, &ctx->flags))
> -		decon_set_bits(ctx, DECON_TRIGCON, TRIGCON_SWTRIGCMD, ~0);
> +	decon_set_bits(ctx, DECON_TRIGCON, TRIGCON_SWTRIGCMD, ~0);

This code would incur mulfunction if now decon driver uses sw trigger mode.
The panel device on TM2 and TM2E boards supports ALPM mode which makes Panel device to be keeped on with low power even ARM, crtc and encoder devices are off.
In this case, even if decon device is off te interrupt could happen and writing to decon register could be tried.

Thanks,
Inki Dae

>  
>  	return IRQ_HANDLED;
>  }
> 


More information about the dri-devel mailing list