drm/exynos: change default win layer of mixer to zpos 1 55/117155/2 accepted/tizen/common/20170306.165243 accepted/tizen/ivi/20170306.103724 accepted/tizen/mobile/20170306.103645 accepted/tizen/tv/20170306.103655 accepted/tizen/unified/20170310.084417 accepted/tizen/wearable/20170306.103710 submit/tizen/20170306.073645 submit/tizen_unified/20170308.100411 submit/tizen_unified/20170310.083425
authorJoonyoung Shim <jy0922.shim@samsung.com>
Fri, 3 Mar 2017 01:43:28 +0000 (10:43 +0900)
committerAndi Shyti <andi.shyti@samsung.com>
Fri, 3 Mar 2017 04:55:15 +0000 (20:55 -0800)
Exynos tdm backend of tizen needs that default window layer has zpos 1.
Exynos drm mixer driver of this kernel doesn't support to change zpos
priority of win layer by userspace yet, so this patch modifies zpos of
default window layer to 1 in exynos drm mixer driver.

As the zpos of default win layer is to 1, this patch also removes
workaround of commit 68395cb68321 ("drm/exynos: workaround to change
graphic layers priority"), so will revert priority of win layer.

Change-Id: I9f5a2b0c1a6527f8848ee98e80ec953904b0c630
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
drivers/gpu/drm/exynos/exynos_mixer.c

index b57446df3eda14cbe87d6a897bfb2a9bd0504707..38723debbc38ed41309a2a0263bf44accc2a740c 100644 (file)
@@ -42,7 +42,7 @@
 #include "exynos_mixer.h"
 
 #define MIXER_WIN_NR           3
-#define MIXER_DEFAULT_WIN      0
+#define MIXER_DEFAULT_WIN      1
 #define VP_DEFAULT_WIN         2
 
 /* The pixelformats that are natively supported by the mixer. */
@@ -354,24 +354,24 @@ static void mixer_cfg_layer(struct mixer_context *ctx, unsigned int win,
        switch (win) {
        case 0:
                mixer_reg_writemask(res, MXR_CFG, val, MXR_CFG_GRP0_ENABLE);
-               break;
-       case 1:
-               mixer_reg_writemask(res, MXR_CFG, val, MXR_CFG_GRP1_ENABLE);
-               /* FIXME: workaround to change default layer priority */
+               /* FIXME: workaround to control blending with below layer */
                if (ctx->mxr_ver == MXR_VER_128_0_0_184) {
                        if (enable) {
-                               /* control blending of graphic layer 0 */
-                               mixer_reg_writemask(res, MXR_GRAPHIC_CFG(0),
+                               /* control blending of graphic layer 1 */
+                               mixer_reg_writemask(res, MXR_GRAPHIC_CFG(1),
                                                val,
                                                MXR_GRP_CFG_BLEND_PRE_MUL |
                                                MXR_GRP_CFG_PIXEL_BLEND_EN);
                        } else {
-                               mixer_reg_writemask(res, MXR_GRAPHIC_CFG(0), 0,
+                               mixer_reg_writemask(res, MXR_GRAPHIC_CFG(1), 0,
                                                MXR_GRP_CFG_BLEND_PRE_MUL |
                                                MXR_GRP_CFG_PIXEL_BLEND_EN);
                        }
                }
 
+               break;
+       case 1:
+               mixer_reg_writemask(res, MXR_CFG, val, MXR_CFG_GRP1_ENABLE);
                break;
        case 2:
                if (ctx->vp_enabled) {
@@ -688,15 +688,8 @@ static void mixer_win_reset(struct mixer_context *ctx)
         * layer0 - framebuffer
         * video - video overlay
         */
-
-       /* FIXME: workaround to change default layer priority */
-       if (ctx->mxr_ver == MXR_VER_128_0_0_184) {
-               val = MXR_LAYER_CFG_GRP1_VAL(2);
-               val |= MXR_LAYER_CFG_GRP0_VAL(3);
-       } else {
-               val = MXR_LAYER_CFG_GRP1_VAL(3);
-               val |= MXR_LAYER_CFG_GRP0_VAL(2);
-       }
+       val = MXR_LAYER_CFG_GRP1_VAL(3);
+       val |= MXR_LAYER_CFG_GRP0_VAL(2);
 
        if (ctx->vp_enabled)
                val |= MXR_LAYER_CFG_VP_VAL(1);
@@ -716,11 +709,8 @@ static void mixer_win_reset(struct mixer_context *ctx)
        mixer_reg_write(res, MXR_GRAPHIC_CFG(0), val);
 
        /* Blend layer 1 into layer 0 */
-       /* FIXME: workaround to change default layer as unused video overlay */
-       if (ctx->mxr_ver != MXR_VER_128_0_0_184) {
-               val |= MXR_GRP_CFG_BLEND_PRE_MUL;
-               val |= MXR_GRP_CFG_PIXEL_BLEND_EN;
-       }
+       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 */