OMAP: DSS2: Ensure non-zero FIR values are configured
authorAmber Jain <amber@ti.com>
Thu, 19 May 2011 14:17:51 +0000 (19:47 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 23 May 2011 05:29:47 +0000 (08:29 +0300)
FIR values can never be zero as per TRM, and the current code writes zero
when scaling is not used. It was not causing any problem as scaling was
disabled when zero was written. Its still safer to not write zero to
it in any case.
Now we configure correct FIR values even when scaling is not used (i.e. set FIR
to 1024 when scaling is not used), but the scaling enable bits are still kept
off if the scaling is not needed.

Signed-off-by: Amber Jain <amber@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/dispc.c

index 79c1c0a44f817e8073ec844a044ad28c6a595983..fd8f68e616d0b7a1ff0f0dbd69d71cb41a1ca5ad 100644 (file)
@@ -1128,15 +1128,8 @@ static void _dispc_set_scaling(enum omap_plane plane,
 
        _dispc_set_scale_coef(plane, hscaleup, vscaleup, five_taps);
 
-       if (!orig_width || orig_width == out_width)
-               fir_hinc = 0;
-       else
-               fir_hinc = 1024 * orig_width / out_width;
-
-       if (!orig_height || orig_height == out_height)
-               fir_vinc = 0;
-       else
-               fir_vinc = 1024 * orig_height / out_height;
+       fir_hinc = 1024 * orig_width / out_width;
+       fir_vinc = 1024 * orig_height / out_height;
 
        _dispc_set_fir(plane, fir_hinc, fir_vinc);
 
@@ -1144,8 +1137,8 @@ static void _dispc_set_scaling(enum omap_plane plane,
 
        /* RESIZEENABLE and VERTICALTAPS */
        l &= ~((0x3 << 5) | (0x1 << 21));
-       l |= fir_hinc ? (1 << 5) : 0;
-       l |= fir_vinc ? (1 << 6) : 0;
+       l |= (orig_width != out_width) ? (1 << 5) : 0;
+       l |= (orig_height != out_height) ? (1 << 6) : 0;
        l |= five_taps ? (1 << 21) : 0;
 
        /* VRESIZECONF and HRESIZECONF */
This page took 0.029192 seconds and 5 git commands to generate.