Re: [PATCH v9 6/7] drm/mediatek: dsi: Support dynamic connector selection
From: CK Hu (胡俊光)
Date: Mon Sep 18 2023 - 03:11:22 EST
Hi, Jason:
On Thu, 2023-08-10 at 02:15 +0800, Jason-JH.Lin wrote:
> Add implementation of mtk_dsi_encoder_index to mtk_ddp_comp_func
> to make mtk_dsi support dynamic connector selection.
Reviewed-by: CK Hu <ck.hu@xxxxxxxxxxxx>
>
> Signed-off-by: Jason-JH.Lin <jason-jh.lin@xxxxxxxxxxxx>
> ---
> drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 +
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 +
> drivers/gpu/drm/mediatek/mtk_dsi.c | 9 +++++++++
> 3 files changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> index 5f07037670e9..fdaa21b6a9da 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> @@ -48,6 +48,7 @@ unsigned int mtk_dpi_encoder_index(struct device
> *dev);
>
> void mtk_dsi_ddp_start(struct device *dev);
> void mtk_dsi_ddp_stop(struct device *dev);
> +unsigned int mtk_dsi_encoder_index(struct device *dev);
>
> int mtk_gamma_clk_enable(struct device *dev);
> void mtk_gamma_clk_disable(struct device *dev);
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> index c1ea112e6be8..c93b1bae00dc 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> @@ -318,6 +318,7 @@ static const struct mtk_ddp_comp_funcs ddp_dsc =
> {
> static const struct mtk_ddp_comp_funcs ddp_dsi = {
> .start = mtk_dsi_ddp_start,
> .stop = mtk_dsi_ddp_stop,
> + .encoder_index = mtk_dsi_encoder_index,
> };
>
> static const struct mtk_ddp_comp_funcs ddp_gamma = {
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c
> b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 7d5250351193..8c45dc19d39f 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -865,6 +865,15 @@ static int mtk_dsi_encoder_init(struct
> drm_device *drm, struct mtk_dsi *dsi)
> return ret;
> }
>
> +unsigned int mtk_dsi_encoder_index(struct device *dev)
> +{
> + struct mtk_dsi *dsi = dev_get_drvdata(dev);
> + unsigned int encoder_index = drm_encoder_index(&dsi->encoder);
> +
> + dev_dbg(dev, "encoder index:%d\n", encoder_index);
> + return encoder_index;
> +}
> +
> static int mtk_dsi_bind(struct device *dev, struct device *master,
> void *data)
> {
> int ret;