summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/dsi
diff options
context:
space:
mode:
authorArchit Taneja2018-02-12 07:31:07 +0100
committerRob Clark2018-02-20 16:41:22 +0100
commitfb48989edb628342af0fad478174ae30b2e1e23a (patch)
tree2863933fa68cadae2d78e7c95df9b272f4491ab4 /drivers/gpu/drm/msm/dsi
parentdrm/msm/adreno: Use generic function to load firmware to a buffer object (diff)
downloadkernel-qcow2-linux-fb48989edb628342af0fad478174ae30b2e1e23a.tar.gz
kernel-qcow2-linux-fb48989edb628342af0fad478174ae30b2e1e23a.tar.xz
kernel-qcow2-linux-fb48989edb628342af0fad478174ae30b2e1e23a.zip
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>
Diffstat (limited to 'drivers/gpu/drm/msm/dsi')
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi_host.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index f675975c2655..62ac614eccf9 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/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;
}
- 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;
}