drm/msm/hdmi: make hdmi_phy_8960 OF clk provider
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 19 Jan 2023 13:22:17 +0000 (15:22 +0200)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 26 Jan 2023 19:06:39 +0000 (21:06 +0200)
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@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/519211/
Link: https://lore.kernel.org/r/20230119132219.2479775-5-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/hdmi/hdmi_pll_8960.c

index c3e7ff4..cb35a29 100644 (file)
@@ -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;