[Intel-gfx] [PATCH v2 3/7] drm/i915/hdcp: HDCP2.x Refactoring to agnotic cp f/w

Kandpal, Suraj suraj.kandpal at intel.com
Tue Dec 13 10:32:07 UTC 2022


> 
> On Tue, 13 Dec 2022, Suraj Kandpal <suraj.kandpal at intel.com> wrote:
> > From: Anshuman Gupta <anshuman.gupta at intel.com>
> >
> > As now we have more then one type of content protection secrity
> > firmware. Let change the i915_cp_fw_hdcp_interface.h header naming
> > convention to suit generic f/w type.
> > %s/MEI_/FW_
> > %s/mei_fw/cp_fw
> > %s/mei_dev/fw_dev
> >
> > As interface to CP FW can be either a non i915 component or
> > i915 intergral component, change structure name Accordingly.
> > %s/i915_hdcp_comp_master/i915_hdcp_fw_master
> > %s/i915_hdcp_component_ops/i915_hdcp_fw_ops
> >
> > Cc: Tomas Winkler <tomas.winkler at intel.com>
> > Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > Cc: Uma Shankar <uma.shankar at intel.com>
> > Cc: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> > Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> > Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> > ---
> >  .../gpu/drm/i915/display/intel_display_core.h |  3 +-
> >  drivers/gpu/drm/i915/display/intel_hdcp.c     | 66 ++++++++---------
> >  drivers/misc/mei/hdcp/mei_hdcp.c              | 12 ++--
> >  include/drm/i915_cp_fw_hdcp_interface.h       | 70 +++++++++----------
> >  4 files changed, 76 insertions(+), 75 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h
> > b/drivers/gpu/drm/i915/display/intel_display_core.h
> > index 57ddce3ba02b..a769cc8e2745 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_core.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_core.h
> > @@ -16,6 +16,7 @@
> >  #include <drm/drm_connector.h>
> >  #include <drm/drm_modeset_lock.h>
> >
> > +#include "i915/i915_cp_fw_hdcp_interface.h"
> 
> What's with the i915/ subdir?
> 
> Anyway, please prefer forward declarations over includes in headers.
> 

Yes that does not belong there will fix that

