diff mbox series

[3/3] drm/i915/hdcp: add hdcp sub-struct to struct intel_digital_port

Message ID 9da4be57b068acd06dec8b93977f0a70627103d4.1740746939.git.jani.nikula@intel.com (mailing list archive)
State New
Headers show
Series drm/i915/display: add some sub-structs for clarity | expand

Commit Message

Jani Nikula Feb. 28, 2025, 12:49 p.m. UTC
Move hdcp_mutex, num_hdcp_streams, hdcp_auth_status, hdcp_port_data, and
hdcp_mst_type1_capable members of struct intel_digital_port under an
hdcp sub-struct to group hdcp related things together.

Rename them mutex, num_streams, auth_status, port_data, and
mst_type1_capable for clarity.

Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/g4x_dp.c         |  2 +-
 drivers/gpu/drm/i915/display/g4x_hdmi.c       |  2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      |  6 +-
 .../drm/i915/display/intel_display_types.h    | 22 ++---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  2 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 84 +++++++++----------
 6 files changed, 60 insertions(+), 58 deletions(-)

Comments

Kandpal, Suraj Feb. 28, 2025, 3:13 p.m. UTC | #1
> -----Original Message-----
> From: Nikula, Jani <jani.nikula@intel.com>
> Sent: Friday, February 28, 2025 6:20 PM
> To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org
> Cc: Nikula, Jani <jani.nikula@intel.com>; Kandpal, Suraj
> <suraj.kandpal@intel.com>
> Subject: [PATCH 3/3] drm/i915/hdcp: add hdcp sub-struct to struct
> intel_digital_port
> 
> Move hdcp_mutex, num_hdcp_streams, hdcp_auth_status, hdcp_port_data,
> and hdcp_mst_type1_capable members of struct intel_digital_port under an
> hdcp sub-struct to group hdcp related things together.
> 
> Rename them mutex, num_streams, auth_status, port_data, and
> mst_type1_capable for clarity.
> 
> Cc: Suraj Kandpal <suraj.kandpal@intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

