As a preparation for making the intel_hdcp_enable as common function
for both HDCP1.4 and HDCP2.2, HDCP1.4 check_link scheduling is moved
into _intel_hdcp_enable() function.

Signed-off-by: Ramalingam C <ramalinga...@intel.com>
---
 drivers/gpu/drm/i915/intel_hdcp.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c 
b/drivers/gpu/drm/i915/intel_hdcp.c
index 2265121e1102..0642c14126a1 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -626,7 +626,7 @@ static int _intel_hdcp_enable(struct intel_connector 
*connector)
                ret = intel_hdcp_auth(conn_to_dig_port(connector),
                                      hdcp->hdcp_shim);
                if (!ret)
-                       return 0;
+                       break;
 
                DRM_DEBUG_KMS("HDCP Auth failure (%d)\n", ret);
 
@@ -634,7 +634,12 @@ static int _intel_hdcp_enable(struct intel_connector 
*connector)
                _intel_hdcp_disable(connector);
        }
 
-       DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
+       if (i != tries)
+               schedule_delayed_work(&hdcp->hdcp_check_work,
+                                     DRM_HDCP_CHECK_PERIOD_MS);
+       else
+               DRM_ERROR("HDCP authentication failed (%d tries/%d)\n",
+                         tries, ret);
        return ret;
 }
 
@@ -729,8 +734,6 @@ int intel_hdcp_enable(struct intel_connector *connector)
 
        hdcp->hdcp_value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
        schedule_work(&hdcp->hdcp_prop_work);
-       schedule_delayed_work(&hdcp->hdcp_check_work,
-                             DRM_HDCP_CHECK_PERIOD_MS);
 out:
        mutex_unlock(&hdcp->hdcp_mutex);
        return ret;
-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to