Regards,
Suraj Kandpal
> >  #include "intel_cdclk.h"
> >  #include "intel_display.h"
> >  #include "intel_display_power.h"
> > @@ -368,7 +369,7 @@ struct intel_display {
> >  	} gmbus;
> >
> >  	struct {
> > -		struct i915_hdcp_comp_master *master;
> > +		struct i915_hdcp_fw_master *master;
> >  		bool comp_added;
> >
> >  		/* Mutex to protect the above hdcp component related values.
> */
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index 6406fd487ee5..e856b10948ab 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -1143,7 +1143,7 @@ hdcp2_prepare_ake_init(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1154,7 +1154,7 @@ hdcp2_prepare_ake_init(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->initiate_hdcp2_session(comp->mei_dev, data,
> ake_data);
> > +	ret = comp->ops->initiate_hdcp2_session(comp->fw_dev, data,
> > +ake_data);
> >  	if (ret)
> >  		drm_dbg_kms(&dev_priv->drm, "Prepare_ake_init failed.
> %d\n",
> >  			    ret);
> > @@ -1173,7 +1173,7 @@ hdcp2_verify_rx_cert_prepare_km(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1184,7 +1184,7 @@ hdcp2_verify_rx_cert_prepare_km(struct
> intel_connector *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->verify_receiver_cert_prepare_km(comp->mei_dev,
> data,
> > +	ret = comp->ops->verify_receiver_cert_prepare_km(comp->fw_dev,
> data,
> >  							 rx_cert, paired,
> >  							 ek_pub_km, msg_sz);
> >  	if (ret < 0)
> > @@ -1201,7 +1201,7 @@ static int hdcp2_verify_hprime(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1212,7 +1212,7 @@ static int hdcp2_verify_hprime(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->verify_hprime(comp->mei_dev, data, rx_hprime);
> > +	ret = comp->ops->verify_hprime(comp->fw_dev, data, rx_hprime);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Verify hprime failed. %d\n",
> ret);
> >  	mutex_unlock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1227,7 +1227,7 @@ hdcp2_store_pairing_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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1238,7 +1238,7 @@ hdcp2_store_pairing_info(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->store_pairing_info(comp->mei_dev, data,
> pairing_info);
> > +	ret = comp->ops->store_pairing_info(comp->fw_dev, data,
> > +pairing_info);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Store pairing info failed.
> %d\n",
> >  			    ret);
> > @@ -1254,7 +1254,7 @@ hdcp2_prepare_lc_init(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1265,7 +1265,7 @@ hdcp2_prepare_lc_init(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->initiate_locality_check(comp->mei_dev, data, lc_init);
> > +	ret = comp->ops->initiate_locality_check(comp->fw_dev, data,
> > +lc_init);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Prepare lc_init failed. %d\n",
> >  			    ret);
> > @@ -1281,7 +1281,7 @@ hdcp2_verify_lprime(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1292,7 +1292,7 @@ hdcp2_verify_lprime(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->verify_lprime(comp->mei_dev, data, rx_lprime);
> > +	ret = comp->ops->verify_lprime(comp->fw_dev, data, rx_lprime);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Verify L_Prime failed. %d\n",
> >  			    ret);
> > @@ -1307,7 +1307,7 @@ static int hdcp2_prepare_skey(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1318,7 +1318,7 @@ static int hdcp2_prepare_skey(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->get_session_key(comp->mei_dev, data, ske_data);
> > +	ret = comp->ops->get_session_key(comp->fw_dev, data, ske_data);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Get session key failed. %d\n",
> >  			    ret);
> > @@ -1336,7 +1336,7 @@ hdcp2_verify_rep_topology_prepare_ack(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1347,7 +1347,7 @@ hdcp2_verify_rep_topology_prepare_ack(struct
> intel_connector *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->repeater_check_flow_prepare_ack(comp->mei_dev,
> data,
> > +	ret = comp->ops->repeater_check_flow_prepare_ack(comp->fw_dev,
> data,
> >  							 rep_topology,
> >  							 rep_send_ack);
> >  	if (ret < 0)
> > @@ -1365,7 +1365,7 @@ hdcp2_verify_mprime(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1376,7 +1376,7 @@ hdcp2_verify_mprime(struct intel_connector
> *connector,
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->verify_mprime(comp->mei_dev, data,
> stream_ready);
> > +	ret = comp->ops->verify_mprime(comp->fw_dev, data, stream_ready);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Verify mprime failed. %d\n",
> ret);
> >  	mutex_unlock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1389,7 +1389,7 @@ static int hdcp2_authenticate_port(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 drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1400,7 +1400,7 @@ static int hdcp2_authenticate_port(struct
> intel_connector *connector)
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->enable_hdcp_authentication(comp->mei_dev, data);
> > +	ret = comp->ops->enable_hdcp_authentication(comp->fw_dev, data);
> >  	if (ret < 0)
> >  		drm_dbg_kms(&dev_priv->drm, "Enable hdcp auth failed.
> %d\n",
> >  			    ret);
> > @@ -1413,7 +1413,7 @@ static int hdcp2_close_mei_session(struct
> > intel_connector *connector)  {
> >  	struct intel_digital_port *dig_port =
> intel_attached_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct i915_hdcp_comp_master *comp;
> > +	struct i915_hdcp_fw_master *comp;
> >  	int ret;
> >
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > @@ -1424,7 +1424,7 @@ static int hdcp2_close_mei_session(struct
> intel_connector *connector)
> >  		return -EINVAL;
> >  	}
> >
> > -	ret = comp->ops->close_hdcp_session(comp->mei_dev,
> > +	ret = comp->ops->close_hdcp_session(comp->fw_dev,
> >  					     &dig_port->hdcp_port_data);
> >  	mutex_unlock(&dev_priv->display.hdcp.comp_mutex);
> >
> > @@ -2145,8 +2145,8 @@ static int i915_hdcp_component_bind(struct
> > device *i915_kdev,
> >
> >  	drm_dbg(&dev_priv->drm, "I915 HDCP comp bind\n");
> >  	mutex_lock(&dev_priv->display.hdcp.comp_mutex);
> > -	dev_priv->display.hdcp.master = (struct i915_hdcp_comp_master
> *)data;
> > -	dev_priv->display.hdcp.master->mei_dev = mei_kdev;
> > +	dev_priv->display.hdcp.master = (struct i915_hdcp_fw_master *)data;
> > +	dev_priv->display.hdcp.master->fw_dev = mei_kdev;
> >  	mutex_unlock(&dev_priv->display.hdcp.comp_mutex);
> >
> >  	return 0;
> > @@ -2168,25 +2168,25 @@ static const struct component_ops
> i915_hdcp_component_ops = {
> >  	.unbind = i915_hdcp_component_unbind,  };
> >
> > -static enum mei_fw_ddi intel_get_mei_fw_ddi_index(enum port port)
> > +static enum cp_fw_ddi intel_get_mei_fw_ddi_index(enum port port)
> >  {
> >  	switch (port) {
> >  	case PORT_A:
> > -		return MEI_DDI_A;
> > +		return FW_DDI_A;
> >  	case PORT_B ... PORT_F:
> > -		return (enum mei_fw_ddi)port;
> > +		return (enum cp_fw_ddi)port;
> >  	default:
> > -		return MEI_DDI_INVALID_PORT;
> > +		return FW_DDI_INVALID_PORT;
> >  	}
> >  }
> >
> > -static enum mei_fw_tc intel_get_mei_fw_tc(enum transcoder
> > cpu_transcoder)
> > +static enum cp_fw_tc intel_get_mei_fw_tc(enum transcoder
> > +cpu_transcoder)
> >  {
> >  	switch (cpu_transcoder) {
> >  	case TRANSCODER_A ... TRANSCODER_D:
> > -		return (enum mei_fw_tc)(cpu_transcoder | 0x10);
> > +		return (enum cp_fw_tc)(cpu_transcoder | 0x10);
> >  	default: /* eDP, DSI TRANSCODERS are non HDCP capable */
> > -		return MEI_INVALID_TRANSCODER;
> > +		return FW_INVALID_TRANSCODER;
> >  	}
> >  }
> >
> > @@ -2206,14 +2206,14 @@ static int initialize_hdcp_port_data(struct
> intel_connector *connector,
> >  		 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
> >  		 * with zero(INVALID PORT index).
> >  		 */
> > -		data->fw_ddi = MEI_DDI_INVALID_PORT;
> > +		data->fw_ddi = FW_DDI_INVALID_PORT;
> >
> >  	/*
> >  	 * As associated transcoder is set and modified at modeset, here fw_tc
> >  	 * is initialized to zero (invalid transcoder index). This will be
> >  	 * retained for <Gen12 forever.
> >  	 */
> > -	data->fw_tc = MEI_INVALID_TRANSCODER;
> > +	data->fw_tc = FW_INVALID_TRANSCODER;
> >
> >  	data->port_type = (u8)HDCP_PORT_TYPE_INTEGRATED;
> >  	data->protocol = (u8)shim->protocol; diff --git
> > a/drivers/misc/mei/hdcp/mei_hdcp.c b/drivers/misc/mei/hdcp/mei_hdcp.c
> > index 7e3cd3fd7f7b..7ca8b739cd31 100644
> > --- a/drivers/misc/mei/hdcp/mei_hdcp.c
> > +++ b/drivers/misc/mei/hdcp/mei_hdcp.c
> > @@ -715,7 +715,7 @@ mei_hdcp_close_session(struct device *dev, struct
> hdcp_port_data *data)
> >  	return 0;
> >  }
> >
> > -static const struct i915_hdcp_component_ops mei_hdcp_ops = {
> > +static const struct i915_hdcp_fw_ops mei_hdcp_ops = {
> >  	.owner = THIS_MODULE,
> >  	.initiate_hdcp2_session = mei_hdcp_initiate_session,
> >  	.verify_receiver_cert_prepare_km =
> > @@ -735,13 +735,13 @@ static const struct i915_hdcp_component_ops
> > mei_hdcp_ops = {  static int mei_component_master_bind(struct device
> > *dev)  {
> >  	struct mei_cl_device *cldev = to_mei_cl_device(dev);
> > -	struct i915_hdcp_comp_master *comp_master =
> > +	struct i915_hdcp_fw_master *comp_master =
> >
> 	mei_cldev_get_drvdata(cldev);
> >  	int ret;
> >
> >  	dev_dbg(dev, "%s\n", __func__);
> >  	comp_master->ops = &mei_hdcp_ops;
> > -	comp_master->mei_dev = dev;
> > +	comp_master->fw_dev = dev;
> >  	ret = component_bind_all(dev, comp_master);
> >  	if (ret < 0)
> >  		return ret;
> > @@ -752,7 +752,7 @@ static int mei_component_master_bind(struct device
> > *dev)  static void mei_component_master_unbind(struct device *dev)  {
> >  	struct mei_cl_device *cldev = to_mei_cl_device(dev);
> > -	struct i915_hdcp_comp_master *comp_master =
> > +	struct i915_hdcp_fw_master *comp_master =
> >
> 	mei_cldev_get_drvdata(cldev);
> >
> >  	dev_dbg(dev, "%s\n", __func__);
> > @@ -801,7 +801,7 @@ static int mei_hdcp_component_match(struct device
> > *dev, int subcomponent,  static int mei_hdcp_probe(struct mei_cl_device
> *cldev,
> >  			  const struct mei_cl_device_id *id)  {
> > -	struct i915_hdcp_comp_master *comp_master;
> > +	struct i915_hdcp_fw_master *comp_master;
> >  	struct component_match *master_match;
> >  	int ret;
> >
> > @@ -846,7 +846,7 @@ static int mei_hdcp_probe(struct mei_cl_device
> > *cldev,
> >
> >  static void mei_hdcp_remove(struct mei_cl_device *cldev)  {
> > -	struct i915_hdcp_comp_master *comp_master =
> > +	struct i915_hdcp_fw_master *comp_master =
> >
> 	mei_cldev_get_drvdata(cldev);
> >  	int ret;
> >
> > diff --git a/include/drm/i915_cp_fw_hdcp_interface.h
> > b/include/drm/i915_cp_fw_hdcp_interface.h
> > index e5dc6b985b2f..3abfe6d414b8 100644
> > --- a/include/drm/i915_cp_fw_hdcp_interface.h
> > +++ b/include/drm/i915_cp_fw_hdcp_interface.h
> > @@ -41,38 +41,38 @@ enum hdcp_wired_protocol {
> >  	HDCP_PROTOCOL_DP
> >  };
> >
> > -enum mei_fw_ddi {
> > -	MEI_DDI_INVALID_PORT = 0x0,
> > +enum cp_fw_ddi {
> > +	FW_DDI_INVALID_PORT = 0x0,
> >
> > -	MEI_DDI_B = 1,
> > -	MEI_DDI_C,
> > -	MEI_DDI_D,
> > -	MEI_DDI_E,
> > -	MEI_DDI_F,
> > -	MEI_DDI_A = 7,
> > -	MEI_DDI_RANGE_END = MEI_DDI_A,
> > +	FW_DDI_B = 1,
> > +	FW_DDI_C,
> > +	FW_DDI_D,
> > +	FW_DDI_E,
> > +	FW_DDI_F,
> > +	FW_DDI_A = 7,
> > +	FW_DDI_RANGE_END = FW_DDI_A,
> >  };
> >
> >  /**
> >   * enum mei_fw_tc - ME Firmware defined index for transcoders
> > - * @MEI_INVALID_TRANSCODER: Index for Invalid transcoder
> > - * @MEI_TRANSCODER_EDP: Index for EDP Transcoder
> > - * @MEI_TRANSCODER_DSI0: Index for DSI0 Transcoder
> > - * @MEI_TRANSCODER_DSI1: Index for DSI1 Transcoder
> > - * @MEI_TRANSCODER_A: Index for Transcoder A
> > - * @MEI_TRANSCODER_B: Index for Transcoder B
> > - * @MEI_TRANSCODER_C: Index for Transcoder C
> > - * @MEI_TRANSCODER_D: Index for Transcoder D
> > + * @FW_INVALID_TRANSCODER: Index for Invalid transcoder
> > + * @FW_TRANSCODER_EDP: Index for EDP Transcoder
> > + * @FW_TRANSCODER_DSI0: Index for DSI0 Transcoder
> > + * @FW_TRANSCODER_DSI1: Index for DSI1 Transcoder
> > + * @FW_TRANSCODER_A: Index for Transcoder A
> > + * @FW_TRANSCODER_B: Index for Transcoder B
> > + * @FW_TRANSCODER_C: Index for Transcoder C
> > + * @FW_TRANSCODER_D: Index for Transcoder D
> >   */
> > -enum mei_fw_tc {
> > -	MEI_INVALID_TRANSCODER = 0x00,
> > -	MEI_TRANSCODER_EDP,
> > -	MEI_TRANSCODER_DSI0,
> > -	MEI_TRANSCODER_DSI1,
> > -	MEI_TRANSCODER_A = 0x10,
> > -	MEI_TRANSCODER_B,
> > -	MEI_TRANSCODER_C,
> > -	MEI_TRANSCODER_D
> > +enum cp_fw_tc {
> > +	FW_INVALID_TRANSCODER = 0x00,
> > +	FW_TRANSCODER_EDP,
> > +	FW_TRANSCODER_DSI0,
> > +	FW_TRANSCODER_DSI1,
> > +	FW_TRANSCODER_A = 0x10,
> > +	FW_TRANSCODER_B,
> > +	FW_TRANSCODER_C,
> > +	FW_TRANSCODER_D
> >  };
> >
> >  /**
> > @@ -90,8 +90,8 @@ enum mei_fw_tc {
> >   *	     streams
> >   */
> >  struct hdcp_port_data {
> > -	enum mei_fw_ddi fw_ddi;
> > -	enum mei_fw_tc fw_tc;
> > +	enum cp_fw_ddi fw_ddi;
> > +	enum cp_fw_tc fw_tc;
> >  	u8 port_type;
> >  	u8 protocol;
> >  	u16 k;
> > @@ -119,7 +119,7 @@ struct hdcp_port_data {
> >   * @close_hdcp_session: Close the Wired HDCP Tx session per port.
> >   *			This also disables the authenticated state of the port.
> >   */
> > -struct i915_hdcp_component_ops {
> > +struct i915_hdcp_fw_ops {
> >  	/**
> >  	 * @owner: mei_hdcp module
> >  	 */
> > @@ -168,14 +168,14 @@ struct i915_hdcp_component_ops {  };
> >
> >  /**
> > - * struct i915_hdcp_component_master - Used for communication between
> > i915
> > - * and mei_hdcp drivers for the HDCP2.2 services
> > - * @mei_dev: device that provide the HDCP2.2 service from MEI Bus.
> > + * struct i915_hdcp_fw_master - Used for communication between i915
> > + * and cp fw hdcp intf driver like mei_hdcp for the HDCP2.2 services
> > + * @fw_dev: device that provide the HDCP2.2 service from CP FW interface.
> >   * @hdcp_ops: Ops implemented by mei_hdcp driver, used by i915 driver.
> >   */
> > -struct i915_hdcp_comp_master {
> > -	struct device *mei_dev;
> > -	const struct i915_hdcp_component_ops *ops;
> > +struct i915_hdcp_fw_master {
> > +	struct device *fw_dev;
> > +	const struct i915_hdcp_fw_ops *ops;
> >
> >  	/* To protect the above members. */
> >  	struct mutex mutex;
> 
> --
> Jani Nikula, Intel Open Source Graphics Center


More information about the Intel-gfx mailing list