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()". So I think "fimd_te_handler()" calls "drm_handle_vblank()" only non-triggering condition. Thank you. Best regards YJ > } > >