Hi, Rex: On Tue, 2022-06-21 at 11:50 +0800, Rex-BC Chen wrote: > On Tue, 2022-06-21 at 11:45 +0800, CK Hu wrote: > > On Tue, 2022-06-21 at 11:11 +0800, Rex-BC Chen wrote: > > > On Tue, 2022-06-21 at 10:55 +0800, CK Hu wrote: > > > > Hi, Bo-Chen: > > > > > > > > On Mon, 2022-06-20 at 20:10 +0800, Bo-Chen Chen wrote: > > > > > We should enable/disable tvd_clk when power_on/power_off, so > > > > > add > > > > > this > > > > > patch to do this. > > > > > > > > Without this patch, what would happen? > > > > It seems this patch is redundant for these SoCs: > > > > > > > > static const struct of_device_id mtk_dpi_of_ids[] = { > > > > { .compatible = "mediatek,mt2701-dpi", > > > > .data = &mt2701_conf, > > > > }, > > > > { .compatible = "mediatek,mt8173-dpi", > > > > .data = &mt8173_conf, > > > > }, > > > > { .compatible = "mediatek,mt8183-dpi", > > > > .data = &mt8183_conf, > > > > }, > > > > { .compatible = "mediatek,mt8192-dpi", > > > > .data = &mt8192_conf, > > > > }, > > > > { }, > > > > }; > > > > > > > > Regards, > > > > CK > > > > > > > > > > Hello CK, > > > > > > IMO, this is a bug fix patch. From the usage of clock, if we want > > > to > > > use it, we should enable it . Therefore, I think we should add > > > this > > > and > > > I will add a fix tag for this patch. > > > > I think mt8173 chromebook use this driver for HDMI output. So > > mt8173 > > chromebook HDMI could not work normally? > > > > Regards, > > CK > > > > Hmm.. > I am not sure about this. But without this patch, dpi is also working > in mt8183/mt8192. It may be related to the ccf driver. But anyway, I > think we should do this whether ccf driver helps us to enable this > clock. OK. So, could you help to fix the bug in ccf? If HDMI is disabled but ccf still turn on this clock, the power would be wasted. Regards, CK > > BRs, > Bo-Chen > > > > > > > BRs, > > > Bo-Chen > > > > > > > > > > > > > > Signed-off-by: Bo-Chen Chen <rex-bc.chen@xxxxxxxxxxxx> > > > > > --- > > > > > drivers/gpu/drm/mediatek/mtk_dpi.c | 11 ++++++++++- > > > > > 1 file changed, 10 insertions(+), 1 deletion(-) > > > > > > > > > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c > > > > > b/drivers/gpu/drm/mediatek/mtk_dpi.c > > > > > index 2717b1741b7a..f83ecb154457 100644 > > > > > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > > > > > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > > > > > @@ -455,6 +455,7 @@ static void mtk_dpi_power_off(struct > > > > > mtk_dpi > > > > > *dpi) > > > > > mtk_dpi_disable(dpi); > > > > > clk_disable_unprepare(dpi->pixel_clk); > > > > > clk_disable_unprepare(dpi->engine_clk); > > > > > + clk_disable_unprepare(dpi->tvd_clk); > > > > > } > > > > > > > > > > static int mtk_dpi_power_on(struct mtk_dpi *dpi) > > > > > @@ -464,10 +465,16 @@ static int mtk_dpi_power_on(struct > > > > > mtk_dpi > > > > > *dpi) > > > > > if (++dpi->refcount != 1) > > > > > return 0; > > > > > > > > > > + ret = clk_prepare_enable(dpi->tvd_clk); > > > > > + if (ret) { > > > > > + dev_err(dpi->dev, "Failed to enable tvd pll: > > > > > %d\n", > > > > > ret); > > > > > + goto err_refcount; > > > > > + } > > > > > + > > > > > ret = clk_prepare_enable(dpi->engine_clk); > > > > > if (ret) { > > > > > dev_err(dpi->dev, "Failed to enable engine > > > > > clock: > > > > > %d\n", ret); > > > > > - goto err_refcount; > > > > > + goto err_engine; > > > > > } > > > > > > > > > > ret = clk_prepare_enable(dpi->pixel_clk); > > > > > @@ -484,6 +491,8 @@ static int mtk_dpi_power_on(struct > > > > > mtk_dpi > > > > > *dpi) > > > > > > > > > > err_pixel: > > > > > clk_disable_unprepare(dpi->engine_clk); > > > > > +err_engine: > > > > > + clk_disable_unprepare(dpi->tvd_clk); > > > > > err_refcount: > > > > > dpi->refcount--; > > > > > return ret; > > > > > > > > > > > > > > > > > > > >