Browse Source

drm/i915: Pass acquire ctx also to intel_release_load_detect_pipe()

For now this is not necessary since intel_set_mode() doesn't acquire any
new locks. However, once that function is converted to atomic, that will
change, since we'll pass an atomic state to it, and that needs to have
the right acquire context set.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ander Conselvan de Oliveira 10 năm trước cách đây
mục cha
commit
49172fee61

+ 1 - 1
drivers/gpu/drm/i915/intel_crt.c

@@ -708,7 +708,7 @@ intel_crt_detect(struct drm_connector *connector, bool force)
 			status = connector_status_connected;
 			status = connector_status_connected;
 		else
 		else
 			status = intel_crt_load_detect(crt);
 			status = intel_crt_load_detect(crt);
-		intel_release_load_detect_pipe(connector, &tmp);
+		intel_release_load_detect_pipe(connector, &tmp, &ctx);
 	} else
 	} else
 		status = connector_status_unknown;
 		status = connector_status_unknown;
 
 

+ 3 - 2
drivers/gpu/drm/i915/intel_display.c

@@ -9038,7 +9038,8 @@ fail_unlock:
 }
 }
 
 
 void intel_release_load_detect_pipe(struct drm_connector *connector,
 void intel_release_load_detect_pipe(struct drm_connector *connector,
-				    struct intel_load_detect_pipe *old)
+				    struct intel_load_detect_pipe *old,
+				    struct drm_modeset_acquire_ctx *ctx)
 {
 {
 	struct intel_encoder *intel_encoder =
 	struct intel_encoder *intel_encoder =
 		intel_attached_encoder(connector);
 		intel_attached_encoder(connector);
@@ -13595,7 +13596,7 @@ static void intel_enable_pipe_a(struct drm_device *dev)
 		return;
 		return;
 
 
 	if (intel_get_load_detect_pipe(crt, NULL, &load_detect_temp, ctx))
 	if (intel_get_load_detect_pipe(crt, NULL, &load_detect_temp, ctx))
-		intel_release_load_detect_pipe(crt, &load_detect_temp);
+		intel_release_load_detect_pipe(crt, &load_detect_temp, ctx);
 }
 }
 
 
 static bool
 static bool

+ 2 - 1
drivers/gpu/drm/i915/intel_drv.h

@@ -959,7 +959,8 @@ bool intel_get_load_detect_pipe(struct drm_connector *connector,
 				struct intel_load_detect_pipe *old,
 				struct intel_load_detect_pipe *old,
 				struct drm_modeset_acquire_ctx *ctx);
 				struct drm_modeset_acquire_ctx *ctx);
 void intel_release_load_detect_pipe(struct drm_connector *connector,
 void intel_release_load_detect_pipe(struct drm_connector *connector,
-				    struct intel_load_detect_pipe *old);
+				    struct intel_load_detect_pipe *old,
+				    struct drm_modeset_acquire_ctx *ctx);
 int intel_pin_and_fence_fb_obj(struct drm_plane *plane,
 int intel_pin_and_fence_fb_obj(struct drm_plane *plane,
 			       struct drm_framebuffer *fb,
 			       struct drm_framebuffer *fb,
 			       const struct drm_plane_state *plane_state,
 			       const struct drm_plane_state *plane_state,

+ 1 - 1
drivers/gpu/drm/i915/intel_tv.c

@@ -1332,7 +1332,7 @@ intel_tv_detect(struct drm_connector *connector, bool force)
 
 
 		if (intel_get_load_detect_pipe(connector, &mode, &tmp, &ctx)) {
 		if (intel_get_load_detect_pipe(connector, &mode, &tmp, &ctx)) {
 			type = intel_tv_detect_type(intel_tv, connector);
 			type = intel_tv_detect_type(intel_tv, connector);
-			intel_release_load_detect_pipe(connector, &tmp);
+			intel_release_load_detect_pipe(connector, &tmp, &ctx);
 			status = type < 0 ?
 			status = type < 0 ?
 				connector_status_disconnected :
 				connector_status_disconnected :
 				connector_status_connected;
 				connector_status_connected;