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 <nankam@codeaurora.org>
This commit is contained in:
Narender Ankam 2017-04-27 16:35:37 +05:30
parent 7d78f564eb
commit accf510c82

View file

@ -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;