summaryrefslogtreecommitdiff
path: root/linux-core/i915_buffer.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2007-10-25 11:00:45 +0200
committerThomas Hellstrom <thomas-at-tungstengraphics-dot-com>2007-10-25 11:00:45 +0200
commit9adf8c02563b1e6110e46dabd733e2dc440b4200 (patch)
tree7a0e360dc9663b3e269a5d5e164672bf8885a5e4 /linux-core/i915_buffer.c
parentd5f2b4b411c5ca95d6f66a33d213ece387ac4fc5 (diff)
parentb9d9c30474238ac8ba4899a19fe4a97e9376f6c4 (diff)
Merge branch 'master' into modesetting-101
Conflicts: linux-core/Makefile.kernel linux-core/drm_bo.c linux-core/drm_objects.h
Diffstat (limited to 'linux-core/i915_buffer.c')
-rw-r--r--linux-core/i915_buffer.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/linux-core/i915_buffer.c b/linux-core/i915_buffer.c
index 682a899a..01fae64a 100644
--- a/linux-core/i915_buffer.c
+++ b/linux-core/i915_buffer.c
@@ -124,6 +124,8 @@ uint32_t i915_evict_mask(struct drm_buffer_object *bo)
}
}
+#if 0 /* See comment below */
+
static void i915_emit_copy_blit(struct drm_device * dev,
uint32_t src_offset,
uint32_t dst_offset,
@@ -224,6 +226,16 @@ out_cleanup:
return ret;
}
+#endif
+
+/*
+ * Disable i915_move_flip for now, since we can't guarantee that the hardware lock
+ * is held here. To re-enable we need to make sure either
+ * a) The X server is using DRM to submit commands to the ring, or
+ * b) DRM can use the HP ring for these blits. This means i915 needs to implement
+ * a new ring submission mechanism and fence class.
+ */
+
int i915_move(struct drm_buffer_object * bo,
int evict, int no_wait, struct drm_bo_mem_reg * new_mem)
{
@@ -232,10 +244,10 @@ int i915_move(struct drm_buffer_object * bo,
if (old_mem->mem_type == DRM_BO_MEM_LOCAL) {
return drm_bo_move_memcpy(bo, evict, no_wait, new_mem);
} else if (new_mem->mem_type == DRM_BO_MEM_LOCAL) {
- if (i915_move_flip(bo, evict, no_wait, new_mem))
+ if (0 /*i915_move_flip(bo, evict, no_wait, new_mem)*/)
return drm_bo_move_memcpy(bo, evict, no_wait, new_mem);
} else {
- if (i915_move_blit(bo, evict, no_wait, new_mem))
+ if (0 /*i915_move_blit(bo, evict, no_wait, new_mem)*/)
return drm_bo_move_memcpy(bo, evict, no_wait, new_mem);
}
return 0;