Hi, Angelo: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> 於 2025年2月17日 週一 下午11:49寫道: > > In preparation for adding support for MT8195's HDMI reserved > DPI, add calls to clk_prepare_enable() / clk_disable_unprepare() > for the TVD clock: in this particular case, the aforementioned > clock is not (and cannot be) parented to neither pixel or engine > clocks hence it won't get enabled automatically by the clock > framework. > > Please note that on all of the currently supported MediaTek > platforms, the TVD clock is always a parent of either pixel or > engine clocks, and this means that the common clock framework > is already enabling this clock before the children. > On such platforms, this commit will only increase the refcount > of the TVD clock without any functional change. Applied to mediatek-drm-next [1], thanks. [1] https://web.git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next Regards, Chun-Kuang. > > Reviewed-by: CK Hu <ck.hu@xxxxxxxxxxxx> > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > --- > drivers/gpu/drm/mediatek/mtk_dpi.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c > index e12dc73ed79c..ee952785866c 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c > @@ -499,6 +499,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->tvd_clk); > clk_disable_unprepare(dpi->engine_clk); > } > > @@ -515,6 +516,12 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi) > goto err_refcount; > } > > + ret = clk_prepare_enable(dpi->tvd_clk); > + if (ret) { > + dev_err(dpi->dev, "Failed to enable tvd pll: %d\n", ret); > + goto err_engine; > + } > + > ret = clk_prepare_enable(dpi->pixel_clk); > if (ret) { > dev_err(dpi->dev, "Failed to enable pixel clock: %d\n", ret); > @@ -524,6 +531,8 @@ static int mtk_dpi_power_on(struct mtk_dpi *dpi) > return 0; > > err_pixel: > + clk_disable_unprepare(dpi->tvd_clk); > +err_engine: > clk_disable_unprepare(dpi->engine_clk); > err_refcount: > dpi->refcount--; > -- > 2.48.1 >