[PATCH 2/2] drm/exynos: use irq_flags instead of triggering

Joonyoung Shim jy0922.shim at samsung.com
Thu Nov 13 21:12:16 PST 2014


Hi,

On 11/14/2014 02:01 PM, YoungJun Cho wrote:
> Hi JoonYoung,
> 
> On 11/14/2014 11:36 AM, Joonyoung Shim wrote:
>> The drm_handle_vblank should be called whenever be vsync, te interrupt
>> means vsync on i80 interface.
> 
> That's right.
> 
>>
>> Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
>> ---
>> Based on lastest exynos-drm-next branch and patch of Youngjun Cho
>> ("drm/exynos: fimd: move handle vblank position in TE handler").
>>
>>   drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> index 033b18b..5cc57f7 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
>> @@ -984,7 +984,7 @@ static void fimd_te_handler(struct exynos_drm_manager *mgr)
>>           wake_up(&ctx->wait_vsync_queue);
>>       }
>>
>> -    if (!atomic_read(&ctx->triggering))
>> +    if (test_bit(0, &ctx->irq_flags))
>>           drm_handle_vblank(ctx->drm_dev, ctx->pipe);
> 
> But after triggering, "fimd_irq_handler()" is called by "lcd_sys" interrupt and that calls "drm_handle_vblank()".
> 

I missed the routine but i think drm_handle_vblank should be called by
vsync interrupt handler. As you know, fimd_irq_handler is not vsync
interrupt handler on i80 interface.

> So I think "fimd_te_handler()" calls "drm_handle_vblank()" only non-triggering condition.
> 
> Thank you.
> Best regards YJ
> 
>>   }
>>
>>
> 
> 



More information about the dri-devel mailing list