diff options
author | Gustavo Diaz Prado <x0083741@ti.com> | 2009-12-10 17:43:26 -0600 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-12-17 21:57:22 +0530 |
commit | 51ed3bf6b44b0eee684f9dbae677c877b96b6eb7 (patch) | |
tree | 550bf2cec986993bb81a4ba2deafe6fe02b32290 | |
parent | 8203f4dd8c7e8e3a457fdea5e6cd7309e22e0e94 (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-x | drivers/video/omap2/dss/dispc.c | 16 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dsi.c | 2 | ||||
-rwxr-xr-x | drivers/video/omap2/dss/dsi2.c | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss.h | 2 |
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); |