[Intel-gfx] [PATCH v2] drm/i915/hdcp: Remove drm_modeset_lock in intel_conn_to_vcpi
Suraj Kandpal
suraj.kandpal at intel.com
Mon Apr 3 07:01:25 UTC 2023
Remove drm_modeset_lock in intel_conn_to_vcpi as we don't need it
anymore since all the required locks are taken in atomic check and
prepare phases.
--v2
-take lock if hdcp function is called from legacy path [Ville]
Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
---
drivers/gpu/drm/i915/display/intel_hdcp.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 650232c4892b..65cfc4afbcaa 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -36,13 +36,16 @@ static int intel_conn_to_vcpi(struct intel_connector *connector)
struct drm_dp_mst_atomic_payload *payload;
struct drm_dp_mst_topology_state *mst_state;
int vcpi = 0;
+ bool is_locked;
/* For HDMI this is forced to be 0x0. For DP SST also this is 0x0. */
if (!connector->port)
return 0;
mgr = connector->port->mgr;
+ is_locked = drm_modeset_is_locked(&mgr->base.lock);
+ if (!is_locked)
+ drm_modeset_lock(&mgr->base.lock, NULL);
- drm_modeset_lock(&mgr->base.lock, NULL);
mst_state = to_drm_dp_mst_topology_state(mgr->base.state);
payload = drm_atomic_get_mst_payload_state(mst_state, connector->port);
if (drm_WARN_ON(mgr->dev, !payload))
@@ -54,7 +57,9 @@ static int intel_conn_to_vcpi(struct intel_connector *connector)
goto out;
}
out:
- drm_modeset_unlock(&mgr->base.lock);
+ if (!is_locked)
+ drm_modeset_unlock(&mgr->base.lock);
+
return vcpi;
}
--
2.25.1
More information about the Intel-gfx
mailing list