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

YoungJun Cho yj44.cho at samsung.com
Thu Nov 13 21:28:05 PST 2014


Hi JoonYoung,

On 11/14/2014 02:12 PM, Joonyoung Shim wrote:
> 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.

That sounds reasonable.
For that, we should modify "fimd_irq_handler()" not to call 
"drm_handle_vblank()" in I80 interface.

Thank you.
Best regards YJ

>
>> 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