Signed-off-by: Jonathan Marek <jonat...@marek.ca>
---
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c 
b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index ae25d763cd8c..8f765f284d11 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -206,7 +206,8 @@ int mdp4_disable(struct mdp4_kms *mdp4_kms)
        clk_disable_unprepare(mdp4_kms->clk);
        if (mdp4_kms->pclk)
                clk_disable_unprepare(mdp4_kms->pclk);
-       clk_disable_unprepare(mdp4_kms->lut_clk);
+       if (mdp4_kms->lut_clk)
+               clk_disable_unprepare(mdp4_kms->lut_clk);
        if (mdp4_kms->axi_clk)
                clk_disable_unprepare(mdp4_kms->axi_clk);
 
@@ -220,7 +221,8 @@ int mdp4_enable(struct mdp4_kms *mdp4_kms)
        clk_prepare_enable(mdp4_kms->clk);
        if (mdp4_kms->pclk)
                clk_prepare_enable(mdp4_kms->pclk);
-       clk_prepare_enable(mdp4_kms->lut_clk);
+       if (mdp4_kms->lut_clk)
+               clk_prepare_enable(mdp4_kms->lut_clk);
        if (mdp4_kms->axi_clk)
                clk_prepare_enable(mdp4_kms->axi_clk);
 
@@ -472,12 +474,13 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
        if (IS_ERR(mdp4_kms->pclk))
                mdp4_kms->pclk = NULL;
 
-       // XXX if (rev >= MDP_REV_42) { ???
-       mdp4_kms->lut_clk = devm_clk_get(&pdev->dev, "lut_clk");
-       if (IS_ERR(mdp4_kms->lut_clk)) {
-               dev_err(dev->dev, "failed to get lut_clk\n");
-               ret = PTR_ERR(mdp4_kms->lut_clk);
-               goto fail;
+       if (mdp4_kms->rev >= 2) {
+               mdp4_kms->lut_clk = devm_clk_get(&pdev->dev, "lut_clk");
+               if (IS_ERR(mdp4_kms->lut_clk)) {
+                       dev_err(dev->dev, "failed to get lut_clk\n");
+                       ret = PTR_ERR(mdp4_kms->lut_clk);
+                       goto fail;
+               }
        }
 
        mdp4_kms->axi_clk = devm_clk_get(&pdev->dev, "bus_clk");
@@ -488,7 +491,8 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
        }
 
        clk_set_rate(mdp4_kms->clk, config->max_clk);
-       clk_set_rate(mdp4_kms->lut_clk, config->max_clk);
+       if (mdp4_kms->lut_clk)
+               clk_set_rate(mdp4_kms->lut_clk, config->max_clk);
 
        pm_runtime_enable(dev->dev);
        mdp4_kms->rpm_enabled = true;
-- 
2.17.1

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

Reply via email to