Re: [PATCH v9 01/39] drm/i915: Gathering the HDCP1.4 routines together

2018-12-19 Thread Daniel Vetter
On Thu, Dec 13, 2018 at 09:31:03AM +0530, Ramalingam C wrote:
> All HDCP1.4 routines are gathered together, followed by the generic
> functions those can be extended for HDCP2.2 too.
> 
> Signed-off-by: Ramalingam C 

Since just code movement:

Acked-by: Daniel Vetter 

> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 118 
> +++---
>  1 file changed, 59 insertions(+), 59 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c 
> b/drivers/gpu/drm/i915/intel_hdcp.c
> index e000e54ad569..506b4cc6f46b 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -731,6 +731,65 @@ struct intel_connector *intel_hdcp_to_connector(struct 
> intel_hdcp *hdcp)
>   return container_of(hdcp, struct intel_connector, hdcp);
>  }
>  
> +/* Implements Part 3 of the HDCP authorization procedure */
> +int intel_hdcp_check_link(struct intel_connector *connector)
> +{
> + struct intel_hdcp *hdcp = &connector->hdcp;
> + struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> + struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> + enum port port = intel_dig_port->base.port;
> + int ret = 0;
> +
> + if (!hdcp->shim)
> + return -ENOENT;
> +
> + mutex_lock(&hdcp->mutex);
> +
> + if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> + goto out;
> +
> + if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> + DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
> +   connector->base.name, connector->base.base.id,
> +   I915_READ(PORT_HDCP_STATUS(port)));
> + ret = -ENXIO;
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> + if (hdcp->shim->check_link(intel_dig_port)) {
> + if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
> + schedule_work(&hdcp->prop_work);
> + }
> + goto out;
> + }
> +
> + DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying authentication\n",
> +   connector->base.name, connector->base.base.id);
> +
> + ret = _intel_hdcp_disable(connector);
> + if (ret) {
> + DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> + ret = _intel_hdcp_enable(connector);
> + if (ret) {
> + DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> +out:
> + mutex_unlock(&hdcp->mutex);
> + return ret;
> +}
> +
>  static void intel_hdcp_check_work(struct work_struct *work)
>  {
>   struct intel_hdcp *hdcp = container_of(to_delayed_work(work),
> @@ -867,62 +926,3 @@ void intel_hdcp_atomic_check(struct drm_connector 
> *connector,
>  new_state->crtc);
>   crtc_state->mode_changed = true;
>  }
> -
> -/* Implements Part 3 of the HDCP authorization procedure */
> -int intel_hdcp_check_link(struct intel_connector *connector)
> -{
> - struct intel_hdcp *hdcp = &connector->hdcp;
> - struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> - struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> - enum port port = intel_dig_port->base.port;
> - int ret = 0;
> -
> - if (!hdcp->shim)
> - return -ENOENT;
> -
> - mutex_lock(&hdcp->mutex);
> -
> - if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> - goto out;
> -
> - if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> - DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
> -   connector->base.name, connector->base.base.id,
> -   I915_READ(PORT_HDCP_STATUS(port)));
> - ret = -ENXIO;
> - hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> - schedule_work(&hdcp->prop_work);
> - goto out;
> - }
> -
> - if (hdcp->shim->check_link(intel_dig_port)) {
> - if (hdcp->value != DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> - hdcp->value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
> - schedule_work(&hdcp->prop_work);
> - }
> - goto out;
> - }
> -
> - DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying authentication\n",
> -   connector->base.name, connector->base.base.id);
> -
> - ret = _intel_hdcp_disable(connector);
> - if (ret) {
> - DRM_ERROR

Re: [PATCH v9 01/39] drm/i915: Gathering the HDCP1.4 routines together

2018-12-13 Thread C, Ramalingam


On 12/13/2018 1:47 PM, Winkler, Tomas wrote:



All HDCP1.4 routines are gathered together, followed by the generic functions
those can be extended for HDCP2.2 too.

Signed-off-by: Ramalingam C 
---
  drivers/gpu/drm/i915/intel_hdcp.c | 118 +++--
-
  1 file changed, 59 insertions(+), 59 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
b/drivers/gpu/drm/i915/intel_hdcp.c
index e000e54ad569..506b4cc6f46b 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -731,6 +731,65 @@ struct intel_connector
*intel_hdcp_to_connector(struct intel_hdcp *hdcp)
return container_of(hdcp, struct intel_connector, hdcp);  }

