summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Diaz Prado <x0083741@ti.com>2009-12-10 17:43:26 -0600
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2009-12-17 21:57:22 +0530
commit51ed3bf6b44b0eee684f9dbae677c877b96b6eb7 (patch)
tree550bf2cec986993bb81a4ba2deafe6fe02b32290
parent8203f4dd8c7e8e3a457fdea5e6cd7309e22e0e94 (diff)
omap4: dss: Corrects FAKE_VSYNC notification for DSI displays
Corrects FAKE_VSYNC notification for DSI displays. Each display notifies its own FAKE_VSYNC independently as VSYNC and VSYNC2. Signed-off-by: Gustavo Diaz Prado <x0083741@ti.com> Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
-rwxr-xr-xdrivers/video/omap2/dss/dispc.c16
-rw-r--r--drivers/video/omap2/dss/dsi.c2
-rwxr-xr-xdrivers/video/omap2/dss/dsi2.c2
-rw-r--r--drivers/video/omap2/dss/dss.h2
4 files changed, 17 insertions, 5 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index bbdcb571e4d9..4a52f2439e7e 100755
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -4177,11 +4177,23 @@ int omap_dispc_wait_for_irq_interruptible_timeout(u32 irqmask,
}
#ifdef CONFIG_OMAP2_DSS_FAKE_VSYNC
-void dispc_fake_vsync_irq(void)
+void dispc_fake_vsync_irq(int disp_id)
{
- u32 irqstatus = DISPC_IRQ_VSYNC;
+ u32 irqstatus;
int i;
+ switch (disp_id) {
+ case 0:
+ irqstatus = DISPC_IRQ_VSYNC;
+ break;
+ case 1:
+ irqstatus = DISPC_IRQ_VSYNC2;
+ break;
+ default:
+ DSSERR("Invalid display id for fake vsync\n");
+ return;
+ }
+
for (i = 0; i < DISPC_MAX_NR_ISRS; i++) {
struct omap_dispc_isr_data *isr_data;
isr_data = &dispc.registered_isr[i];
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
index 361ed37a601a..1c5adf0de1db 100644
--- a/drivers/video/omap2/dss/dsi.c
+++ b/drivers/video/omap2/dss/dsi.c
@@ -3012,7 +3012,7 @@ static void dsi_handle_framedone(void)
DSSERR("BTA after framedone failed\n");
#endif
#ifdef CONFIG_OMAP2_DSS_FAKE_VSYNC
- dispc_fake_vsync_irq();
+ dispc_fake_vsync_irq(0);
#endif
}
diff --git a/drivers/video/omap2/dss/dsi2.c b/drivers/video/omap2/dss/dsi2.c
index fcf501bb4201..526b575f7aef 100755
--- a/drivers/video/omap2/dss/dsi2.c
+++ b/drivers/video/omap2/dss/dsi2.c
@@ -3011,7 +3011,7 @@ static void dsi2_handle_framedone(void)
DSSERR("BTA after framedone failed\n");
#endif
#ifdef CONFIG_OMAP2_DSS_FAKE_VSYNC
- dispc_fake_vsync_irq();
+ dispc_fake_vsync_irq(1);
#endif
}
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index a5b3b93a35aa..ec25c3182c65 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -266,7 +266,7 @@ void dispc_exit(void);
void dispc_dump_clocks(struct seq_file *s);
void dispc_dump_regs(struct seq_file *s);
void dispc_irq_handler(void);
-void dispc_fake_vsync_irq(void);
+void dispc_fake_vsync_irq(int disp_id);
void dispc_save_context(void);
void dispc_restore_context(void);