drm/exynos: Don't blend mixer layer 0
authorSean Paul <seanpaul@chromium.org>
Thu, 25 Apr 2013 19:13:26 +0000 (15:13 -0400)
committerInki Dae <inki.dae@samsung.com>
Mon, 29 Apr 2013 05:40:20 +0000 (14:40 +0900)
This patch disables blending the mixer's layer 0 onto the background
(solid color). It doesn't make sense to blend this layer by default,
and causes color distortion if the layer is used for arbitrary content.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_mixer.c

index f08e251..ec3e376 100644 (file)
@@ -643,12 +643,14 @@ static void mixer_win_reset(struct mixer_context *ctx)
        /* setting graphical layers */
        val  = MXR_GRP_CFG_COLOR_KEY_DISABLE; /* no blank key */
        val |= MXR_GRP_CFG_WIN_BLEND_EN;
-       val |= MXR_GRP_CFG_BLEND_PRE_MUL;
-       val |= MXR_GRP_CFG_PIXEL_BLEND_EN;
        val |= MXR_GRP_CFG_ALPHA_VAL(0xff); /* non-transparent alpha */
 
-       /* the same configuration for both layers */
+       /* Don't blend layer 0 onto the mixer background */
        mixer_reg_write(res, MXR_GRAPHIC_CFG(0), val);
+
+       /* Blend layer 1 into layer 0 */
+       val |= MXR_GRP_CFG_BLEND_PRE_MUL;
+       val |= MXR_GRP_CFG_PIXEL_BLEND_EN;
        mixer_reg_write(res, MXR_GRAPHIC_CFG(1), val);
 
        /* setting video layers */