[PATCH v5 09/40] drm/i915: Schedule hdcp_check_link in _intel_hdcp_enable

Sean Paul seanpaul at chromium.org
Mon Jul 9 20:34:11 UTC 2018


On Wed, Jun 27, 2018 at 02:09:58PM +0530, Ramalingam C wrote:
> 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.
> 
> v3:
>   No Changes.
> v4:
>   Style fix.
> v5:
>   No Change.
> 
> Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
> Reviewed-by: Uma Shankar <uma.shankar at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> index 769560591aa8..4bff74b3bed0 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -688,7 +688,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);
>  
> @@ -696,7 +696,13 @@ 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);

At best, this results in a duplicate scheduling when called from
intel_hdcp_check_link(). At worst, it schedules a check when it's not supposed
to (see the condition in intel_hdcp_check_work).

Sean

> +	else
> +		DRM_ERROR("HDCP authentication failed (%d tries/%d)\n",
> +			  tries, ret);
> +
>  	return ret;
>  }
>  
> @@ -790,8 +796,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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Sean Paul, Software Engineer, Google / Chromium OS


More information about the dri-devel mailing list