enum decon_flag_bits {
BIT_CLKS_ENABLED,
+ BIT_IRQS_ENABLED,
BIT_WIN_UPDATED,
BIT_SUSPENDED
};
val |= VIDINTCON0_INTFRMEN | VIDINTCON0_FRAMESEL_FP;
writel(val, ctx->addr + DECON_VIDINTCON0);
+ set_bit(BIT_IRQS_ENABLED, &ctx->flags);
return 0;
}
{
struct decon_context *ctx = crtc->ctx;
+ clear_bit(BIT_IRQS_ENABLED, &ctx->flags);
if (test_bit(BIT_SUSPENDED, &ctx->flags))
return;
(ctx->out_type & I80_HW_TRG))
return;
- if (test_and_clear_bit(BIT_WIN_UPDATED, &ctx->flags))
+ 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);
}