Re: [PATCH v6 09/42] drm/mediatek: mtk_dpi: Explicitly manage TVD clock in power on/off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2025-02-14 at 09:51 +0800, CK Hu wrote:
> On Tue, 2025-02-11 at 12:33 +0100, AngeloGioacchino Del Regno wrote:
> > External email : Please do not click links or open attachments until you have verified the sender or the content.
> > 
> > 
> > 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.
> 
> Reviewed-by: CK Hu <ck.hu@xxxxxxxxxxxx>

One question:
MT8195 DPI clock is from HDMI, why need to contol TVD clock?
It seems this patch is redundant.

Regards,
CK

> 
> > 
> > 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 5c15c8935916..67504eb874d2 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> > @@ -501,6 +501,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);
> >  }
> > 
> > @@ -517,6 +518,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);
> > @@ -526,6 +533,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
> > 
> 





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux