Skip to content

Commit

Permalink
drm/i915: Reauthenticate HDCP on failure
Browse files Browse the repository at this point in the history
Incase of HDCP authentication failure, HDCP spec expects
reauthentication. Hence this patch adds the reauthentications
to be compliance with spec.

v2:
  do-while to for loop for simplicity. [Seanpaul]

v3:
  positioning the logs effectively. [Seanpaul]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/1517609350-10698-8-git-send-email-ramalingam.c@intel.com
  • Loading branch information
Ramalingam C authored and Sean Paul committed Feb 5, 2018
1 parent 791a98d commit 6d98394
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions drivers/gpu/drm/i915/intel_hdcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
static int _intel_hdcp_enable(struct intel_connector *connector)
{
struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
int i, ret;
int i, ret, tries = 3;

DRM_DEBUG_KMS("[%s:%d] HDCP is being enabled...\n",
connector->base.name, connector->base.base.id);
Expand All @@ -596,17 +596,21 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
return ret;
}

ret = intel_hdcp_auth(conn_to_dig_port(connector),
connector->hdcp_shim);
if (ret) {
DRM_ERROR("Failed to authenticate HDCP (%d)\n", ret);
/* Incase of authentication failures, HDCP spec expects reauth. */
for (i = 0; i < tries; i++) {
ret = intel_hdcp_auth(conn_to_dig_port(connector),
connector->hdcp_shim);
if (!ret)
return 0;

DRM_DEBUG_KMS("HDCP Auth failure (%d)\n", ret);

/* Ensuring HDCP encryption and signalling are stopped. */
_intel_hdcp_disable(connector);
return ret;
}

return 0;
DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
return ret;
}

static void intel_hdcp_check_work(struct work_struct *work)
Expand Down

0 comments on commit 6d98394

Please sign in to comment.