diff options
Diffstat (limited to 'recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0041-DSS2-Disable-vertical-offset-with-fieldmode.patch')
-rw-r--r-- | recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0041-DSS2-Disable-vertical-offset-with-fieldmode.patch | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0041-DSS2-Disable-vertical-offset-with-fieldmode.patch b/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0041-DSS2-Disable-vertical-offset-with-fieldmode.patch new file mode 100644 index 0000000000..2c90c0cc06 --- /dev/null +++ b/recipes/kexecboot/linux-kexecboot-2.6.29/dss2/0041-DSS2-Disable-vertical-offset-with-fieldmode.patch @@ -0,0 +1,71 @@ +From 9bcac9b9e678f476c83b5679b1215b6bc946130a Mon Sep 17 00:00:00 2001 +From: =?utf-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@nokia.com> +Date: Mon, 20 Apr 2009 16:26:18 +0200 +Subject: [PATCH 41/69] DSS2: Disable vertical offset with fieldmode +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +When using fieldmode each field is basically a separate picture so the +vertical filter should start at phase 0 for both fields. + +Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> +--- + drivers/video/omap2/dss/dispc.c | 23 +++++++++-------------- + 1 files changed, 9 insertions(+), 14 deletions(-) + +diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c +index 7e551c2..f15614b 100644 +--- a/drivers/video/omap2/dss/dispc.c ++++ b/drivers/video/omap2/dss/dispc.c +@@ -1029,12 +1029,12 @@ static void _dispc_set_vid_accu1(enum omap_plane plane, int haccu, int vaccu) + static void _dispc_set_scaling(enum omap_plane plane, + u16 orig_width, u16 orig_height, + u16 out_width, u16 out_height, +- bool ilace, bool five_taps) ++ bool ilace, bool five_taps, ++ bool fieldmode) + { + int fir_hinc; + int fir_vinc; + int hscaleup, vscaleup; +- int fieldmode = 0; + int accu0 = 0; + int accu1 = 0; + u32 l; +@@ -1072,17 +1072,12 @@ static void _dispc_set_scaling(enum omap_plane plane, + + dispc_write_reg(dispc_reg_att[plane], l); + +- if (ilace) { +- if (fieldmode) { +- accu0 = fir_vinc / 2; +- accu1 = 0; +- } else { +- accu0 = 0; +- accu1 = fir_vinc / 2; +- if (accu1 >= 1024/2) { +- accu0 = 1024/2; +- accu1 -= accu0; +- } ++ if (ilace && !fieldmode) { ++ accu0 = 0; ++ accu1 = fir_vinc / 2; ++ if (accu1 >= 1024/2) { ++ accu0 = 1024/2; ++ accu1 -= accu0; + } + } + +@@ -1582,7 +1577,7 @@ static int _dispc_setup_plane(enum omap_plane plane, + if (plane != OMAP_DSS_GFX) { + _dispc_set_scaling(plane, width, height, + out_width, out_height, +- ilace, five_taps); ++ ilace, five_taps, fieldmode); + _dispc_set_vid_size(plane, out_width, out_height); + _dispc_set_vid_color_conv(plane, cconv); + } +-- +1.6.2.4 + |