浏览代码

drm/msm/dsi: Get byte_intf_clk only for versions that need it

Newer DSI host controllers (SDM845 in particular) require a new clock
called byte_intf_clk. A recent patch tried to add this as an optional
clock, but it still set 'ret' to an error number if it didn't find it.
This breaks the host's probe for all previous DSI host versions.

Instead of setting this up as an optional clock, try to get the clock
only for the DSI version that supports it.

Fixes: 56558fb ("drm/msm/dsi: Add byte_intf_clk")
Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Archit Taneja 7 年之前
父节点
当前提交
fb48989edb
共有 1 个文件被更改,包括 10 次插入5 次删除
  1. 10 5
      drivers/gpu/drm/msm/dsi/dsi_host.c

+ 10 - 5
drivers/gpu/drm/msm/dsi/dsi_host.c

@@ -378,11 +378,16 @@ static int dsi_clk_init(struct msm_dsi_host *msm_host)
 		goto exit;
 		goto exit;
 	}
 	}
 
 
-	msm_host->byte_intf_clk = msm_clk_get(pdev, "byte_intf");
-	if (IS_ERR(msm_host->byte_intf_clk)) {
-		ret = PTR_ERR(msm_host->byte_intf_clk);
-		pr_debug("%s: can't find byte_intf clock. ret=%d\n",
-			 __func__, ret);
+	if (cfg_hnd->major == MSM_DSI_VER_MAJOR_6G &&
+	    cfg_hnd->minor >= MSM_DSI_6G_VER_MINOR_V2_2_1) {
+		msm_host->byte_intf_clk = msm_clk_get(pdev, "byte_intf");
+		if (IS_ERR(msm_host->byte_intf_clk)) {
+			ret = PTR_ERR(msm_host->byte_intf_clk);
+			pr_err("%s: can't find byte_intf clock. ret=%d\n",
+			        __func__, ret);
+			goto exit;
+		}
+	} else {
 		msm_host->byte_intf_clk = NULL;
 		msm_host->byte_intf_clk = NULL;
 	}
 	}