+/* Implements Part 3 of the HDCP authorization procedure */ int
+intel_hdcp_check_link(struct intel_connector *connector) {


Should be static


At this point in time, invoked from intel_dp.c. But at later part of
this series this function can be defined as static. Will do it then.

-Ram




+   struct intel_hdcp *hdcp = &connector->hdcp;
+   struct drm_i915_private *dev_priv = connector->base.dev-

dev_private;

+   struct intel_digital_port *intel_dig_port =
conn_to_dig_port(connector);
+   enum port port = intel_dig_port->base.port;
+   int ret = 0;
+
+   if (!hdcp->shim)
+   return -ENOENT;
+
+   mutex_lock(&hdcp->mutex);
+
+   if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
+   goto out;
+
+   if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
+   DRM_ERROR("%s:%d HDCP check failed: link is not
encrypted,%x\n",
+ connector->base.name, connector->base.base.id,
+ I915_READ(PORT_HDCP_STATUS(port)));
+   ret = -ENXIO;
+   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
+   schedule_work(&hdcp->prop_work);
+   goto out;
+   }
+
+   if (hdcp->shim->check_link(intel_dig_port)) {
+   if (hdcp->value !=
DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
+   hdcp->value =
DRM_MODE_CONTENT_PROTECTION_ENABLED;
+   schedule_work(&hdcp->prop_work);
+   }
+   goto out;
+   }
+
+   DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying
authentication\n",
+ connector->base.name, connector->base.base.id);
+
+   ret = _intel_hdcp_disable(connector);
+   if (ret) {
+   DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
+   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
+   schedule_work(&hdcp->prop_work);
+   goto out;
+   }
+
+   ret = _intel_hdcp_enable(connector);
+   if (ret) {
+   DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
+   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
+   schedule_work(&hdcp->prop_work);
+   goto out;
+   }
+
+out:
+   mutex_unlock(&hdcp->mutex);
+   return ret;
+}
+
  static void intel_hdcp_check_work(struct work_struct *work)  {
struct intel_hdcp *hdcp = container_of(to_delayed_work(work),
@@ -867,62 +926,3 @@ void intel_hdcp_atomic_check(struct drm_connector
*connector,
   new_state->crtc);
crtc_state->mode_changed = true;
  }
-
-/* Implements Part 3 of the HDCP authorization procedure */ -int
intel_hdcp_check_link(struct intel_connector *connector) -{
-   struct intel_hdcp *hdcp = &connector->hdcp;
-   struct drm_i915_private *dev_priv = connector->base.dev-

dev_private;

-   struct intel_digital_port *intel_dig_port =
conn_to_dig_port(connector);
-   enum port port = intel_dig_port->base.port;
-   int ret = 0;
-
-   if (!hdcp->shim)
-   return -ENOENT;
-
-   mutex_lock(&hdcp->mutex);
-
-   if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
-   goto out;
-
-   if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
-   DRM_ERROR("%s:%d HDCP check failed: link is not
encrypted,%x\n",
- connector->base.name, connector->base.base.id,
- I915_READ(PORT_HDCP_STATUS(port)));
-   ret = -ENXIO;
-   hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
-   schedule_work(&hdcp->prop_work);
-   goto out;
-   }
-
-   if (hdcp->shim->check_link(intel_dig_port)) {
-   if (hdcp->value !=
DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
-   hdcp->value =
DRM_MODE_CONTENT_PROTECTION_ENABLED;
-   schedule_work(&hdcp->prop_work);
-   }
-   goto out;
-   }
-
-   DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying
authentication\n",
- connector->base.name, connector->base.base.id);
-
-   ret = _intel_hdcp_disable(connector);
-   if (ret) {
-   D

RE: [PATCH v9 01/39] drm/i915: Gathering the HDCP1.4 routines together

2018-12-13 Thread Winkler, Tomas


> 
> All HDCP1.4 routines are gathered together, followed by the generic functions
> those can be extended for HDCP2.2 too.
> 
> Signed-off-by: Ramalingam C 
> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 118 +++--
> -
>  1 file changed, 59 insertions(+), 59 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
> b/drivers/gpu/drm/i915/intel_hdcp.c
> index e000e54ad569..506b4cc6f46b 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -731,6 +731,65 @@ struct intel_connector
> *intel_hdcp_to_connector(struct intel_hdcp *hdcp)
>   return container_of(hdcp, struct intel_connector, hdcp);  }
> 
> +/* Implements Part 3 of the HDCP authorization procedure */ int
> +intel_hdcp_check_link(struct intel_connector *connector) {


Should be static

> + struct intel_hdcp *hdcp = &connector->hdcp;
> + struct drm_i915_private *dev_priv = connector->base.dev-
> >dev_private;
> + struct intel_digital_port *intel_dig_port =
> conn_to_dig_port(connector);
> + enum port port = intel_dig_port->base.port;
> + int ret = 0;
> +
> + if (!hdcp->shim)
> + return -ENOENT;
> +
> + mutex_lock(&hdcp->mutex);
> +
> + if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> + goto out;
> +
> + if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> + DRM_ERROR("%s:%d HDCP check failed: link is not
> encrypted,%x\n",
> +   connector->base.name, connector->base.base.id,
> +   I915_READ(PORT_HDCP_STATUS(port)));
> + ret = -ENXIO;
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> + if (hdcp->shim->check_link(intel_dig_port)) {
> + if (hdcp->value !=
> DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> + hdcp->value =
> DRM_MODE_CONTENT_PROTECTION_ENABLED;
> + schedule_work(&hdcp->prop_work);
> + }
> + goto out;
> + }
> +
> + DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying
> authentication\n",
> +   connector->base.name, connector->base.base.id);
> +
> + ret = _intel_hdcp_disable(connector);
> + if (ret) {
> + DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> + ret = _intel_hdcp_enable(connector);
> + if (ret) {
> + DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
> + hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> + schedule_work(&hdcp->prop_work);
> + goto out;
> + }
> +
> +out:
> + mutex_unlock(&hdcp->mutex);
> + return ret;
> +}
> +
>  static void intel_hdcp_check_work(struct work_struct *work)  {
>   struct intel_hdcp *hdcp = container_of(to_delayed_work(work),
> @@ -867,62 +926,3 @@ void intel_hdcp_atomic_check(struct drm_connector
> *connector,
>  new_state->crtc);
>   crtc_state->mode_changed = true;
>  }
> -
> -/* Implements Part 3 of the HDCP authorization procedure */ -int
> intel_hdcp_check_link(struct intel_connector *connector) -{
> - struct intel_hdcp *hdcp = &connector->hdcp;
> - struct drm_i915_private *dev_priv = connector->base.dev-
> >dev_private;
> - struct intel_digital_port *intel_dig_port =
> conn_to_dig_port(connector);
> - enum port port = intel_dig_port->base.port;
> - int ret = 0;
> -
> - if (!hdcp->shim)
> - return -ENOENT;
> -
> - mutex_lock(&hdcp->mutex);
> -
> - if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> - goto out;
> -
> - if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> - DRM_ERROR("%s:%d HDCP check failed: link is not
> encrypted,%x\n",
> -   connector->base.name, connector->base.base.id,
> -   I915_READ(PORT_HDCP_STATUS(port)));
> - ret = -ENXIO;
> - hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
> - schedule_work(&hdcp->prop_work);
> - goto out;
> - }
> -
> - if (hdcp->shim->check_link(intel_dig_port)) {
> - if (hdcp->value !=
> DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> - hdcp->value =
> DRM_MODE_CONTENT_PROTECTION_ENABLED;
> - schedule_work(&hdcp->prop_work);
> - }
> - goto out;
> - }
> -
> - DRM_DEBUG_KMS("[%s:%d] HDCP link failed, retrying
> authentication\n",
> -   connector->base.name, connector->base.base.id);
> -
> - ret = _intel_hdcp_disable(connector);
> - if (ret) {
> - DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
> - hdcp->value = DRM_MODE