> -----Original Message----- > From: Sean Paul <sean@xxxxxxxxxx> > Sent: Tuesday, June 23, 2020 9:29 PM > To: dri-devel@xxxxxxxxxxxxxxxxxxxxx; intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Cc: Li, Juston <juston.li@xxxxxxxxx>; C, Ramalingam > <ramalingam.c@xxxxxxxxx>; ville.syrjala@xxxxxxxxxxxxxxx; > jani.nikula@xxxxxxxxxxxxxxx; joonas.lahtinen@xxxxxxxxxxxxxxx; Vivi, Rodrigo > <rodrigo.vivi@xxxxxxxxx>; daniel.vetter@xxxxxxxx; Sean Paul > <seanpaul@xxxxxxxxxxxx> > Subject: [PATCH v7 14/17] drm/i915: Add connector to hdcp_shim->check_link() > > From: Sean Paul <seanpaul@xxxxxxxxxxxx> > > Currently we derive the connector from digital port in check_link(). For MST, this > isn't sufficient since the digital port passed into the function can have multiple > connectors downstream. This patch adds connector to the check_link() > arguments so we have it when we need it. > > Signed-off-by: Sean Paul <seanpaul@xxxxxxxxxxxx> Reviewed-by: Ramalingam C <ramalingam.c@xxxxxxxxx> > Link: > https://patchwork.freedesktop.org/patch/msgid/20200218220242.107265-13- > sean@xxxxxxxxxx #v4 > Link: > https://patchwork.freedesktop.org/patch/msgid/20200305201236.152307-14- > sean@xxxxxxxxxx #v5 > Link: https://patchwork.freedesktop.org/patch/msgid/20200429195502.39919- > 14-sean@xxxxxxxxxx #v6 > > Changes in v4: > -Added to the set > Changes in v5: > -None > Changes in v6: > -None > Changes in v7: > -None > --- > drivers/gpu/drm/i915/display/intel_display_types.h | 3 ++- > drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 3 ++- > drivers/gpu/drm/i915/display/intel_hdcp.c | 2 +- > drivers/gpu/drm/i915/display/intel_hdmi.c | 5 ++--- > 4 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h > b/drivers/gpu/drm/i915/display/intel_display_types.h > index 811085ef3fba..94211b8fc159 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_types.h > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h > @@ -318,7 +318,8 @@ struct intel_hdcp_shim { > bool enable); > > /* Ensures the link is still protected */ > - bool (*check_link)(struct intel_digital_port *intel_dig_port); > + bool (*check_link)(struct intel_digital_port *intel_dig_port, > + struct intel_connector *connector); > > /* Detects panel's hdcp capability. This is optional for HDMI. */ > int (*hdcp_capable)(struct intel_digital_port *intel_dig_port, diff --git > a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c > b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c > index e26a45f880cb..43446a6cae8d 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c > @@ -223,7 +223,8 @@ int intel_dp_hdcp_toggle_signalling(struct > intel_digital_port *intel_dig_port, } > > static > -bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port) > +bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port, > + struct intel_connector *connector) > { > struct drm_i915_private *i915 = to_i915(intel_dig_port- > >base.base.dev); > ssize_t ret; > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c > b/drivers/gpu/drm/i915/display/intel_hdcp.c > index d79d4142aea7..6bd0e4616ee1 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c > @@ -953,7 +953,7 @@ static int intel_hdcp_check_link(struct intel_connector > *connector) > goto out; > } > > - if (hdcp->shim->check_link(intel_dig_port)) { > + if (hdcp->shim->check_link(intel_dig_port, connector)) { > if (hdcp->value != > DRM_MODE_CONTENT_PROTECTION_UNDESIRED) { > intel_hdcp_update_value(connector, > > DRM_MODE_CONTENT_PROTECTION_ENABLED, true); diff --git > a/drivers/gpu/drm/i915/display/intel_hdmi.c > b/drivers/gpu/drm/i915/display/intel_hdmi.c > index ca71ee3dd1c7..b12f1af0611d 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -1546,11 +1546,10 @@ int intel_hdmi_hdcp_toggle_signalling(struct > intel_digital_port *intel_dig_port, } > > static > -bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port) > +bool intel_hdmi_hdcp_check_link(struct intel_digital_port *intel_dig_port, > + struct intel_connector *connector) > { > struct drm_i915_private *i915 = to_i915(intel_dig_port- > >base.base.dev); > - struct intel_connector *connector = > - intel_dig_port->hdmi.attached_connector; > enum port port = intel_dig_port->base.port; > enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; > int ret; > -- > Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel