drm/exynos: mixer: Fix color format setting
authorChristoph Manszewski <c.manszewski@samsung.com>
Wed, 28 Nov 2018 15:32:11 +0000 (16:32 +0100)
committerInki Dae <inki.dae@samsung.com>
Wed, 5 Dec 2018 08:34:50 +0000 (17:34 +0900)
Fix color format decision based on height(pixels).

According to CEA-861-E:
"High Definition (HD) - A CE video format that, inclusively, has between
720 to 1080 active vertical lines (Vactive) lines per video frame."

Tested on Odroid-U3 with Exynos 4412 CPU, kernel next-20181128
using modetest.

Signed-off-by: Christoph Manszewski <c.manszewski@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_mixer.c

index 5a47af8..9cdae10 100644 (file)
@@ -384,14 +384,9 @@ static void mixer_cfg_rgb_fmt(struct mixer_context *ctx, unsigned int height)
 {
        u32 val;
 
-       switch (height) {
-       case 480:
-       case 576:
+       if (height < 720) {
                val = MXR_CFG_RGB601_0_255;
-               break;
-       case 720:
-       case 1080:
-       default:
+       } else {
                val = MXR_CFG_RGB709_16_235;
                /* Configure the BT.709 CSC matrix for full range RGB. */
                mixer_reg_write(ctx, MXR_CM_COEFF_Y,
@@ -401,7 +396,6 @@ static void mixer_cfg_rgb_fmt(struct mixer_context *ctx, unsigned int height)
                        MXR_CSC_CT(-0.102, -0.338,  0.440));
                mixer_reg_write(ctx, MXR_CM_COEFF_CR,
                        MXR_CSC_CT( 0.440, -0.399, -0.040));
-               break;
        }
 
        mixer_reg_writemask(ctx, MXR_CFG, val, MXR_CFG_RGB_FMT_MASK);