提交 eb2b47bb 编写于 作者: J Jonathan Marek 提交者: Rob Clark

drm/msm/mdp4: only use lut_clk on mdp4.2+

Signed-off-by: NJonathan Marek <jonathan@marek.ca>
Signed-off-by: NRob Clark <robdclark@gmail.com>
上级 1fed8df3
...@@ -206,7 +206,8 @@ int mdp4_disable(struct mdp4_kms *mdp4_kms) ...@@ -206,7 +206,8 @@ int mdp4_disable(struct mdp4_kms *mdp4_kms)
clk_disable_unprepare(mdp4_kms->clk); clk_disable_unprepare(mdp4_kms->clk);
if (mdp4_kms->pclk) if (mdp4_kms->pclk)
clk_disable_unprepare(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) if (mdp4_kms->axi_clk)
clk_disable_unprepare(mdp4_kms->axi_clk); clk_disable_unprepare(mdp4_kms->axi_clk);
...@@ -220,7 +221,8 @@ int mdp4_enable(struct mdp4_kms *mdp4_kms) ...@@ -220,7 +221,8 @@ int mdp4_enable(struct mdp4_kms *mdp4_kms)
clk_prepare_enable(mdp4_kms->clk); clk_prepare_enable(mdp4_kms->clk);
if (mdp4_kms->pclk) if (mdp4_kms->pclk)
clk_prepare_enable(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) if (mdp4_kms->axi_clk)
clk_prepare_enable(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) ...@@ -472,12 +474,13 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)
if (IS_ERR(mdp4_kms->pclk)) if (IS_ERR(mdp4_kms->pclk))
mdp4_kms->pclk = NULL; mdp4_kms->pclk = NULL;
// XXX if (rev >= MDP_REV_42) { ??? if (mdp4_kms->rev >= 2) {
mdp4_kms->lut_clk = devm_clk_get(&pdev->dev, "lut_clk"); mdp4_kms->lut_clk = devm_clk_get(&pdev->dev, "lut_clk");
if (IS_ERR(mdp4_kms->lut_clk)) { if (IS_ERR(mdp4_kms->lut_clk)) {
DRM_DEV_ERROR(dev->dev, "failed to get lut_clk\n"); DRM_DEV_ERROR(dev->dev, "failed to get lut_clk\n");
ret = PTR_ERR(mdp4_kms->lut_clk); ret = PTR_ERR(mdp4_kms->lut_clk);
goto fail; goto fail;
}
} }
mdp4_kms->axi_clk = devm_clk_get(&pdev->dev, "bus_clk"); 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) ...@@ -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->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); pm_runtime_enable(dev->dev);
mdp4_kms->rpm_enabled = true; mdp4_kms->rpm_enabled = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册