Message ID | 1663161662-1598-4-git-send-email-xinlei.lee@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add dpi output format control for MT8186 | expand |
Hi, Xinlei: On Wed, 2022-09-14 at 21:21 +0800, xinlei.lee@mediatek.com wrote: > From: Xinlei Lee <xinlei.lee@mediatek.com> > > Add the compatible because use edge_cfg_in_mmsys in mt8186. > > Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com> > --- > drivers/gpu/drm/mediatek/mtk_dpi.c | 21 +++++++++++++++++++++ > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 ++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c > b/drivers/gpu/drm/mediatek/mtk_dpi.c > index 6e02f02f163c..52bcc4114afd 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > @@ -942,6 +942,24 @@ static const struct mtk_dpi_conf mt8183_conf = { > .csc_enable_bit = CSC_ENABLE, > }; > > +static const struct mtk_dpi_conf mt8186_conf = { > + .cal_factor = mt8183_calculate_factor, > + .reg_h_fre_con = 0xe0, > + .max_clock_khz = 150000, > + .output_fmts = mt8183_output_fmts, > + .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts), > + .edge_cfg_in_mmsys = true, According to the previous review, edge_cfg_in_mmsys is not necessary, so mt8186_conf is identical to mt8192_conf. Regards, CK > + .pixels_per_iter = 1, > + .is_ck_de_pol = true, > + .swap_input_support = true, > + .support_direct_pin = true, > + .dimension_mask = HPW_MASK, > + .hvsize_mask = HSIZE_MASK, > + .channel_swap_shift = CH_SWAP, > + .yuv422_en_bit = YUV422_EN, > + .csc_enable_bit = CSC_ENABLE, > +}; > + > static const struct mtk_dpi_conf mt8192_conf = { > .cal_factor = mt8183_calculate_factor, > .reg_h_fre_con = 0xe0, > @@ -1092,6 +1110,9 @@ static const struct of_device_id > mtk_dpi_of_ids[] = { > { .compatible = "mediatek,mt8183-dpi", > .data = &mt8183_conf, > }, > + { .compatible = "mediatek,mt8186-dpi", > + .data = &mt8186_conf, > + }, > { .compatible = "mediatek,mt8192-dpi", > .data = &mt8192_conf, > }, > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 546b79412815..3d32fbc66ac1 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -646,6 +646,8 @@ static const struct of_device_id > mtk_ddp_comp_dt_ids[] = { > .data = (void *)MTK_DPI }, > { .compatible = "mediatek,mt8183-dpi", > .data = (void *)MTK_DPI }, > + { .compatible = "mediatek,mt8186-dpi", > + .data = (void *)MTK_DPI }, > { .compatible = "mediatek,mt8192-dpi", > .data = (void *)MTK_DPI }, > { .compatible = "mediatek,mt8195-dp-intf",
On Wed, 2022-09-21 at 09:42 +0800, CK Hu wrote: > Hi, Xinlei: > > On Wed, 2022-09-14 at 21:21 +0800, xinlei.lee@mediatek.com wrote: > > From: Xinlei Lee <xinlei.lee@mediatek.com> > > > > Add the compatible because use edge_cfg_in_mmsys in mt8186. > > > > Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com> > > --- > > drivers/gpu/drm/mediatek/mtk_dpi.c | 21 +++++++++++++++++++++ > > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 2 ++ > > 2 files changed, 23 insertions(+) > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c > > b/drivers/gpu/drm/mediatek/mtk_dpi.c > > index 6e02f02f163c..52bcc4114afd 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > > @@ -942,6 +942,24 @@ static const struct mtk_dpi_conf mt8183_conf = > > { > > .csc_enable_bit = CSC_ENABLE, > > }; > > > > +static const struct mtk_dpi_conf mt8186_conf = { > > + .cal_factor = mt8183_calculate_factor, > > + .reg_h_fre_con = 0xe0, > > + .max_clock_khz = 150000, > > + .output_fmts = mt8183_output_fmts, > > + .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts), > > + .edge_cfg_in_mmsys = true, > > According to the previous review, edge_cfg_in_mmsys is not necessary, > so mt8186_conf is identical to mt8192_conf. > > Regards, > CK > > > + .pixels_per_iter = 1, > > + .is_ck_de_pol = true, > > + .swap_input_support = true, > > + .support_direct_pin = true, > > + .dimension_mask = HPW_MASK, > > + .hvsize_mask = HSIZE_MASK, > > + .channel_swap_shift = CH_SWAP, > > + .yuv422_en_bit = YUV422_EN, > > + .csc_enable_bit = CSC_ENABLE, > > +}; > > + > > static const struct mtk_dpi_conf mt8192_conf = { > > .cal_factor = mt8183_calculate_factor, > > .reg_h_fre_con = 0xe0, > > @@ -1092,6 +1110,9 @@ static const struct of_device_id > > mtk_dpi_of_ids[] = { > > { .compatible = "mediatek,mt8183-dpi", > > .data = &mt8183_conf, > > }, > > + { .compatible = "mediatek,mt8186-dpi", > > + .data = &mt8186_conf, > > + }, > > { .compatible = "mediatek,mt8192-dpi", > > .data = &mt8192_conf, > > }, > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > index 546b79412815..3d32fbc66ac1 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > > @@ -646,6 +646,8 @@ static const struct of_device_id > > mtk_ddp_comp_dt_ids[] = { > > .data = (void *)MTK_DPI }, > > { .compatible = "mediatek,mt8183-dpi", > > .data = (void *)MTK_DPI }, > > + { .compatible = "mediatek,mt8186-dpi", > > + .data = (void *)MTK_DPI }, > > { .compatible = "mediatek,mt8192-dpi", > > .data = (void *)MTK_DPI }, > > { .compatible = "mediatek,mt8195-dp-intf", > > Hi CK: Thanks for your review. Because the difference between MT8186 and other ICs is that modifying the output format requires modifying the mmsys register to take effect. I think this mt8186_conf needs to be reserved so that we can distinguish it from the settings of other ICs when setting dpi_dual_edge. (the edge_cfg_in mmsys flag inside can prevent other ICs from setting the mmsys register) Best Regards! Xinlei
diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c index 6e02f02f163c..52bcc4114afd 100644 --- a/drivers/gpu/drm/mediatek/mtk_dpi.c +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c @@ -942,6 +942,24 @@ static const struct mtk_dpi_conf mt8183_conf = { .csc_enable_bit = CSC_ENABLE, }; +static const struct mtk_dpi_conf mt8186_conf = { + .cal_factor = mt8183_calculate_factor, + .reg_h_fre_con = 0xe0, + .max_clock_khz = 150000, + .output_fmts = mt8183_output_fmts, + .num_output_fmts = ARRAY_SIZE(mt8183_output_fmts), + .edge_cfg_in_mmsys = true, + .pixels_per_iter = 1, + .is_ck_de_pol = true, + .swap_input_support = true, + .support_direct_pin = true, + .dimension_mask = HPW_MASK, + .hvsize_mask = HSIZE_MASK, + .channel_swap_shift = CH_SWAP, + .yuv422_en_bit = YUV422_EN, + .csc_enable_bit = CSC_ENABLE, +}; + static const struct mtk_dpi_conf mt8192_conf = { .cal_factor = mt8183_calculate_factor, .reg_h_fre_con = 0xe0, @@ -1092,6 +1110,9 @@ static const struct of_device_id mtk_dpi_of_ids[] = { { .compatible = "mediatek,mt8183-dpi", .data = &mt8183_conf, }, + { .compatible = "mediatek,mt8186-dpi", + .data = &mt8186_conf, + }, { .compatible = "mediatek,mt8192-dpi", .data = &mt8192_conf, }, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 546b79412815..3d32fbc66ac1 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -646,6 +646,8 @@ static const struct of_device_id mtk_ddp_comp_dt_ids[] = { .data = (void *)MTK_DPI }, { .compatible = "mediatek,mt8183-dpi", .data = (void *)MTK_DPI }, + { .compatible = "mediatek,mt8186-dpi", + .data = (void *)MTK_DPI }, { .compatible = "mediatek,mt8192-dpi", .data = (void *)MTK_DPI }, { .compatible = "mediatek,mt8195-dp-intf",