Skip to content

Commit ef24fbd

Browse files
yangliankun1Chun-Kuang Hu
authored andcommitted
drm/mediatek: Fix YCbCr422 color format issue for DP
Setting up misc0 for Pixel Encoding Format. According to the definition of YCbCr in spec 1.2a Table 2-96, 0x1 << 1 should be written to the register. Use switch case to distinguish RGB, YCbCr422, and unsupported color formats. Fixes: f70ac09 ("drm/mediatek: Add MT8195 Embedded DisplayPort driver") Signed-off-by: Liankun Yang <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
1 parent a10f260 commit ef24fbd

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

drivers/gpu/drm/mediatek/mtk_dp.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -543,25 +543,28 @@ static int mtk_dp_set_color_format(struct mtk_dp *mtk_dp,
543543
enum dp_pixelformat color_format)
544544
{
545545
u32 val;
546-
547-
/* update MISC0 */
548-
mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_3034,
549-
color_format << DP_TEST_COLOR_FORMAT_SHIFT,
550-
DP_TEST_COLOR_FORMAT_MASK);
546+
u32 misc0_color;
551547

552548
switch (color_format) {
553549
case DP_PIXELFORMAT_YUV422:
554550
val = PIXEL_ENCODE_FORMAT_DP_ENC0_P0_YCBCR422;
551+
misc0_color = DP_COLOR_FORMAT_YCbCr422;
555552
break;
556553
case DP_PIXELFORMAT_RGB:
557554
val = PIXEL_ENCODE_FORMAT_DP_ENC0_P0_RGB;
555+
misc0_color = DP_COLOR_FORMAT_RGB;
558556
break;
559557
default:
560558
drm_warn(mtk_dp->drm_dev, "Unsupported color format: %d\n",
561559
color_format);
562560
return -EINVAL;
563561
}
564562

563+
/* update MISC0 */
564+
mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_3034,
565+
misc0_color,
566+
DP_TEST_COLOR_FORMAT_MASK);
567+
565568
mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_303C,
566569
val, PIXEL_ENCODE_FORMAT_DP_ENC0_P0_MASK);
567570
return 0;

0 commit comments

Comments
 (0)