From: Christoph Manszewski Date: Wed, 28 Nov 2018 15:32:11 +0000 (+0100) Subject: drm/exynos: mixer: Fix color format setting X-Git-Tag: v5.4-rc1~1841^2~12^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e9e5ba93cb1f61c16298aade49ec2537d497f0d6;p=platform%2Fkernel%2Flinux-rpi.git drm/exynos: mixer: Fix color format setting 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 Signed-off-by: Inki Dae --- diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 5a47af8..9cdae10 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -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);