From accf510c82dc1bdb6f344d47d87fc3db0198d01a Mon Sep 17 00:00:00 2001 From: Narender Ankam Date: Thu, 27 Apr 2017 16:35:37 +0530 Subject: [PATCH] msm: mdss: dp: fix display port crash caused by unclocked register access Display port main link control clock is enabled during UNBLANK ioctl call. Due to some error reasons, UNBLANK ioctl call may early return without enabling DP control clock. Later if any ioctl is called and tries to access unclocked DP link registers, it will cause noc error. Add a check to handle these ioctls only if DP is fully powered on. Change-Id: Ie5a5707f708a0e39d21bf06b8e479b7b95249566 Signed-off-by: Narender Ankam --- drivers/video/fbdev/msm/mdss_dp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/video/fbdev/msm/mdss_dp.c b/drivers/video/fbdev/msm/mdss_dp.c index 1e878e9a00cb..797cdee8eb6e 100644 --- a/drivers/video/fbdev/msm/mdss_dp.c +++ b/drivers/video/fbdev/msm/mdss_dp.c @@ -3045,6 +3045,10 @@ static int mdss_dp_event_handler(struct mdss_panel_data *pdata, rc = mdss_dp_on(pdata); break; case MDSS_EVENT_PANEL_ON: + if (!dp->power_on) { + pr_err("DP Controller not powered on\n"); + break; + } mdss_dp_update_hdcp_info(dp); if (dp_is_hdcp_enabled(dp)) { @@ -3065,6 +3069,10 @@ static int mdss_dp_event_handler(struct mdss_panel_data *pdata, complete_all(&dp->notification_comp); break; case MDSS_EVENT_BLANK: + if (!dp->power_on) { + pr_err("DP Controller not powered on\n"); + break; + } if (dp_is_hdcp_enabled(dp)) { dp->hdcp_status = HDCP_STATE_INACTIVE;