OSDN Git Service

drm/amd/display: Subsample mode suboptimal for YCbCr4:2:2
authorKrunoslav Kovac <Krunoslav.Kovac@amd.com>
Fri, 9 Aug 2019 21:16:18 +0000 (17:16 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 13 Sep 2019 22:54:53 +0000 (17:54 -0500)
[Why&How]
Driver defaults to 1-tap subsample mode for 4:2:2.
DCE11.2 added 3-tap. The policy is:
DCE8-DCE11 - change to 2-tap, it's better than 1-tap.
DCE11.2+ - use 3-tap

Note that 4:2:0 was added in DCE11.2 and already uses 3-tap always.
Note 2 is that DCE not covered on Linux, only DCN+

Signed-off-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.h

index e9ebbbe..02c8a3e 100644 (file)
@@ -168,7 +168,10 @@ static void opp1_set_pixel_encoding(
                REG_UPDATE(FMT_CONTROL, FMT_PIXEL_ENCODING, 0);
                break;
        case PIXEL_ENCODING_YCBCR422:
-               REG_UPDATE(FMT_CONTROL, FMT_PIXEL_ENCODING, 1);
+               REG_UPDATE_3(FMT_CONTROL,
+                               FMT_PIXEL_ENCODING, 1,
+                               FMT_SUBSAMPLING_MODE, 2,
+                               FMT_CBCR_BIT_REDUCTION_BYPASS, 0);
                break;
        case PIXEL_ENCODING_YCBCR420:
                REG_UPDATE(FMT_CONTROL, FMT_PIXEL_ENCODING, 2);
index 0f10ade..2c0ecfa 100644 (file)
        type FMT_RAND_G_SEED; \
        type FMT_RAND_B_SEED; \
        type FMT_PIXEL_ENCODING; \
+       type FMT_SUBSAMPLING_MODE; \
+       type FMT_CBCR_BIT_REDUCTION_BYPASS; \
        type FMT_CLAMP_DATA_EN; \
        type FMT_CLAMP_COLOR_FORMAT; \
        type FMT_DYNAMIC_EXP_EN; \