Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

OMAPDSS: DISPC: Remove Fake VSYNC support

Fake VSYNC support is a hack and has some bugs in it. It isn't used by any user
of DSS. Remove Fake VSYNC support. For DSI command mode and RFBI panels, a user
of DSS should wait for the completion of a frame by using the panel driver's
sync op.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

authored by

Archit Taneja and committed by
Tomi Valkeinen
408d9dbb a2e5d827

-35
-9
drivers/video/omap2/dss/Kconfig
··· 90 90 91 91 See http://www.mipi.org/ for DSI spesifications. 92 92 93 - config OMAP2_DSS_FAKE_VSYNC 94 - bool "Fake VSYNC irq from manual update displays" 95 - default n 96 - help 97 - If this is selected, DSI will generate a fake DISPC VSYNC interrupt 98 - when DSI has sent a frame. This is only needed with DSI or RFBI 99 - displays using manual mode, and you want VSYNC to, for example, 100 - time animation. 101 - 102 93 config OMAP2_DSS_MIN_FCK_PER_PCK 103 94 int "Minimum FCK/PCK ratio (for scaling)" 104 95 range 0 32
-21
drivers/video/omap2/dss/dispc.c
··· 3441 3441 return 0; 3442 3442 } 3443 3443 3444 - #ifdef CONFIG_OMAP2_DSS_FAKE_VSYNC 3445 - void dispc_fake_vsync_irq(void) 3446 - { 3447 - u32 irqstatus = DISPC_IRQ_VSYNC; 3448 - int i; 3449 - 3450 - WARN_ON(!in_interrupt()); 3451 - 3452 - for (i = 0; i < DISPC_MAX_NR_ISRS; i++) { 3453 - struct omap_dispc_isr_data *isr_data; 3454 - isr_data = &dispc.registered_isr[i]; 3455 - 3456 - if (!isr_data->isr) 3457 - continue; 3458 - 3459 - if (isr_data->mask & irqstatus) 3460 - isr_data->isr(isr_data->arg, irqstatus); 3461 - } 3462 - } 3463 - #endif 3464 - 3465 3444 static void _omap_dispc_initialize_irq(void) 3466 3445 { 3467 3446 unsigned long flags;
-4
drivers/video/omap2/dss/dsi.c
··· 4152 4152 __cancel_delayed_work(&dsi->framedone_timeout_work); 4153 4153 4154 4154 dsi_handle_framedone(dsidev, 0); 4155 - 4156 - #ifdef CONFIG_OMAP2_DSS_FAKE_VSYNC 4157 - dispc_fake_vsync_irq(); 4158 - #endif 4159 4155 } 4160 4156 4161 4157 int omap_dsi_update(struct omap_dss_device *dssdev, int channel,
-1
drivers/video/omap2/dss/dss.h
··· 396 396 void dispc_dump_irqs(struct seq_file *s); 397 397 void dispc_dump_regs(struct seq_file *s); 398 398 void dispc_irq_handler(void); 399 - void dispc_fake_vsync_irq(void); 400 399 401 400 int dispc_runtime_get(void); 402 401 void dispc_runtime_put(void);