diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-11-08 03:01:33 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-11-27 05:27:01 -0500 |
commit | cffa947d2769f3249beecb499b7d4083feeeb267 (patch) | |
tree | db5c45a208e4cb0666b9ce0ee0cd8cf33278c9d7 /drivers/video/omap2 | |
parent | e870f212324b451ff17a1c78739d3ab54ea092cf (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.c | 11 |
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 | ||
544 | u32 dispc_mgr_get_framedone_irq(enum omap_channel channel) | 547 | u32 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 | ||
4100 | static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = { | 4107 | static 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 | ||
4116 | static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = { | 4124 | static 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 | ||
4132 | static const struct dispc_features omap44xx_dispc_feats __initconst = { | 4141 | static const struct dispc_features omap44xx_dispc_feats __initconst = { |