> ---
>  drivers/gpu/drm/i915/display/g4x_dp.c         |  2 +-
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |  2 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      |  6 +-
>  .../drm/i915/display/intel_display_types.h    | 22 ++---
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c  |  2 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.c     | 84 +++++++++----------
>  6 files changed, 60 insertions(+), 58 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c
> b/drivers/gpu/drm/i915/display/g4x_dp.c
> index 372c3683c193..55b9e9bfcc4d 100644
> --- a/drivers/gpu/drm/i915/display/g4x_dp.c
> +++ b/drivers/gpu/drm/i915/display/g4x_dp.c
> @@ -1311,7 +1311,7 @@ bool g4x_dp_init(struct intel_display *display,
> 
>  	intel_encoder->devdata = devdata;
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> +	mutex_init(&dig_port->hdcp.mutex);
> 
>  	if (drm_encoder_init(display->drm, &intel_encoder->base,
>  			     &intel_dp_enc_funcs,
> DRM_MODE_ENCODER_TMDS, diff --git
> a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index d9d1304dcc36..3dc2c59a3df0 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -715,7 +715,7 @@ bool g4x_hdmi_init(struct intel_display *display,
> 
>  	intel_encoder->devdata = devdata;
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> +	mutex_init(&dig_port->hdcp.mutex);
> 
>  	if (drm_encoder_init(display->drm, &intel_encoder->base,
>  			     &intel_hdmi_enc_funcs,
> DRM_MODE_ENCODER_TMDS, diff --git
> a/drivers/gpu/drm/i915/display/intel_ddi.c
> b/drivers/gpu/drm/i915/display/intel_ddi.c
> index ca7983ef373d..20fc258a4d6d 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4582,7 +4582,7 @@ static void intel_ddi_encoder_destroy(struct
> drm_encoder *encoder)
>  	intel_display_power_flush_work(display);
> 
>  	drm_encoder_cleanup(encoder);
> -	kfree(dig_port->hdcp_port_data.streams);
> +	kfree(dig_port->hdcp.port_data.streams);
>  	kfree(dig_port);
>  }
> 
> @@ -5187,8 +5187,8 @@ void intel_ddi_init(struct intel_display *display,
> 
>  	intel_encoder_link_check_init(encoder, intel_ddi_link_check);
> 
> -	mutex_init(&dig_port->hdcp_mutex);
> -	dig_port->num_hdcp_streams = 0;
> +	mutex_init(&dig_port->hdcp.mutex);
> +	dig_port->hdcp.num_streams = 0;
> 
>  	encoder->hotplug = intel_ddi_hotplug;
>  	encoder->compute_output_type = intel_ddi_compute_output_type;
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index b52fca816591..053be62a5be1 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1849,16 +1849,18 @@ struct intel_digital_port {
> 
>  	struct intel_tc_port *tc;
> 
> -	/* protects num_hdcp_streams reference count, hdcp_port_data and
> hdcp_auth_status */
> -	struct mutex hdcp_mutex;
> -	/* the number of pipes using HDCP signalling out of this port */
> -	unsigned int num_hdcp_streams;
> -	/* port HDCP auth status */
> -	bool hdcp_auth_status;
> -	/* HDCP port data need to pass to security f/w */
> -	struct hdcp_port_data hdcp_port_data;
> -	/* Whether the MST topology supports HDCP Type 1 Content */
> -	bool hdcp_mst_type1_capable;
> +	struct {
> +		/* protects num_streams reference count, port_data and
> auth_status */
> +		struct mutex mutex;
> +		/* the number of pipes using HDCP signalling out of this port
> */
> +		unsigned int num_streams;
> +		/* port HDCP auth status */
> +		bool auth_status;
> +		/* HDCP port data need to pass to security f/w */
> +		struct hdcp_port_data port_data;
> +		/* Whether the MST topology supports HDCP Type 1 Content
> */
> +		bool mst_type1_capable;
> +	} hdcp;
> 
>  	void (*write_infoframe)(struct intel_encoder *encoder,
>  				const struct intel_crtc_state *crtc_state, diff --
> git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> index 4c9481124c90..cc312596fb77 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
> @@ -799,7 +799,7 @@ intel_dp_mst_hdcp2_stream_encryption(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum transcoder cpu_transcoder = hdcp->stream_transcoder;
>  	enum pipe pipe = (enum pipe)cpu_transcoder; diff --git
> a/drivers/gpu/drm/i915/display/intel_hdcp.c
> b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 46f53ade432e..1bf424a822f3 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -107,16 +107,16 @@ intel_hdcp_required_content_stream(struct
> intel_atomic_state *state,
>  	struct drm_connector_list_iter conn_iter;
>  	struct intel_digital_port *conn_dig_port;
>  	struct intel_connector *connector;
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	bool enforce_type0 = false;
>  	int k;
> 
> -	if (dig_port->hdcp_auth_status)
> +	if (dig_port->hdcp.auth_status)
>  		return 0;
> 
>  	data->k = 0;
> 
> -	if (!dig_port->hdcp_mst_type1_capable)
> +	if (!dig_port->hdcp.mst_type1_capable)
>  		enforce_type0 = true;
> 
>  	drm_connector_list_iter_begin(display->drm, &conn_iter); @@ -159,7
> +159,7 @@ static int intel_hdcp_prepare_streams(struct intel_atomic_state
> *state,
>  				      struct intel_connector *connector)  {
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> 
>  	if (intel_encoder_is_mst(intel_attached_encoder(connector)))
> @@ -1001,7 +1001,7 @@ static int _intel_hdcp_disable(struct intel_connector
> *connector)
>  		 * don't disable it until it disabled HDCP encryption for
>  		 * all connectors in MST topology.
>  		 */
> -		if (dig_port->num_hdcp_streams > 0)
> +		if (dig_port->hdcp.num_streams > 0)
>  			return 0;
>  	}
> 
> @@ -1094,13 +1094,13 @@ static void intel_hdcp_update_value(struct
> intel_connector *connector,
>  	if (hdcp->value == value)
>  		return;
> 
> -	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port-
> >hdcp_mutex));
> +	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port-
> >hdcp.mutex));
> 
>  	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
> -		if (!drm_WARN_ON(display->drm, dig_port-
> >num_hdcp_streams == 0))
> -			dig_port->num_hdcp_streams--;
> +		if (!drm_WARN_ON(display->drm, dig_port-
> >hdcp.num_streams == 0))
> +			dig_port->hdcp.num_streams--;
>  	} else if (value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
> -		dig_port->num_hdcp_streams++;
> +		dig_port->hdcp.num_streams++;
>  	}
> 
>  	hdcp->value = value;
> @@ -1122,7 +1122,7 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
>  	int ret = 0;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
> 
>  	cpu_transcoder = hdcp->cpu_transcoder;
> 
> @@ -1177,7 +1177,7 @@ static int intel_hdcp_check_link(struct
> intel_connector *connector)
>  	}
> 
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -1219,7 +1219,7 @@ hdcp2_prepare_ake_init(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1249,7 +1249,7 @@ hdcp2_verify_rx_cert_prepare_km(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1277,7 +1277,7 @@ static int hdcp2_verify_hprime(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1303,7 +1303,7 @@ hdcp2_store_pairing_info(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1330,7 +1330,7 @@ hdcp2_prepare_lc_init(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1357,7 +1357,7 @@ hdcp2_verify_lprime(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1383,7 +1383,7 @@ static int hdcp2_prepare_skey(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1412,7 +1412,7 @@ hdcp2_verify_rep_topology_prepare_ack(struct
> intel_connector *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1442,7 +1442,7 @@ hdcp2_verify_mprime(struct intel_connector
> *connector,  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1466,7 +1466,7 @@ static int hdcp2_authenticate_port(struct
> intel_connector *connector)  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct i915_hdcp_arbiter *arbiter;
>  	int ret;
> 
> @@ -1503,7 +1503,7 @@ static int hdcp2_close_session(struct intel_connector
> *connector)
>  	}
> 
>  	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
> -					     &dig_port->hdcp_port_data);
> +					     &dig_port->hdcp.port_data);
>  	mutex_unlock(&display->hdcp.hdcp_mutex);
> 
>  	return ret;
> @@ -1691,7 +1691,7 @@ static
>  int _hdcp2_propagate_stream_management_info(struct intel_connector
> *connector)  {
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	union {
>  		struct hdcp2_rep_stream_manage stream_manage; @@ -
> 1769,11 +1769,11 @@ int hdcp2_authenticate_repeater_topology(struct
> intel_connector *connector)
>  	 * MST topology is not Type 1 capable if it contains a downstream
>  	 * device that is only HDCP 1.x or Legacy HDCP 2.0/2.1 compliant.
>  	 */
> -	dig_port->hdcp_mst_type1_capable =
> +	dig_port->hdcp.mst_type1_capable =
>  		!HDCP_2_2_HDCP1_DEVICE_CONNECTED(rx_info[1]) &&
>  		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
> 
> -	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
> +	if (!dig_port->hdcp.mst_type1_capable && hdcp->content_type) {
>  		drm_dbg_kms(display->drm,
>  			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
>  		return -EINVAL;
> @@ -1869,7 +1869,7 @@ static int hdcp2_enable_stream_encryption(struct
> intel_connector *connector)  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	enum port port = dig_port->base.port;
> @@ -1900,7 +1900,7 @@ static int hdcp2_enable_stream_encryption(struct
> intel_connector *connector)
>  	if (hdcp2_deauthenticate_port(connector) < 0)
>  		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> 
> -	dig_port->hdcp_auth_status = false;
> +	dig_port->hdcp.auth_status = false;
>  	data->k = 0;
> 
>  	return ret;
> @@ -1940,7 +1940,7 @@ static int hdcp2_enable_encryption(struct
> intel_connector *connector)
>  						 port),
>  				    LINK_ENCRYPTION_STATUS,
> 
> HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
> -	dig_port->hdcp_auth_status = true;
> +	dig_port->hdcp.auth_status = true;
> 
>  	return ret;
>  }
> @@ -2019,7 +2019,7 @@ static int hdcp2_authenticate_and_encrypt(struct
> intel_atomic_state *state,
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
>  	int ret = 0, i, tries = 3;
> 
> -	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
> +	for (i = 0; i < tries && !dig_port->hdcp.auth_status; i++) {
>  		ret = hdcp2_authenticate_sink(connector);
>  		if (!ret) {
>  			ret = intel_hdcp_prepare_streams(state, connector);
> @@ -2052,7 +2052,7 @@ static int hdcp2_authenticate_and_encrypt(struct
> intel_atomic_state *state,
>  			drm_dbg_kms(display->drm, "Port deauth failed.\n");
>  	}
> 
> -	if (!ret && !dig_port->hdcp_auth_status) {
> +	if (!ret && !dig_port->hdcp.auth_status) {
>  		/*
>  		 * Ensuring the required 200mSec min time interval between
>  		 * Session Key Exchange and encryption.
> @@ -2106,7 +2106,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery  {
>  	struct intel_display *display = to_intel_display(connector);
>  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	int ret;
> 
> @@ -2123,7 +2123,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
>  		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream
> encryption disabled\n",
>  			    transcoder_name(hdcp->stream_transcoder));
> 
> -		if (dig_port->num_hdcp_streams > 0 &&
> !hdcp2_link_recovery)
> +		if (dig_port->hdcp.num_streams > 0 && !hdcp2_link_recovery)
>  			return 0;
>  	}
> 
> @@ -2133,7 +2133,7 @@ _intel_hdcp2_disable(struct intel_connector
> *connector, bool hdcp2_link_recovery
>  		drm_dbg_kms(display->drm, "Port deauth failed.\n");
> 
>  	connector->hdcp.hdcp2_encrypted = false;
> -	dig_port->hdcp_auth_status = false;
> +	dig_port->hdcp.auth_status = false;
>  	data->k = 0;
> 
>  	return ret;
> @@ -2150,7 +2150,7 @@ static int intel_hdcp2_check_link(struct
> intel_connector *connector)
>  	int ret = 0;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
>  	cpu_transcoder = hdcp->cpu_transcoder;
> 
>  	/* hdcp2_check_link is expected only when HDCP2.2 is Enabled */ @@
> -2221,7 +2221,7 @@ static int intel_hdcp2_check_link(struct intel_connector
> *connector)
>  	intel_hdcp_update_value(connector,
> 
> 	DRM_MODE_CONTENT_PROTECTION_DESIRED, true);
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -2303,7 +2303,7 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
>  				     const struct intel_hdcp_shim *shim)  {
>  	struct intel_display *display = to_intel_display(connector);
> -	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
> +	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
>  	enum port port = dig_port->base.port;
> 
>  	if (DISPLAY_VER(display) < 12)
> @@ -2414,7 +2414,7 @@ int intel_hdcp_init(struct intel_connector
> *connector,
>  							       hdcp-
> >hdcp2_supported);
>  	if (ret) {
>  		hdcp->hdcp2_supported = false;
> -		kfree(dig_port->hdcp_port_data.streams);
> +		kfree(dig_port->hdcp.port_data.streams);
>  		return ret;
>  	}
> 
> @@ -2451,7 +2451,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  	}
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
>  	drm_WARN_ON(display->drm,
>  		    hdcp->value ==
> DRM_MODE_CONTENT_PROTECTION_ENABLED);
>  	hdcp->content_type = (u8)conn_state->hdcp_content_type;
> @@ -2465,7 +2465,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  	}
> 
>  	if (DISPLAY_VER(display) >= 12)
> -		dig_port->hdcp_port_data.hdcp_transcoder =
> +		dig_port->hdcp.port_data.hdcp_transcoder =
>  			intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
> 
>  	/*
> @@ -2499,7 +2499,7 @@ static int _intel_hdcp_enable(struct
> intel_atomic_state *state,
>  					true);
>  	}
> 
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	return ret;
>  }
> @@ -2535,7 +2535,7 @@ int intel_hdcp_disable(struct intel_connector
> *connector)
>  		return -ENOENT;
> 
>  	mutex_lock(&hdcp->mutex);
> -	mutex_lock(&dig_port->hdcp_mutex);
> +	mutex_lock(&dig_port->hdcp.mutex);
> 
>  	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
>  		goto out;
> @@ -2548,7 +2548,7 @@ int intel_hdcp_disable(struct intel_connector
> *connector)
>  		ret = _intel_hdcp_disable(connector);
> 
>  out:
> -	mutex_unlock(&dig_port->hdcp_mutex);
> +	mutex_unlock(&dig_port->hdcp.mutex);
>  	mutex_unlock(&hdcp->mutex);
>  	cancel_delayed_work_sync(&hdcp->check_work);
>  	return ret;
> --
> 2.39.5
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/g4x_dp.c b/drivers/gpu/drm/i915/display/g4x_dp.c
index 372c3683c193..55b9e9bfcc4d 100644
--- a/drivers/gpu/drm/i915/display/g4x_dp.c
+++ b/drivers/gpu/drm/i915/display/g4x_dp.c
@@ -1311,7 +1311,7 @@  bool g4x_dp_init(struct intel_display *display,
 
 	intel_encoder->devdata = devdata;
 
-	mutex_init(&dig_port->hdcp_mutex);
+	mutex_init(&dig_port->hdcp.mutex);
 
 	if (drm_encoder_init(display->drm, &intel_encoder->base,
 			     &intel_dp_enc_funcs, DRM_MODE_ENCODER_TMDS,
diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c b/drivers/gpu/drm/i915/display/g4x_hdmi.c
index d9d1304dcc36..3dc2c59a3df0 100644
--- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
+++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
@@ -715,7 +715,7 @@  bool g4x_hdmi_init(struct intel_display *display,
 
 	intel_encoder->devdata = devdata;
 
-	mutex_init(&dig_port->hdcp_mutex);
+	mutex_init(&dig_port->hdcp.mutex);
 
 	if (drm_encoder_init(display->drm, &intel_encoder->base,
 			     &intel_hdmi_enc_funcs, DRM_MODE_ENCODER_TMDS,
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index ca7983ef373d..20fc258a4d6d 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4582,7 +4582,7 @@  static void intel_ddi_encoder_destroy(struct drm_encoder *encoder)
 	intel_display_power_flush_work(display);
 
 	drm_encoder_cleanup(encoder);
-	kfree(dig_port->hdcp_port_data.streams);
+	kfree(dig_port->hdcp.port_data.streams);
 	kfree(dig_port);
 }
 
@@ -5187,8 +5187,8 @@  void intel_ddi_init(struct intel_display *display,
 
 	intel_encoder_link_check_init(encoder, intel_ddi_link_check);
 
-	mutex_init(&dig_port->hdcp_mutex);
-	dig_port->num_hdcp_streams = 0;
+	mutex_init(&dig_port->hdcp.mutex);
+	dig_port->hdcp.num_streams = 0;
 
 	encoder->hotplug = intel_ddi_hotplug;
 	encoder->compute_output_type = intel_ddi_compute_output_type;
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index b52fca816591..053be62a5be1 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1849,16 +1849,18 @@  struct intel_digital_port {
 
 	struct intel_tc_port *tc;
 
-	/* protects num_hdcp_streams reference count, hdcp_port_data and hdcp_auth_status */
-	struct mutex hdcp_mutex;
-	/* the number of pipes using HDCP signalling out of this port */
-	unsigned int num_hdcp_streams;
-	/* port HDCP auth status */
-	bool hdcp_auth_status;
-	/* HDCP port data need to pass to security f/w */
-	struct hdcp_port_data hdcp_port_data;
-	/* Whether the MST topology supports HDCP Type 1 Content */
-	bool hdcp_mst_type1_capable;
+	struct {
+		/* protects num_streams reference count, port_data and auth_status */
+		struct mutex mutex;
+		/* the number of pipes using HDCP signalling out of this port */
+		unsigned int num_streams;
+		/* port HDCP auth status */
+		bool auth_status;
+		/* HDCP port data need to pass to security f/w */
+		struct hdcp_port_data port_data;
+		/* Whether the MST topology supports HDCP Type 1 Content */
+		bool mst_type1_capable;
+	} hdcp;
 
 	void (*write_infoframe)(struct intel_encoder *encoder,
 				const struct intel_crtc_state *crtc_state,
diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index 4c9481124c90..cc312596fb77 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -799,7 +799,7 @@  intel_dp_mst_hdcp2_stream_encryption(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum transcoder cpu_transcoder = hdcp->stream_transcoder;
 	enum pipe pipe = (enum pipe)cpu_transcoder;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 46f53ade432e..1bf424a822f3 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -107,16 +107,16 @@  intel_hdcp_required_content_stream(struct intel_atomic_state *state,
 	struct drm_connector_list_iter conn_iter;
 	struct intel_digital_port *conn_dig_port;
 	struct intel_connector *connector;
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	bool enforce_type0 = false;
 	int k;
 
-	if (dig_port->hdcp_auth_status)
+	if (dig_port->hdcp.auth_status)
 		return 0;
 
 	data->k = 0;
 
-	if (!dig_port->hdcp_mst_type1_capable)
+	if (!dig_port->hdcp.mst_type1_capable)
 		enforce_type0 = true;
 
 	drm_connector_list_iter_begin(display->drm, &conn_iter);
@@ -159,7 +159,7 @@  static int intel_hdcp_prepare_streams(struct intel_atomic_state *state,
 				      struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 
 	if (intel_encoder_is_mst(intel_attached_encoder(connector)))
@@ -1001,7 +1001,7 @@  static int _intel_hdcp_disable(struct intel_connector *connector)
 		 * don't disable it until it disabled HDCP encryption for
 		 * all connectors in MST topology.
 		 */
-		if (dig_port->num_hdcp_streams > 0)
+		if (dig_port->hdcp.num_streams > 0)
 			return 0;
 	}
 
@@ -1094,13 +1094,13 @@  static void intel_hdcp_update_value(struct intel_connector *connector,
 	if (hdcp->value == value)
 		return;
 
-	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp_mutex));
+	drm_WARN_ON(display->drm, !mutex_is_locked(&dig_port->hdcp.mutex));
 
 	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
-		if (!drm_WARN_ON(display->drm, dig_port->num_hdcp_streams == 0))
-			dig_port->num_hdcp_streams--;
+		if (!drm_WARN_ON(display->drm, dig_port->hdcp.num_streams == 0))
+			dig_port->hdcp.num_streams--;
 	} else if (value == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
-		dig_port->num_hdcp_streams++;
+		dig_port->hdcp.num_streams++;
 	}
 
 	hdcp->value = value;
@@ -1122,7 +1122,7 @@  static int intel_hdcp_check_link(struct intel_connector *connector)
 	int ret = 0;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 
 	cpu_transcoder = hdcp->cpu_transcoder;
 
@@ -1177,7 +1177,7 @@  static int intel_hdcp_check_link(struct intel_connector *connector)
 	}
 
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -1219,7 +1219,7 @@  hdcp2_prepare_ake_init(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1249,7 +1249,7 @@  hdcp2_verify_rx_cert_prepare_km(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1277,7 +1277,7 @@  static int hdcp2_verify_hprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1303,7 +1303,7 @@  hdcp2_store_pairing_info(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1330,7 +1330,7 @@  hdcp2_prepare_lc_init(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1357,7 +1357,7 @@  hdcp2_verify_lprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1383,7 +1383,7 @@  static int hdcp2_prepare_skey(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1412,7 +1412,7 @@  hdcp2_verify_rep_topology_prepare_ack(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1442,7 +1442,7 @@  hdcp2_verify_mprime(struct intel_connector *connector,
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1466,7 +1466,7 @@  static int hdcp2_authenticate_port(struct intel_connector *connector)
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct i915_hdcp_arbiter *arbiter;
 	int ret;
 
@@ -1503,7 +1503,7 @@  static int hdcp2_close_session(struct intel_connector *connector)
 	}
 
 	ret = arbiter->ops->close_hdcp_session(arbiter->hdcp_dev,
-					     &dig_port->hdcp_port_data);
+					     &dig_port->hdcp.port_data);
 	mutex_unlock(&display->hdcp.hdcp_mutex);
 
 	return ret;
@@ -1691,7 +1691,7 @@  static
 int _hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 {
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_rep_stream_manage stream_manage;
@@ -1769,11 +1769,11 @@  int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 	 * MST topology is not Type 1 capable if it contains a downstream
 	 * device that is only HDCP 1.x or Legacy HDCP 2.0/2.1 compliant.
 	 */
-	dig_port->hdcp_mst_type1_capable =
+	dig_port->hdcp.mst_type1_capable =
 		!HDCP_2_2_HDCP1_DEVICE_CONNECTED(rx_info[1]) &&
 		!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
 
-	if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type) {
+	if (!dig_port->hdcp.mst_type1_capable && hdcp->content_type) {
 		drm_dbg_kms(display->drm,
 			    "HDCP1.x or 2.0 Legacy Device Downstream\n");
 		return -EINVAL;
@@ -1869,7 +1869,7 @@  static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	enum port port = dig_port->base.port;
@@ -1900,7 +1900,7 @@  static int hdcp2_enable_stream_encryption(struct intel_connector *connector)
 	if (hdcp2_deauthenticate_port(connector) < 0)
 		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
-	dig_port->hdcp_auth_status = false;
+	dig_port->hdcp.auth_status = false;
 	data->k = 0;
 
 	return ret;
@@ -1940,7 +1940,7 @@  static int hdcp2_enable_encryption(struct intel_connector *connector)
 						 port),
 				    LINK_ENCRYPTION_STATUS,
 				    HDCP_ENCRYPT_STATUS_CHANGE_TIMEOUT_MS);
-	dig_port->hdcp_auth_status = true;
+	dig_port->hdcp.auth_status = true;
 
 	return ret;
 }
@@ -2019,7 +2019,7 @@  static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
 	int ret = 0, i, tries = 3;
 
-	for (i = 0; i < tries && !dig_port->hdcp_auth_status; i++) {
+	for (i = 0; i < tries && !dig_port->hdcp.auth_status; i++) {
 		ret = hdcp2_authenticate_sink(connector);
 		if (!ret) {
 			ret = intel_hdcp_prepare_streams(state, connector);
@@ -2052,7 +2052,7 @@  static int hdcp2_authenticate_and_encrypt(struct intel_atomic_state *state,
 			drm_dbg_kms(display->drm, "Port deauth failed.\n");
 	}
 
-	if (!ret && !dig_port->hdcp_auth_status) {
+	if (!ret && !dig_port->hdcp.auth_status) {
 		/*
 		 * Ensuring the required 200mSec min time interval between
 		 * Session Key Exchange and encryption.
@@ -2106,7 +2106,7 @@  _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 {
 	struct intel_display *display = to_intel_display(connector);
 	struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	int ret;
 
@@ -2123,7 +2123,7 @@  _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 		drm_dbg_kms(display->drm, "HDCP 2.2 transcoder: %s stream encryption disabled\n",
 			    transcoder_name(hdcp->stream_transcoder));
 
-		if (dig_port->num_hdcp_streams > 0 && !hdcp2_link_recovery)
+		if (dig_port->hdcp.num_streams > 0 && !hdcp2_link_recovery)
 			return 0;
 	}
 
@@ -2133,7 +2133,7 @@  _intel_hdcp2_disable(struct intel_connector *connector, bool hdcp2_link_recovery
 		drm_dbg_kms(display->drm, "Port deauth failed.\n");
 
 	connector->hdcp.hdcp2_encrypted = false;
-	dig_port->hdcp_auth_status = false;
+	dig_port->hdcp.auth_status = false;
 	data->k = 0;
 
 	return ret;
@@ -2150,7 +2150,7 @@  static int intel_hdcp2_check_link(struct intel_connector *connector)
 	int ret = 0;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 	cpu_transcoder = hdcp->cpu_transcoder;
 
 	/* hdcp2_check_link is expected only when HDCP2.2 is Enabled */
@@ -2221,7 +2221,7 @@  static int intel_hdcp2_check_link(struct intel_connector *connector)
 	intel_hdcp_update_value(connector,
 				DRM_MODE_CONTENT_PROTECTION_DESIRED, true);
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -2303,7 +2303,7 @@  static int initialize_hdcp_port_data(struct intel_connector *connector,
 				     const struct intel_hdcp_shim *shim)
 {
 	struct intel_display *display = to_intel_display(connector);
-	struct hdcp_port_data *data = &dig_port->hdcp_port_data;
+	struct hdcp_port_data *data = &dig_port->hdcp.port_data;
 	enum port port = dig_port->base.port;
 
 	if (DISPLAY_VER(display) < 12)
@@ -2414,7 +2414,7 @@  int intel_hdcp_init(struct intel_connector *connector,
 							       hdcp->hdcp2_supported);
 	if (ret) {
 		hdcp->hdcp2_supported = false;
-		kfree(dig_port->hdcp_port_data.streams);
+		kfree(dig_port->hdcp.port_data.streams);
 		return ret;
 	}
 
@@ -2451,7 +2451,7 @@  static int _intel_hdcp_enable(struct intel_atomic_state *state,
 	}
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 	drm_WARN_ON(display->drm,
 		    hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
 	hdcp->content_type = (u8)conn_state->hdcp_content_type;
@@ -2465,7 +2465,7 @@  static int _intel_hdcp_enable(struct intel_atomic_state *state,
 	}
 
 	if (DISPLAY_VER(display) >= 12)
-		dig_port->hdcp_port_data.hdcp_transcoder =
+		dig_port->hdcp.port_data.hdcp_transcoder =
 			intel_get_hdcp_transcoder(hdcp->cpu_transcoder);
 
 	/*
@@ -2499,7 +2499,7 @@  static int _intel_hdcp_enable(struct intel_atomic_state *state,
 					true);
 	}
 
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	return ret;
 }
@@ -2535,7 +2535,7 @@  int intel_hdcp_disable(struct intel_connector *connector)
 		return -ENOENT;
 
 	mutex_lock(&hdcp->mutex);
-	mutex_lock(&dig_port->hdcp_mutex);
+	mutex_lock(&dig_port->hdcp.mutex);
 
 	if (hdcp->value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
 		goto out;
@@ -2548,7 +2548,7 @@  int intel_hdcp_disable(struct intel_connector *connector)
 		ret = _intel_hdcp_disable(connector);
 
 out:
-	mutex_unlock(&dig_port->hdcp_mutex);
+	mutex_unlock(&dig_port->hdcp.mutex);
 	mutex_unlock(&hdcp->mutex);
 	cancel_delayed_work_sync(&hdcp->check_work);
 	return ret;