> -----Original Message----- > From: JAIN, AMBER > Sent: Tuesday, June 07, 2011 8:18 PM > To: linux-media@xxxxxxxxxxxxxxx > Cc: Hiremath, Vaibhav; Semwal, Sumit; JAIN, AMBER > Subject: [PATCH 1/6] V4L2: OMAP: VOUT: isr handling extended for DPI and > HDMI interface [Hiremath, Vaibhav] Few minor comments below - > > Extending the omap vout isr handling for: > - secondary lcd over DPI interface, > - HDMI interface. > [Hiremath, Vaibhav] It would be useful to mention about OMAP4 DSS block (these are new additions compared to OAMP3), that's where both the interfaces are getting used, right? > Signed-off-by: Amber Jain <amber@xxxxxx> > --- > drivers/media/video/omap/omap_vout.c | 26 +++++++++++++++++++------- > 1 files changed, 19 insertions(+), 7 deletions(-) > > diff --git a/drivers/media/video/omap/omap_vout.c > b/drivers/media/video/omap/omap_vout.c > index a831241..6fe7efa 100644 > --- a/drivers/media/video/omap/omap_vout.c > +++ b/drivers/media/video/omap/omap_vout.c > @@ -544,10 +544,20 @@ void omap_vout_isr(void *arg, unsigned int > irqstatus) > > spin_lock(&vout->vbq_lock); > do_gettimeofday(&timevalue); > - if (cur_display->type == OMAP_DISPLAY_TYPE_DPI) { > - if (!(irqstatus & DISPC_IRQ_VSYNC)) > - goto vout_isr_err; > > + if (cur_display->type != OMAP_DISPLAY_TYPE_VENC) { > + switch (cur_display->type) { > + case OMAP_DISPLAY_TYPE_DPI: > + if (!(irqstatus & (DISPC_IRQ_VSYNC | DISPC_IRQ_VSYNC2))) > + goto vout_isr_err; > + break; > + case OMAP_DISPLAY_TYPE_HDMI: > + if (!(irqstatus & DISPC_IRQ_EVSYNC_EVEN)) > + goto vout_isr_err; > + break; > + default: > + goto vout_isr_err; > + } [Hiremath, Vaibhav] how about implementing this like, if (cur_display->type != OMAP_DISPLAY_TYPE_VENC) { unsigned int status; switch (cur_display->type) { case OMAP_DISPLAY_TYPE_DPI: status = DISPC_IRQ_VSYNC | DISPC_IRQ_VSYNC2; break; case OMAP_DISPLAY_TYPE_HDMI: status = DISPC_IRQ_EVSYNC_EVEN; break; default: goto vout_isr_err; } If (!(irqstatus & status)) goto vout_isr_err; Thanks, Vaibhav > if (!vout->first_int && (vout->cur_frm != vout->next_frm)) { > vout->cur_frm->ts = timevalue; > vout->cur_frm->state = VIDEOBUF_DONE; > @@ -571,7 +581,7 @@ void omap_vout_isr(void *arg, unsigned int irqstatus) > ret = omapvid_init(vout, addr); > if (ret) > printk(KERN_ERR VOUT_NAME > - "failed to set overlay info\n"); > + [Hiremath, Vaibhav] "failed to set overlay info\n"); > /* Enable the pipeline and set the Go bit */ > ret = omapvid_apply_changes(vout); > if (ret) > @@ -925,7 +935,7 @@ static int omap_vout_release(struct file *file) > u32 mask = 0; > > mask = DISPC_IRQ_VSYNC | DISPC_IRQ_EVSYNC_EVEN | > - DISPC_IRQ_EVSYNC_ODD; > + DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_VSYNC2; > omap_dispc_unregister_isr(omap_vout_isr, vout, mask); > vout->streaming = 0; > > @@ -1596,7 +1606,8 @@ static int vidioc_streamon(struct file *file, void > *fh, enum v4l2_buf_type i) > addr = (unsigned long) vout->queued_buf_addr[vout->cur_frm->i] > + vout->cropped_offset; > > - mask = DISPC_IRQ_VSYNC | DISPC_IRQ_EVSYNC_EVEN | > DISPC_IRQ_EVSYNC_ODD; > + mask = DISPC_IRQ_VSYNC | DISPC_IRQ_EVSYNC_EVEN | > DISPC_IRQ_EVSYNC_ODD > + | DISPC_IRQ_VSYNC2; > > omap_dispc_register_isr(omap_vout_isr, vout, mask); > > @@ -1646,7 +1657,8 @@ static int vidioc_streamoff(struct file *file, void > *fh, enum v4l2_buf_type i) > return -EINVAL; > > vout->streaming = 0; > - mask = DISPC_IRQ_VSYNC | DISPC_IRQ_EVSYNC_EVEN | > DISPC_IRQ_EVSYNC_ODD; > + mask = DISPC_IRQ_VSYNC | DISPC_IRQ_EVSYNC_EVEN | > DISPC_IRQ_EVSYNC_ODD > + | DISPC_IRQ_VSYNC2; > > omap_dispc_unregister_isr(omap_vout_isr, vout, mask); > > -- > 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html