diff options
author | Archit Taneja <archit@ti.com> | 2010-08-02 12:02:38 +0530 |
---|---|---|
committer | Ricardo Perez Olivares <x0081762@ti.com> | 2010-09-14 19:26:44 -0500 |
commit | a4db8bb6398086befc545d4d43147d847c72cf6d (patch) | |
tree | c1ed91fd897c05356cb10d16a0f91085fe499fd0 /drivers/media | |
parent | 05aac28dee37cf12fbd13710ed8e00588a8af879 (diff) |
V4L2: hdmi changes for omap_vout_isr
Signed-off-by: Archit Taneja <archit@ti.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/omap/omap_vout.c | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c index 745a52396e3e..a0f0c76938be 100644 --- a/drivers/media/video/omap/omap_vout.c +++ b/drivers/media/video/omap/omap_vout.c @@ -1050,7 +1050,9 @@ void omap_vout_isr(void *arg, unsigned int irqstatus) struct omap_vout_device *vout = (struct omap_vout_device *)arg; u32 flags; int irq = 0; - +#if !(CONFIG_OMAP2_DSS_HDMI) + u32 fid; +#endif if (!vout->streaming) return; @@ -1079,6 +1081,13 @@ void omap_vout_isr(void *arg, unsigned int irqstatus) goto vout_isr_err; break; +#if CONFIG_OMAP2_DSS_HDMI + case OMAP_DISPLAY_TYPE_HDMI: + if (!(irqstatus & DISPC_IRQ_EVSYNC_EVEN)) + goto vout_isr_err; + + break; +#else case OMAP_DISPLAY_TYPE_VENC: if (vout->first_int) { vout->first_int = 0; @@ -1113,7 +1122,7 @@ void omap_vout_isr(void *arg, unsigned int irqstatus) } goto venc; } - +#endif default: goto vout_isr_err; } @@ -1128,29 +1137,31 @@ void omap_vout_isr(void *arg, unsigned int irqstatus) if (list_empty(&vout->dma_queue)) goto vout_isr_err; +#if !(CONFIG_OMAP2_DSS_HDMI) venc: - vout->next_frm = list_entry(vout->dma_queue.next, - struct videobuf_buffer, queue); - list_del(&vout->next_frm->queue); - - vout->next_frm->state = VIDEOBUF_ACTIVE; - addr = (unsigned long) - vout->queued_buf_addr[vout->next_frm->i] + - vout->cropped_offset; - uv_addr = (unsigned long)vout->queued_buf_uv_addr[ - vout->next_frm->i] - + vout->cropped_uv_offset; - - /* First save the configuration in ovelray structure */ - ret = omapvid_init(vout, addr, uv_addr); - if (ret) - printk(KERN_ERR VOUT_NAME - "failed to set overlay info\n"); - /* Enable the pipeline and set the Go bit */ - ret = omapvid_apply_changes(vout); - if (ret) - printk(KERN_ERR VOUT_NAME - "failed to change mode\n"); +#endif + vout->next_frm = list_entry(vout->dma_queue.next, + struct videobuf_buffer, queue); + list_del(&vout->next_frm->queue); + + vout->next_frm->state = VIDEOBUF_ACTIVE; + addr = (unsigned long) + vout->queued_buf_addr[vout->next_frm->i] + + vout->cropped_offset; + uv_addr = (unsigned long)vout->queued_buf_uv_addr[ + vout->next_frm->i] + + vout->cropped_uv_offset; + + /* First save the configuration in ovelray structure */ + ret = omapvid_init(vout, addr, uv_addr); + if (ret) + printk(KERN_ERR VOUT_NAME + "failed to set overlay info\n"); + /* Enable the pipeline and set the Go bit */ + ret = omapvid_apply_changes(vout); + if (ret) + printk(KERN_ERR VOUT_NAME + "failed to change mode\n"); vout_isr_err: spin_unlock_irqrestore(&vout->vbq_lock, flags); |