Hi, Liankun: Liankun Yang <liankun.yang@xxxxxxxxxxxx> 於 2024年10月25日 週五 下午4:32寫道: > > 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. Applied to mediatek-drm-fixes [1], thanks. [1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-fixes Regards, Chun-Kuang. > > Fixes: f70ac097a2cf ("drm/mediatek: Add MT8195 Embedded DisplayPort driver") > Signed-off-by: Liankun Yang <liankun.yang@xxxxxxxxxxxx> > --- > Change in V2 > - Modify the value written to the register > Per suggestion from the previous thread: > https://patchwork.kernel.org/project/linux-mediatek/patch/20240510021810.19302-1-liankun.yang@xxxxxxxxxxxx/ > --- > drivers/gpu/drm/mediatek/mtk_dp.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c > index f0f6f402994a..613e1c842478 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dp.c > +++ b/drivers/gpu/drm/mediatek/mtk_dp.c > @@ -460,18 +460,16 @@ static int mtk_dp_set_color_format(struct mtk_dp *mtk_dp, > enum dp_pixelformat color_format) > { > u32 val; > - > - /* update MISC0 */ > - mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_3034, > - color_format << DP_TEST_COLOR_FORMAT_SHIFT, > - DP_TEST_COLOR_FORMAT_MASK); > + u32 misc0_color; > > switch (color_format) { > case DP_PIXELFORMAT_YUV422: > val = PIXEL_ENCODE_FORMAT_DP_ENC0_P0_YCBCR422; > + misc0_color = DP_COLOR_FORMAT_YCbCr422; > break; > case DP_PIXELFORMAT_RGB: > val = PIXEL_ENCODE_FORMAT_DP_ENC0_P0_RGB; > + misc0_color = DP_COLOR_FORMAT_RGB; > break; > default: > drm_warn(mtk_dp->drm_dev, "Unsupported color format: %d\n", > @@ -479,6 +477,11 @@ static int mtk_dp_set_color_format(struct mtk_dp *mtk_dp, > return -EINVAL; > } > > + /* update MISC0 */ > + mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_3034, > + misc0_color, > + DP_TEST_COLOR_FORMAT_MASK); > + > mtk_dp_update_bits(mtk_dp, MTK_DP_ENC0_P0_303C, > val, PIXEL_ENCODE_FORMAT_DP_ENC0_P0_MASK); > return 0; > -- > 2.45.2 >