OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
authorArchit Taneja <archit@ti.com>
Mon, 16 Jul 2012 11:07:45 +0000 (16:37 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 26 Sep 2012 11:58:50 +0000 (14:58 +0300)
The bit YUVCHROMARESAMPLING isn't there for writeback in DISPC_WB_ATTRIBUTES2.
It isn't there because we don't upsample chroma like for video pipelines, we
downsample chroma in writeback to get YUV422 or NV12 formats from the YUV444
input.

Ignore this bit in dispc_ovl_set_scaling_uv() if the plane is OMAP_DSS_WB.

Signed-off-by: Archit Taneja <archit@ti.com>
drivers/video/omap2/dss/dispc.c

index 435e565..d46cf29 100644 (file)
@@ -1468,7 +1468,8 @@ static void dispc_ovl_set_scaling_uv(enum omap_plane plane,
                        color_mode != OMAP_DSS_COLOR_UYVY &&
                        color_mode != OMAP_DSS_COLOR_NV12)) {
                /* reset chroma resampling for RGB formats  */
-               REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), 0, 8, 8);
+               if (plane != OMAP_DSS_WB)
+                       REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane), 0, 8, 8);
                return;
        }
 
@@ -1520,8 +1521,10 @@ static void dispc_ovl_set_scaling_uv(enum omap_plane plane,
                        out_width, out_height, five_taps,
                                rotation, DISPC_COLOR_COMPONENT_UV);
 
-       REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane),
-               (scale_x || scale_y) ? 1 : 0, 8, 8);
+       if (plane != OMAP_DSS_WB)
+               REG_FLD_MOD(DISPC_OVL_ATTRIBUTES2(plane),
+                       (scale_x || scale_y) ? 1 : 0, 8, 8);
+
        /* set H scaling */
        REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), scale_x ? 1 : 0, 5, 5);
        /* set V scaling */