drm/i915/execbuffer: Reorder binding of objects to favour restrictions
[pandora-kernel.git] / drivers / gpu / drm / i915 / i915_drv.h
index 4552600..385fc7e 100644 (file)
@@ -172,20 +172,21 @@ struct drm_i915_error_state {
                int page_count;
                u32 gtt_offset;
                u32 *pages[0];
-       } *ringbuffer, *batchbuffer[2];
+       } *ringbuffer, *batchbuffer[I915_NUM_RINGS];
        struct drm_i915_error_buffer {
-               size_t size;
+               u32 size;
                u32 name;
                u32 seqno;
                u32 gtt_offset;
                u32 read_domains;
                u32 write_domain;
-               u32 fence_reg;
+               s32 fence_reg:5;
                s32 pinned:2;
                u32 tiling:2;
                u32 dirty:1;
                u32 purgeable:1;
                u32 ring:4;
+               u32 agp_type:1;
        } *active_bo, *pinned_bo;
        u32 active_bo_count, pinned_bo_count;
        struct intel_overlay_error_state *overlay;
@@ -795,6 +796,7 @@ struct drm_i915_gem_object {
         */
        struct hlist_node exec_node;
        unsigned long exec_handle;
+       struct drm_i915_gem_exec_object2 *exec_entry;
 
        /**
         * Current offset of the object in GTT space.
@@ -1086,10 +1088,10 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
                                struct drm_file *file_priv);
 void i915_gem_load(struct drm_device *dev);
 int i915_gem_init_object(struct drm_gem_object *obj);
-void i915_gem_flush_ring(struct drm_device *dev,
-                        struct intel_ring_buffer *ring,
-                        uint32_t invalidate_domains,
-                        uint32_t flush_domains);
+int __must_check i915_gem_flush_ring(struct drm_device *dev,
+                                    struct intel_ring_buffer *ring,
+                                    uint32_t invalidate_domains,
+                                    uint32_t flush_domains);
 struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
                                                  size_t size);
 void i915_gem_free_object(struct drm_gem_object *obj);