aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_display.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 5b32b682bc3e..d547d9c8dda2 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14259,6 +14259,7 @@ void intel_modeset_gem_init(struct drm_device *dev)
14259 struct drm_i915_private *dev_priv = dev->dev_private; 14259 struct drm_i915_private *dev_priv = dev->dev_private;
14260 struct drm_crtc *c; 14260 struct drm_crtc *c;
14261 struct drm_i915_gem_object *obj; 14261 struct drm_i915_gem_object *obj;
14262 int ret;
14262 14263
14263 mutex_lock(&dev->struct_mutex); 14264 mutex_lock(&dev->struct_mutex);
14264 intel_init_gt_powersave(dev); 14265 intel_init_gt_powersave(dev);
@@ -14283,16 +14284,18 @@ void intel_modeset_gem_init(struct drm_device *dev)
14283 * pinned & fenced. When we do the allocation it's too early 14284 * pinned & fenced. When we do the allocation it's too early
14284 * for this. 14285 * for this.
14285 */ 14286 */
14286 mutex_lock(&dev->struct_mutex);
14287 for_each_crtc(dev, c) { 14287 for_each_crtc(dev, c) {
14288 obj = intel_fb_obj(c->primary->fb); 14288 obj = intel_fb_obj(c->primary->fb);
14289 if (obj == NULL) 14289 if (obj == NULL)
14290 continue; 14290 continue;
14291 14291
14292 if (intel_pin_and_fence_fb_obj(c->primary, 14292 mutex_lock(&dev->struct_mutex);
14293 c->primary->fb, 14293 ret = intel_pin_and_fence_fb_obj(c->primary,
14294 c->primary->state, 14294 c->primary->fb,
14295 NULL)) { 14295 c->primary->state,
14296 NULL);
14297 mutex_unlock(&dev->struct_mutex);
14298 if (ret) {
14296 DRM_ERROR("failed to pin boot fb on pipe %d\n", 14299 DRM_ERROR("failed to pin boot fb on pipe %d\n",
14297 to_intel_crtc(c)->pipe); 14300 to_intel_crtc(c)->pipe);
14298 drm_framebuffer_unreference(c->primary->fb); 14301 drm_framebuffer_unreference(c->primary->fb);
@@ -14300,7 +14303,6 @@ void intel_modeset_gem_init(struct drm_device *dev)
14300 update_state_fb(c->primary); 14303 update_state_fb(c->primary);
14301 } 14304 }
14302 } 14305 }
14303 mutex_unlock(&dev->struct_mutex);
14304 14306
14305 intel_backlight_register(dev); 14307 intel_backlight_register(dev);
14306} 14308}