Message ID | 20231004024013.18956-9-jason-jh.lin@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add connector dynamic selection capability | expand |
Hi, Jason: On Wed, 2023-10-04 at 10:40 +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@mediatek.com> > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> > Reviewed-by: CK Hu <ck.hu@mediatek.com> > Reviewed-by: Fei Shao <fshao@chromium.org> > Reviewed-by: AngeloGioacchino Del Regno < > angelogioacchino.delregno@collabora.com> > Tested-by: Fei Shao <fshao@chromium.org> > --- > 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 601755925520..f3345af12cb8 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 d8bfc2cce54d..124647a4d985 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;
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 601755925520..f3345af12cb8 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 d8bfc2cce54d..124647a4d985 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;