summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorNarender Ankam <nankam@codeaurora.org>2017-11-14 18:40:15 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-13 21:12:50 -0700
commit8eba91adf8db1f91b5d4dd045c2a79288dd1d19c (patch)
tree02eca531e7c0f59cf3c4157c9d6fe98c04b7de9b /drivers/video/fbdev
parentc3b8576cf952bcc998661b11997d924deefcb3da (diff)
msm: mdss: hdmi: fix HDCP1.4 authentication issues
After part I authentication, SW DDC is not disabled and because of this, we observe arbitration issues during part III authentication. Disable SW DDC before starting part III of HDCP authentication. Fail part II of authentication with repeater if its device count is zero. Change-Id: I72f5b1115c094d4a72ae2b324f3903cdb195e5fe Signed-off-by: Narender Ankam <nankam@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_hdcp_1x.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_hdcp_1x.c b/drivers/video/fbdev/msm/mdss_hdcp_1x.c
index 2dc9c8f96c5b..2c86c8148211 100644
--- a/drivers/video/fbdev/msm/mdss_hdcp_1x.c
+++ b/drivers/video/fbdev/msm/mdss_hdcp_1x.c
@@ -1236,8 +1236,10 @@ static int hdcp_1x_authentication_part2(struct hdcp_1x *hdcp)
goto error;
/* do not proceed further if no device connected */
- if (!hdcp->current_tp.dev_count)
+ if (!hdcp->current_tp.dev_count) {
+ rc = -EINVAL;
goto error;
+ }
rc = hdcp_1x_write_ksv_fifo(hdcp);
} while (--v_retry && rc);
@@ -1344,7 +1346,7 @@ static void hdcp_1x_auth_work(struct work_struct *work)
goto end;
} else {
hdcp->hdcp_state = HDCP_STATE_AUTHENTICATED;
- goto end;
+ goto disable_sw_ddc;
}
hdcp->ksv_ready = false;
@@ -1353,6 +1355,7 @@ static void hdcp_1x_auth_work(struct work_struct *work)
if (rc)
goto end;
+disable_sw_ddc:
/*
* Disabling software DDC before going into part3 to make sure
* there is no Arbitration between software and hardware for DDC