Commit b7536d67 authored by Tomi Valkeinen's avatar Tomi Valkeinen

drm/omap: DISPC: Fix field order for HDMI

Interlace field order is different between VENC and HDMI. The driver
currently sets the field order for VENC.

This patch adds the code to set the field order for HDMI.
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
parent b2af8092
...@@ -106,6 +106,13 @@ struct dispc_features { ...@@ -106,6 +106,13 @@ struct dispc_features {
bool has_writeback:1; bool has_writeback:1;
bool supports_double_pixel:1; bool supports_double_pixel:1;
/*
* Field order for VENC is different than HDMI. We should handle this in
* some intelligent manner, but as the SoCs have either HDMI or VENC,
* never both, we can just use this flag for now.
*/
bool reverse_ilace_field_order:1;
}; };
#define DISPC_MAX_NR_FIFOS 5 #define DISPC_MAX_NR_FIFOS 5
...@@ -2749,6 +2756,9 @@ static int dispc_ovl_setup_common(enum omap_plane plane, ...@@ -2749,6 +2756,9 @@ static int dispc_ovl_setup_common(enum omap_plane plane,
dispc_ovl_configure_burst_type(plane, rotation_type); dispc_ovl_configure_burst_type(plane, rotation_type);
if (dispc.feat->reverse_ilace_field_order)
swap(offset0, offset1);
dispc_ovl_set_ba0(plane, paddr + offset0); dispc_ovl_set_ba0(plane, paddr + offset0);
dispc_ovl_set_ba1(plane, paddr + offset1); dispc_ovl_set_ba1(plane, paddr + offset1);
...@@ -3958,6 +3968,7 @@ static const struct dispc_features omap44xx_dispc_feats = { ...@@ -3958,6 +3968,7 @@ static const struct dispc_features omap44xx_dispc_feats = {
.supports_sync_align = true, .supports_sync_align = true,
.has_writeback = true, .has_writeback = true,
.supports_double_pixel = true, .supports_double_pixel = true,
.reverse_ilace_field_order = true,
}; };
static const struct dispc_features omap54xx_dispc_feats = { static const struct dispc_features omap54xx_dispc_feats = {
...@@ -3982,6 +3993,7 @@ static const struct dispc_features omap54xx_dispc_feats = { ...@@ -3982,6 +3993,7 @@ static const struct dispc_features omap54xx_dispc_feats = {
.supports_sync_align = true, .supports_sync_align = true,
.has_writeback = true, .has_writeback = true,
.supports_double_pixel = true, .supports_double_pixel = true,
.reverse_ilace_field_order = true,
}; };
static int dispc_init_features(struct platform_device *pdev) static int dispc_init_features(struct platform_device *pdev)
......
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