aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-11-08 03:01:33 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-11-27 05:27:01 -0500
commitcffa947d2769f3249beecb499b7d4083feeeb267 (patch)
treedb5c45a208e4cb0666b9ce0ee0cd8cf33278c9d7 /drivers/video/omap2
parente870f212324b451ff17a1c78739d3ab54ea092cf (diff)
OMAPDSS: DISPC: add no_framedone_tv feat
OMAP2/3 do not have FRAMEDONETV irq, but later omaps do. We currently always return 0 from dispc_mgr_get_framedone_irq() for TV output to be compatible with OMAP2/3. This patch implements "no_framedone_tv" dispc-feature that is used in dispc_mgr_get_framedone_irq to return either 0 for OMAP2/3, or the correct IRQ number for FRAMEDONETV on OMAP4+. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r--drivers/video/omap2/dss/dispc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 3d0ff5b0d0ec..21fa587b121c 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -104,6 +104,9 @@ struct dispc_features {
104 104
105 /* swap GFX & WB fifos */ 105 /* swap GFX & WB fifos */
106 bool gfx_fifo_workaround:1; 106 bool gfx_fifo_workaround:1;
107
108 /* no DISPC_IRQ_FRAMEDONETV on this SoC */
109 bool no_framedone_tv:1;
107}; 110};
108 111
109#define DISPC_MAX_NR_FIFOS 5 112#define DISPC_MAX_NR_FIFOS 5
@@ -191,7 +194,7 @@ static const struct {
191 [OMAP_DSS_CHANNEL_DIGIT] = { 194 [OMAP_DSS_CHANNEL_DIGIT] = {
192 .name = "DIGIT", 195 .name = "DIGIT",
193 .vsync_irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN, 196 .vsync_irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN,
194 .framedone_irq = 0, 197 .framedone_irq = DISPC_IRQ_FRAMEDONETV,
195 .sync_lost_irq = DISPC_IRQ_SYNC_LOST_DIGIT, 198 .sync_lost_irq = DISPC_IRQ_SYNC_LOST_DIGIT,
196 .reg_desc = { 199 .reg_desc = {
197 [DISPC_MGR_FLD_ENABLE] = { DISPC_CONTROL, 1, 1 }, 200 [DISPC_MGR_FLD_ENABLE] = { DISPC_CONTROL, 1, 1 },
@@ -543,6 +546,9 @@ u32 dispc_mgr_get_vsync_irq(enum omap_channel channel)
543 546
544u32 dispc_mgr_get_framedone_irq(enum omap_channel channel) 547u32 dispc_mgr_get_framedone_irq(enum omap_channel channel)
545{ 548{
549 if (channel == OMAP_DSS_CHANNEL_DIGIT && dispc.feat->no_framedone_tv)
550 return 0;
551
546 return mgr_desc[channel].framedone_irq; 552 return mgr_desc[channel].framedone_irq;
547} 553}
548 554
@@ -4095,6 +4101,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
4095 .calc_scaling = dispc_ovl_calc_scaling_24xx, 4101 .calc_scaling = dispc_ovl_calc_scaling_24xx,
4096 .calc_core_clk = calc_core_clk_24xx, 4102 .calc_core_clk = calc_core_clk_24xx,
4097 .num_fifos = 3, 4103 .num_fifos = 3,
4104 .no_framedone_tv = true,
4098}; 4105};
4099 4106
4100static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = { 4107static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
@@ -4111,6 +4118,7 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
4111 .calc_scaling = dispc_ovl_calc_scaling_34xx, 4118 .calc_scaling = dispc_ovl_calc_scaling_34xx,
4112 .calc_core_clk = calc_core_clk_34xx, 4119 .calc_core_clk = calc_core_clk_34xx,
4113 .num_fifos = 3, 4120 .num_fifos = 3,
4121 .no_framedone_tv = true,
4114}; 4122};
4115 4123
4116static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = { 4124static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
@@ -4127,6 +4135,7 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
4127 .calc_scaling = dispc_ovl_calc_scaling_34xx, 4135 .calc_scaling = dispc_ovl_calc_scaling_34xx,
4128 .calc_core_clk = calc_core_clk_34xx, 4136 .calc_core_clk = calc_core_clk_34xx,
4129 .num_fifos = 3, 4137 .num_fifos = 3,
4138 .no_framedone_tv = true,
4130}; 4139};
4131 4140
4132static const struct dispc_features omap44xx_dispc_feats __initconst = { 4141static const struct dispc_features omap44xx_dispc_feats __initconst = {