summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2010-08-02 12:02:38 +0530
committerRicardo Perez Olivares <x0081762@ti.com>2010-09-14 19:26:44 -0500
commita4db8bb6398086befc545d4d43147d847c72cf6d (patch)
treec1ed91fd897c05356cb10d16a0f91085fe499fd0 /drivers/media
parent05aac28dee37cf12fbd13710ed8e00588a8af879 (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.c59
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);