drm/i915/hdcp: add intel_atomic_state argument to hdcp_enable function
authorSuraj Kandpal <suraj.kandpal@intel.com>
Mon, 15 May 2023 10:32:22 +0000 (16:02 +0530)
committerAnimesh Manna <animesh.manna@intel.com>
Tue, 16 May 2023 08:08:57 +0000 (13:38 +0530)
Pass all the parameter in intel_encoder->enable()
to intel_hdcp_enable as we need intel_atomic_state
later down to get acquire_ctx.

Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Suraj Kandpal <suraj.kandpal@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Animesh Manna <animesh.manna@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230515103225.688830-2-suraj.kandpal@intel.com
drivers/gpu/drm/i915/display/intel_ddi.c
drivers/gpu/drm/i915/display/intel_dp_mst.c
drivers/gpu/drm/i915/display/intel_hdcp.c
drivers/gpu/drm/i915/display/intel_hdcp.h

index b1caf521a34861f942f70833b16bf77df89dc431..db056bb084d1654cecaa29f9cb4525b121e772ac 100644 (file)
@@ -3264,9 +3264,7 @@ static void intel_enable_ddi(struct intel_atomic_state *state,
        /* Enable hdcp if it's desired */
        if (conn_state->content_protection ==
            DRM_MODE_CONTENT_PROTECTION_DESIRED)
-               intel_hdcp_enable(to_intel_connector(conn_state->connector),
-                                 crtc_state,
-                                 (u8)conn_state->hdcp_content_type);
+               intel_hdcp_enable(state, encoder, crtc_state, conn_state);
 }
 
 static void intel_disable_ddi_dp(struct intel_atomic_state *state,
index 63d61e6102102942e55ff22a30c01499ec7c2998..6df8519b3347e6fac7e3d8bd1bca80dd37c9aaf3 100644 (file)
@@ -801,9 +801,7 @@ static void intel_mst_enable_dp(struct intel_atomic_state *state,
        /* Enable hdcp if it's desired */
        if (conn_state->content_protection ==
            DRM_MODE_CONTENT_PROTECTION_DESIRED)
-               intel_hdcp_enable(to_intel_connector(conn_state->connector),
-                                 pipe_config,
-                                 (u8)conn_state->hdcp_content_type);
+               intel_hdcp_enable(state, encoder, pipe_config, conn_state);
 }
 
 static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
index b183efab04a1d4c06f0fc05a5e96f0ccb8eca7ca..bce0fa2e45a1a1b865748174f8913e0dd508d3d0 100644 (file)
@@ -2332,10 +2332,14 @@ int intel_hdcp_init(struct intel_connector *connector,
        return 0;
 }
 
-int intel_hdcp_enable(struct intel_connector *connector,
-                     const struct intel_crtc_state *pipe_config, u8 content_type)
+int intel_hdcp_enable(struct intel_atomic_state *state,
+                     struct intel_encoder *encoder,
+                     const struct intel_crtc_state *pipe_config,
+                     const struct drm_connector_state *conn_state)
 {
-       struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+       struct intel_connector *connector =
+               to_intel_connector(conn_state->connector);
        struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
        struct intel_hdcp *hdcp = &connector->hdcp;
        unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
@@ -2354,7 +2358,7 @@ int intel_hdcp_enable(struct intel_connector *connector,
        mutex_lock(&dig_port->hdcp_mutex);
        drm_WARN_ON(&dev_priv->drm,
                    hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
-       hdcp->content_type = content_type;
+       hdcp->content_type = (u8)conn_state->content_type;
 
        if (intel_crtc_has_type(pipe_config, INTEL_OUTPUT_DP_MST)) {
                hdcp->cpu_transcoder = pipe_config->mst_master_transcoder;
@@ -2485,9 +2489,7 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
        }
 
        if (desired_and_not_enabled || content_protection_type_changed)
-               intel_hdcp_enable(connector,
-                                 crtc_state,
-                                 (u8)conn_state->hdcp_content_type);
+               intel_hdcp_enable(state, encoder, crtc_state, conn_state);
 }
 
 void intel_hdcp_component_fini(struct drm_i915_private *dev_priv)
index 8f53b0c7fe5cfb37dadd4d7511c2db666b48af8e..ce283f4f69fd96a29f77f4e05ee9506dd72ac0d4 100644 (file)
@@ -28,8 +28,10 @@ void intel_hdcp_atomic_check(struct drm_connector *connector,
 int intel_hdcp_init(struct intel_connector *connector,
                    struct intel_digital_port *dig_port,
                    const struct intel_hdcp_shim *hdcp_shim);
-int intel_hdcp_enable(struct intel_connector *connector,
-                     const struct intel_crtc_state *pipe_config, u8 content_type);
+int intel_hdcp_enable(struct intel_atomic_state *state,
+                     struct intel_encoder *encoder,
+                     const struct intel_crtc_state *pipe_config,
+                     const struct drm_connector_state *conn_state);
 int intel_hdcp_disable(struct intel_connector *connector);
 void intel_hdcp_update_pipe(struct intel_atomic_state *state,
                            struct intel_encoder *encoder,