Commit cffa947d authored by Tomi Valkeinen's avatar Tomi Valkeinen

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: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent e870f212
...@@ -104,6 +104,9 @@ struct dispc_features { ...@@ -104,6 +104,9 @@ struct dispc_features {
/* swap GFX & WB fifos */ /* swap GFX & WB fifos */
bool gfx_fifo_workaround:1; bool gfx_fifo_workaround:1;
/* no DISPC_IRQ_FRAMEDONETV on this SoC */
bool no_framedone_tv:1;
}; };
#define DISPC_MAX_NR_FIFOS 5 #define DISPC_MAX_NR_FIFOS 5
...@@ -191,7 +194,7 @@ static const struct { ...@@ -191,7 +194,7 @@ static const struct {
[OMAP_DSS_CHANNEL_DIGIT] = { [OMAP_DSS_CHANNEL_DIGIT] = {
.name = "DIGIT", .name = "DIGIT",
.vsync_irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN, .vsync_irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN,
.framedone_irq = 0, .framedone_irq = DISPC_IRQ_FRAMEDONETV,
.sync_lost_irq = DISPC_IRQ_SYNC_LOST_DIGIT, .sync_lost_irq = DISPC_IRQ_SYNC_LOST_DIGIT,
.reg_desc = { .reg_desc = {
[DISPC_MGR_FLD_ENABLE] = { DISPC_CONTROL, 1, 1 }, [DISPC_MGR_FLD_ENABLE] = { DISPC_CONTROL, 1, 1 },
...@@ -543,6 +546,9 @@ u32 dispc_mgr_get_vsync_irq(enum omap_channel channel) ...@@ -543,6 +546,9 @@ u32 dispc_mgr_get_vsync_irq(enum omap_channel channel)
u32 dispc_mgr_get_framedone_irq(enum omap_channel channel) u32 dispc_mgr_get_framedone_irq(enum omap_channel channel)
{ {
if (channel == OMAP_DSS_CHANNEL_DIGIT && dispc.feat->no_framedone_tv)
return 0;
return mgr_desc[channel].framedone_irq; return mgr_desc[channel].framedone_irq;
} }
...@@ -4095,6 +4101,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = { ...@@ -4095,6 +4101,7 @@ static const struct dispc_features omap24xx_dispc_feats __initconst = {
.calc_scaling = dispc_ovl_calc_scaling_24xx, .calc_scaling = dispc_ovl_calc_scaling_24xx,
.calc_core_clk = calc_core_clk_24xx, .calc_core_clk = calc_core_clk_24xx,
.num_fifos = 3, .num_fifos = 3,
.no_framedone_tv = true,
}; };
static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = { 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,6 +4118,7 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats __initconst = {
.calc_scaling = dispc_ovl_calc_scaling_34xx, .calc_scaling = dispc_ovl_calc_scaling_34xx,
.calc_core_clk = calc_core_clk_34xx, .calc_core_clk = calc_core_clk_34xx,
.num_fifos = 3, .num_fifos = 3,
.no_framedone_tv = true,
}; };
static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = { 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,6 +4135,7 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats __initconst = {
.calc_scaling = dispc_ovl_calc_scaling_34xx, .calc_scaling = dispc_ovl_calc_scaling_34xx,
.calc_core_clk = calc_core_clk_34xx, .calc_core_clk = calc_core_clk_34xx,
.num_fifos = 3, .num_fifos = 3,
.no_framedone_tv = true,
}; };
static const struct dispc_features omap44xx_dispc_feats __initconst = { static const struct dispc_features omap44xx_dispc_feats __initconst = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment