Quellcode durchsuchen

drm/i915: Don't emit mbox updates without semaphores

Aside from the fact that it leaves confusing dumps on error capture, it
is entirely unnecessary, and potentially harmful in cases like BDW,
where the instruction has changed.

In reality (seemingly), this will have no behavioral impact.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ben Widawsky vor 11 Jahren
Ursprung
Commit
52ed23253b
1 geänderte Dateien mit 6 neuen und 5 gelöschten Zeilen
  1. 6 5
      drivers/gpu/drm/i915/intel_ringbuffer.c

+ 6 - 5
drivers/gpu/drm/i915/intel_ringbuffer.c

@@ -663,14 +663,15 @@ gen6_add_request(struct intel_ring_buffer *ring)
 	struct drm_device *dev = ring->dev;
 	struct drm_device *dev = ring->dev;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_ring_buffer *useless;
 	struct intel_ring_buffer *useless;
-	int i, ret;
+	int i, ret, num_dwords = 4;
 
 
-	ret = intel_ring_begin(ring, ((I915_NUM_RINGS-1) *
-				      MBOX_UPDATE_DWORDS) +
-				      4);
+	if (i915_semaphore_is_enabled(dev))
+		num_dwords += ((I915_NUM_RINGS-1) * MBOX_UPDATE_DWORDS);
+#undef MBOX_UPDATE_DWORDS
+
+	ret = intel_ring_begin(ring, num_dwords);
 	if (ret)
 	if (ret)
 		return ret;
 		return ret;
-#undef MBOX_UPDATE_DWORDS
 
 
 	for_each_ring(useless, dev_priv, i) {
 	for_each_ring(useless, dev_priv, i) {
 		u32 mbox_reg = ring->signal_mbox[i];
 		u32 mbox_reg = ring->signal_mbox[i];