On 19.01.2023 14:22, Dmitry Baryshkov wrote: > On MSM8960 the HDMI PHY provides the PLL clock to the MMCC. As we are > preparing to convert the MSM8960 to use DT clocks properties (rather > than global clock names), register the OF clock provider. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> Konrad > drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c | 15 ++++++++++----- > 1 file changed, 10 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c b/drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c > index c3e7ff45e52a..cb35a297afbd 100644 > --- a/drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c > +++ b/drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c > @@ -422,8 +422,7 @@ int msm_hdmi_pll_8960_init(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct hdmi_pll_8960 *pll; > - struct clk *clk; > - int i; > + int i, ret; > > /* sanity check: */ > for (i = 0; i < (ARRAY_SIZE(freqtbl) - 1); i++) > @@ -443,10 +442,16 @@ int msm_hdmi_pll_8960_init(struct platform_device *pdev) > pll->pdev = pdev; > pll->clk_hw.init = &pll_init; > > - clk = devm_clk_register(dev, &pll->clk_hw); > - if (IS_ERR(clk)) { > + ret = devm_clk_hw_register(dev, &pll->clk_hw); > + if (ret < 0) { > DRM_DEV_ERROR(dev, "failed to register pll clock\n"); > - return -EINVAL; > + return ret; > + } > + > + ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, &pll->clk_hw); > + if (ret) { > + DRM_DEV_ERROR(dev, "%s: failed to register clk provider: %d\n", __func__, ret); > + return ret; > } > > return 0;