Commit fbf652bd authored by Anshuman Gupta's avatar Anshuman Gupta
Browse files

drm/i915/hdcp: Move HDCP enc status timeout to header



DP MST stream encryption status requires time of a link frame
in order to change its status, but as there were some HDCP
encryption timeout observed earlier, it is safer to use
ENCRYPT_STATUS_CHANGE_TIMEOUT_MS timeout for stream status too,
it requires to move the macro to a header.
It will be used by both HDCP{1.x,2.x} stream status timeout.

Related: 'commit 7e90e8d0 ("drm/i915: Increase timeout for Encrypt
status change")'
Cc: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
Reviewed-by: default avatarRamalingam C <ramalingam.c@intel.com>
Tested-by: default avatarKarthik B S <karthik.b.s@intel.com>
Signed-off-by: default avatarAnshuman Gupta <anshuman.gupta@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210111081120.28417-7-anshuman.gupta@intel.com
parent fc6097d4
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -23,7 +23,6 @@
#include "intel_connector.h"
#include "intel_connector.h"


#define KEY_LOAD_TRIES	5
#define KEY_LOAD_TRIES	5
#define ENCRYPT_STATUS_CHANGE_TIMEOUT_MS	50
#define HDCP2_LC_RETRY_CNT			3
#define HDCP2_LC_RETRY_CNT			3


static
static
@@ -762,7 +761,7 @@ static int intel_hdcp_auth(struct intel_connector *connector)
	if (intel_de_wait_for_set(dev_priv,
	if (intel_de_wait_for_set(dev_priv,
				  HDCP_STATUS(dev_priv, cpu_transcoder, port),
				  HDCP_STATUS(dev_priv, cpu_transcoder, port),
				  HDCP_STATUS_ENC,
				  HDCP_STATUS_ENC,
				  ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
				  HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
		drm_err(&dev_priv->drm, "Timed out waiting for encryption\n");
		drm_err(&dev_priv->drm, "Timed out waiting for encryption\n");
		return -ETIMEDOUT;
		return -ETIMEDOUT;
	}
	}
@@ -809,7 +808,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
	intel_de_write(dev_priv, HDCP_CONF(dev_priv, cpu_transcoder, port), 0);
	intel_de_write(dev_priv, HDCP_CONF(dev_priv, cpu_transcoder, port), 0);
	if (intel_de_wait_for_clear(dev_priv,
	if (intel_de_wait_for_clear(dev_priv,
				    HDCP_STATUS(dev_priv, cpu_transcoder, port),
				    HDCP_STATUS(dev_priv, cpu_transcoder, port),
				    ~0, ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
				    ~0, HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS)) {
		drm_err(&dev_priv->drm,
		drm_err(&dev_priv->drm,
			"Failed to disable HDCP, timeout clearing status\n");
			"Failed to disable HDCP, timeout clearing status\n");
		return -ETIMEDOUT;
		return -ETIMEDOUT;
@@ -1641,7 +1640,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
				    HDCP2_STATUS(dev_priv, cpu_transcoder,
				    HDCP2_STATUS(dev_priv, cpu_transcoder,
						 port),
						 port),
				    LINK_ENCRYPTION_STATUS,
				    LINK_ENCRYPTION_STATUS,
				    ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
				    HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);


	return ret;
	return ret;
}
}
@@ -1665,7 +1664,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
				      HDCP2_STATUS(dev_priv, cpu_transcoder,
				      HDCP2_STATUS(dev_priv, cpu_transcoder,
						   port),
						   port),
				      LINK_ENCRYPTION_STATUS,
				      LINK_ENCRYPTION_STATUS,
				      ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
				      HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
	if (ret == -ETIMEDOUT)
	if (ret == -ETIMEDOUT)
		drm_dbg_kms(&dev_priv->drm, "Disable Encryption Timedout");
		drm_dbg_kms(&dev_priv->drm, "Disable Encryption Timedout");


+2 −0
Original line number Original line Diff line number Diff line
@@ -8,6 +8,8 @@


#include <linux/types.h>
#include <linux/types.h>


#define HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS	50

struct drm_connector;
struct drm_connector;
struct drm_connector_state;
struct drm_connector_state;
struct drm_i915_private;
struct drm_i915_private;