We retrieve the byte and pixel source clocks (RCG clocks) in the dsi
driver via DT. These are needed so that we can re-parent these source
clocks if we want to drive it using a different DSI PLL.

We shouldn't get these via DT because they aren't clocks that directly
serve as inputs to the dsi host.

Fortunately, there is a static parent-child link between the
byte_clk_src/pixel_clk_src and byte_clk/pixel_clk clocks. So, we can
retrieve the source clocks via clk_get_parent.

Do this instead of retrieving via DT.

Cc: Rob Herring <robh at kernel.org>
Cc: Stephen Boyd <sboyd at codeaurora.org>
Signed-off-by: Archit Taneja <architt at codeaurora.org>
---
 drivers/gpu/drm/msm/dsi/dsi_host.c | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c 
b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 4c49868..aec97c8 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -356,20 +356,17 @@ static int dsi_clk_init(struct msm_dsi_host *msm_host)
                goto exit;
        }

-       msm_host->byte_clk_src = devm_clk_get(dev, "byte_clk_src");
-       if (IS_ERR(msm_host->byte_clk_src)) {
-               ret = PTR_ERR(msm_host->byte_clk_src);
+       msm_host->byte_clk_src = clk_get_parent(msm_host->byte_clk);
+       if (!msm_host->byte_clk_src) {
+               ret = -ENODEV;
                pr_err("%s: can't find byte_clk_src. ret=%d\n", __func__, ret);
-               msm_host->byte_clk_src = NULL;
                goto exit;
        }

-       msm_host->pixel_clk_src = devm_clk_get(dev, "pixel_clk_src");
-       if (IS_ERR(msm_host->pixel_clk_src)) {
-               ret = PTR_ERR(msm_host->pixel_clk_src);
+       msm_host->pixel_clk_src = clk_get_parent(msm_host->pixel_clk);
+       if (!msm_host->pixel_clk_src) {
+               ret = -ENODEV;
                pr_err("%s: can't find pixel_clk_src. ret=%d\n", __func__, ret);
-               msm_host->pixel_clk_src = NULL;
-               goto exit;
        }

 exit:
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation

Reply via email to