diff options
| author | Sandeep Panda <spanda@codeaurora.org> | 2014-04-29 11:50:09 +0530 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:29:37 -0700 |
| commit | b192b2158dd0ba8b023b4f6ebe71e0196f9bd7b0 (patch) | |
| tree | 6a76716cd13fac23f969c0af9f92779ca8479422 /drivers/video/fbdev | |
| parent | ff2167526c5fe1623bfe331ec99c2bafe64fe75d (diff) | |
msm: mdss: hdmi: Fix HDCP ddc clean up wait time
With existing implementation the check for ddc hardware
not ready always fails because of incorrect logic and
driver always waits for 2 seconds even if there is no
pending hardware ddc transaction. Fix this by waiting
only for the time ddc transactions are underway.
Change-Id: Ic8396200d5d078d604ba3b4414d41644b455c103
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_hdmi_hdcp.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/video/fbdev/msm/mdss_hdmi_hdcp.c b/drivers/video/fbdev/msm/mdss_hdmi_hdcp.c index f3889fd2beec..07b92a0fed3c 100644 --- a/drivers/video/fbdev/msm/mdss_hdmi_hdcp.c +++ b/drivers/video/fbdev/msm/mdss_hdmi_hdcp.c @@ -186,11 +186,11 @@ static void hdmi_hdcp_hw_ddc_clean(struct hdmi_hdcp_ctrl *hdcp_ctrl) do { hdcp_ddc_status = DSS_REG_R(io, HDMI_HDCP_DDC_STATUS); ddc_hw_status = DSS_REG_R(io, HDMI_DDC_HW_STATUS); - ddc_xfer_done = (hdcp_ddc_status & BIT(10)) ; - ddc_xfer_req = (hdcp_ddc_status & BIT(4)) ; - ddc_hw_done = (ddc_hw_status & BIT(3)) ; - ddc_hw_not_ready = ((ddc_xfer_done != 1) || - (ddc_xfer_req != 0) || (ddc_hw_done != 1)); + ddc_xfer_done = hdcp_ddc_status & BIT(10); + ddc_xfer_req = hdcp_ddc_status & BIT(4); + ddc_hw_done = ddc_hw_status & BIT(3); + ddc_hw_not_ready = !ddc_xfer_done || + ddc_xfer_req || !ddc_hw_done; DEV_DBG("%s: %s: timeout count(%d):ddc hw%sready\n", __func__, HDCP_STATE_NAME, timeout_count, |
