It seems trigger cannot be configured too early, otherwise it does not work in case of panel. The patch fixes also trigger flag logic, previously HW-TRIGGER flag was cleared in case of panel - as a result panel used always software trigger. Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> --- drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c index 7b4f699..9ae913b 100644 --- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c +++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c @@ -151,11 +151,13 @@ static void decon_commit(struct exynos_drm_crtc *crtc) val = CMU_CLKGAGE_MODE_SFR_F | CMU_CLKGAGE_MODE_MEM_F; writel(val, ctx->addr + DECON_CMU); + if (ctx->out_type & (IFTYPE_I80 | I80_HW_TRG)) + decon_setup_trigger(ctx); + /* lcd on and use command if */ val = VIDOUT_LCD_ON; if (ctx->out_type & IFTYPE_I80) { val |= VIDOUT_COMMAND_IF; - decon_setup_trigger(ctx); } else { val |= VIDOUT_RGB_IF; } @@ -380,9 +382,6 @@ static void decon_swreset(struct decon_context *ctx) writel(VIDCON1_VCLK_RUN_VDEN_DISABLE, ctx->addr + DECON_VIDCON1); writel(CRCCTRL_CRCEN | CRCCTRL_CRCSTART_F | CRCCTRL_CRCCLKEN, ctx->addr + DECON_CRCCTRL); - - if (ctx->out_type & IFTYPE_I80) - decon_setup_trigger(ctx); } static void decon_enable(struct exynos_drm_crtc *crtc) @@ -652,9 +651,8 @@ static int exynos5433_decon_probe(struct platform_device *pdev) if (ctx->out_type & IFTYPE_HDMI) { ctx->first_win = 1; - ctx->out_type = IFTYPE_I80; } else if (of_get_child_by_name(dev->of_node, "i80-if-timings")) { - ctx->out_type = IFTYPE_I80; + ctx->out_type |= IFTYPE_I80; } for (i = 0; i < ARRAY_SIZE(decon_clks_name); i++) { -- 1.9.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel