Message ID | 20230809181525.7561-5-jason-jh.lin@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add connector dynamic selection capability | expand |
On Thu, Aug 10, 2023 at 2:15 AM Jason-JH.Lin <jason-jh.lin@mediatek.com> wrote: > > To support dynamic connector selection function, each ddp_comp need to > get their encoder_index to identify which connector should be selected. > > Add encoder_index function to mtk_ddp_comp_funcs and the implementation > of mtk_dpi_encoder_index to get its encoder_index. > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> Reviewed-by: Fei Shao <fshao@chromium.org> Tested-by: Fei Shao <fshao@chromium.org>
Hi, Jason: On Thu, 2023-08-10 at 02:15 +0800, Jason-JH.Lin wrote: > To support dynamic connector selection function, each ddp_comp need > to > get their encoder_index to identify which connector should be > selected. > > Add encoder_index function to mtk_ddp_comp_funcs and the > implementation > of mtk_dpi_encoder_index to get its encoder_index. Separate the common part and dpi part to different patch. Regards, CK > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> > --- > drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 + > drivers/gpu/drm/mediatek/mtk_dpi.c | 9 +++++++++ > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 + > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + > 4 files changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > index 2254038519e1..5f07037670e9 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > @@ -44,6 +44,7 @@ void mtk_dither_set_common(void __iomem *regs, > struct cmdq_client_reg *cmdq_reg, > > void mtk_dpi_start(struct device *dev); > void mtk_dpi_stop(struct device *dev); > +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); > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c > b/drivers/gpu/drm/mediatek/mtk_dpi.c > index 948a53f1f4b3..3d6b3c228f30 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > @@ -782,6 +782,15 @@ void mtk_dpi_stop(struct device *dev) > mtk_dpi_power_off(dpi); > } > > +unsigned int mtk_dpi_encoder_index(struct device *dev) > +{ > + struct mtk_dpi *dpi = dev_get_drvdata(dev); > + unsigned int encoder_index = drm_encoder_index(&dpi->encoder); > + > + dev_dbg(dev, "encoder index:%d\n", encoder_index); > + return encoder_index; > +} > + > static int mtk_dpi_bind(struct device *dev, struct device *master, > void *data) > { > struct mtk_dpi *dpi = dev_get_drvdata(dev); > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > index f114da4d36a9..effaaa769b46 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > @@ -304,6 +304,7 @@ static const struct mtk_ddp_comp_funcs ddp_dither > = { > static const struct mtk_ddp_comp_funcs ddp_dpi = { > .start = mtk_dpi_start, > .stop = mtk_dpi_stop, > + .encoder_index = mtk_dpi_encoder_index, > }; > > static const struct mtk_ddp_comp_funcs ddp_dsc = { > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > index febcaeef16a1..326cb57a18c9 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > @@ -80,6 +80,7 @@ struct mtk_ddp_comp_funcs { > void (*disconnect)(struct device *dev, struct device > *mmsys_dev, unsigned int next); > void (*add)(struct device *dev, struct mtk_mutex *mutex); > void (*remove)(struct device *dev, struct mtk_mutex *mutex); > + unsigned int (*encoder_index)(struct device *dev); > }; > > struct mtk_ddp_comp {
Hi CK, Thanks for the reviews. On Mon, 2023-09-18 at 07:18 +0000, CK Hu (胡俊光) wrote: > Hi, Jason: > > On Thu, 2023-08-10 at 02:15 +0800, Jason-JH.Lin wrote: > > To support dynamic connector selection function, each ddp_comp need > > to > > get their encoder_index to identify which connector should be > > selected. > > > > Add encoder_index function to mtk_ddp_comp_funcs and the > > implementation > > of mtk_dpi_encoder_index to get its encoder_index. > > Separate the common part and dpi part to different patch. > OK, I'll separate the common part at the next version. > Regards, > CK > > > > > Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> > > --- > > drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 + > > drivers/gpu/drm/mediatek/mtk_dpi.c | 9 +++++++++ > > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 + > > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + > > 4 files changed, 12 insertions(+) > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > > b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > > index 2254038519e1..5f07037670e9 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h > > +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h > > @@ -44,6 +44,7 @@ void mtk_dither_set_common(void __iomem *regs, > > struct cmdq_client_reg *cmdq_reg, > > > > void mtk_dpi_start(struct device *dev); > > void mtk_dpi_stop(struct device *dev); > > +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); > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c > > b/drivers/gpu/drm/mediatek/mtk_dpi.c > > index 948a53f1f4b3..3d6b3c228f30 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > > @@ -782,6 +782,15 @@ void mtk_dpi_stop(struct device *dev) > > mtk_dpi_power_off(dpi); > > } > > > > +unsigned int mtk_dpi_encoder_index(struct device *dev) > > +{ > > + struct mtk_dpi *dpi = dev_get_drvdata(dev); > > + unsigned int encoder_index = drm_encoder_index(&dpi->encoder); > > + > > + dev_dbg(dev, "encoder index:%d\n", encoder_index); > > + return encoder_index; > > +} > > + > > static int mtk_dpi_bind(struct device *dev, struct device *master, > > void *data) > > { > > struct mtk_dpi *dpi = dev_get_drvdata(dev); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > > index f114da4d36a9..effaaa769b46 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c > > @@ -304,6 +304,7 @@ static const struct mtk_ddp_comp_funcs > > ddp_dither > > = { > > static const struct mtk_ddp_comp_funcs ddp_dpi = { > > .start = mtk_dpi_start, > > .stop = mtk_dpi_stop, > > + .encoder_index = mtk_dpi_encoder_index, > > }; > > > > static const struct mtk_ddp_comp_funcs ddp_dsc = { > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > > b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > > index febcaeef16a1..326cb57a18c9 100644 > > --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > > +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h > > @@ -80,6 +80,7 @@ struct mtk_ddp_comp_funcs { > > void (*disconnect)(struct device *dev, struct device > > *mmsys_dev, unsigned int next); > > void (*add)(struct device *dev, struct mtk_mutex *mutex); > > void (*remove)(struct device *dev, struct mtk_mutex *mutex); > > + unsigned int (*encoder_index)(struct device *dev); > > }; > > > > struct mtk_ddp_comp {
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h b/drivers/gpu/drm/mediatek/mtk_disp_drv.h index 2254038519e1..5f07037670e9 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h @@ -44,6 +44,7 @@ void mtk_dither_set_common(void __iomem *regs, struct cmdq_client_reg *cmdq_reg, void mtk_dpi_start(struct device *dev); void mtk_dpi_stop(struct device *dev); +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); diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c index 948a53f1f4b3..3d6b3c228f30 100644 --- a/drivers/gpu/drm/mediatek/mtk_dpi.c +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c @@ -782,6 +782,15 @@ void mtk_dpi_stop(struct device *dev) mtk_dpi_power_off(dpi); } +unsigned int mtk_dpi_encoder_index(struct device *dev) +{ + struct mtk_dpi *dpi = dev_get_drvdata(dev); + unsigned int encoder_index = drm_encoder_index(&dpi->encoder); + + dev_dbg(dev, "encoder index:%d\n", encoder_index); + return encoder_index; +} + static int mtk_dpi_bind(struct device *dev, struct device *master, void *data) { struct mtk_dpi *dpi = dev_get_drvdata(dev); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c index f114da4d36a9..effaaa769b46 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -304,6 +304,7 @@ static const struct mtk_ddp_comp_funcs ddp_dither = { static const struct mtk_ddp_comp_funcs ddp_dpi = { .start = mtk_dpi_start, .stop = mtk_dpi_stop, + .encoder_index = mtk_dpi_encoder_index, }; static const struct mtk_ddp_comp_funcs ddp_dsc = { diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h index febcaeef16a1..326cb57a18c9 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h @@ -80,6 +80,7 @@ struct mtk_ddp_comp_funcs { void (*disconnect)(struct device *dev, struct device *mmsys_dev, unsigned int next); void (*add)(struct device *dev, struct mtk_mutex *mutex); void (*remove)(struct device *dev, struct mtk_mutex *mutex); + unsigned int (*encoder_index)(struct device *dev); }; struct mtk_ddp_comp {
To support dynamic connector selection function, each ddp_comp need to get their encoder_index to identify which connector should be selected. Add encoder_index function to mtk_ddp_comp_funcs and the implementation of mtk_dpi_encoder_index to get its encoder_index. Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com> --- drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 + drivers/gpu/drm/mediatek/mtk_dpi.c | 9 +++++++++ drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 + drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + 4 files changed, 12 insertions(+)