@@ -69,7 +69,8 @@ static irqreturn_t vsp1_irq_handler(int irq, void *data)
i, wpf->entity.pipe->underrun_count);
}
- if (status & VI6_WPF_IRQ_STA_DFE) {
+ if (status & VI6_WPF_IRQ_STA_DFE ||
+ status & VI6_WPF_IRQ_STA_FRE) {
vsp1_pipeline_frame_end(wpf->entity.pipe);
ret = IRQ_HANDLED;
}
@@ -239,6 +239,7 @@ static void wpf_configure_stream(struct vsp1_entity *entity,
const struct v4l2_mbus_framefmt *source_format;
const struct v4l2_mbus_framefmt *sink_format;
unsigned int index = wpf->entity.index;
+ u32 irqmask = 0;
unsigned int i;
u32 outfmt = 0;
u32 srcrpf = 0;
@@ -312,9 +313,9 @@ static void wpf_configure_stream(struct vsp1_entity *entity,
vsp1_wpf_write(wpf, dlb, VI6_WPF_SRCRPF, srcrpf);
/* Enable interrupts. */
+ irqmask = VI6_WPF_IRQ_ENB_DFEE | (pipe->iif ? VI6_WPF_IRQ_ENB_FREE : 0);
vsp1_dl_body_write(dlb, VI6_WPF_IRQ_STA(index), 0);
- vsp1_dl_body_write(dlb, VI6_WPF_IRQ_ENB(index),
- VI6_WPF_IRQ_ENB_DFEE);
+ vsp1_dl_body_write(dlb, VI6_WPF_IRQ_ENB(index), irqmask);
/*
* Configure writeback for display pipelines (the wpf writeback flag is
Enable the "FrameEnd" interrupt to support the VSPX operations. The frame completion interrupt signals that the transfer of the config buffer and image buffer to the ISP has completed. Enable the interrupt source if the pipe has an IIF entity, such as in the VSPX case. Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com> --- drivers/media/platform/renesas/vsp1/vsp1_drv.c | 3 ++- drivers/media/platform/renesas/vsp1/vsp1_wpf.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-)