diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index b62ff5d6fa7e..67ec046aeb90 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -547,6 +547,9 @@ typedef struct drm_i915_private { | |||
547 | struct drm_mm stolen; | 547 | struct drm_mm stolen; |
548 | /** Memory allocator for GTT */ | 548 | /** Memory allocator for GTT */ |
549 | struct drm_mm gtt_space; | 549 | struct drm_mm gtt_space; |
550 | /** List of all objects in gtt_space. Used to restore gtt | ||
551 | * mappings on resume */ | ||
552 | struct list_head gtt_list; | ||
550 | /** End of mappable part of GTT */ | 553 | /** End of mappable part of GTT */ |
551 | unsigned long gtt_mappable_end; | 554 | unsigned long gtt_mappable_end; |
552 | 555 | ||
@@ -714,6 +717,7 @@ struct drm_i915_gem_object { | |||
714 | 717 | ||
715 | /** Current space allocated to this object in the GTT, if any. */ | 718 | /** Current space allocated to this object in the GTT, if any. */ |
716 | struct drm_mm_node *gtt_space; | 719 | struct drm_mm_node *gtt_space; |
720 | struct list_head gtt_list; | ||
717 | 721 | ||
718 | /** This object's place on the active/flushing/inactive lists */ | 722 | /** This object's place on the active/flushing/inactive lists */ |
719 | struct list_head ring_list; | 723 | struct list_head ring_list; |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index b663d2da1db3..07e1b25f4a8a 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -95,6 +95,7 @@ static void i915_gem_info_add_gtt(struct drm_i915_private *dev_priv, | |||
95 | min_t(size_t, obj->gtt_space->size, | 95 | min_t(size_t, obj->gtt_space->size, |
96 | dev_priv->mm.gtt_mappable_end - obj->gtt_offset); | 96 | dev_priv->mm.gtt_mappable_end - obj->gtt_offset); |
97 | } | 97 | } |
98 | list_add_tail(&obj->gtt_list, &dev_priv->mm.gtt_list); | ||
98 | } | 99 | } |
99 | 100 | ||
100 | static void i915_gem_info_remove_gtt(struct drm_i915_private *dev_priv, | 101 | static void i915_gem_info_remove_gtt(struct drm_i915_private *dev_priv, |
@@ -107,6 +108,7 @@ static void i915_gem_info_remove_gtt(struct drm_i915_private *dev_priv, | |||
107 | min_t(size_t, obj->gtt_space->size, | 108 | min_t(size_t, obj->gtt_space->size, |
108 | dev_priv->mm.gtt_mappable_end - obj->gtt_offset); | 109 | dev_priv->mm.gtt_mappable_end - obj->gtt_offset); |
109 | } | 110 | } |
111 | list_del_init(&obj->gtt_list); | ||
110 | } | 112 | } |
111 | 113 | ||
112 | /** | 114 | /** |
@@ -4604,6 +4606,7 @@ struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, | |||
4604 | obj->base.driver_private = NULL; | 4606 | obj->base.driver_private = NULL; |
4605 | obj->fence_reg = I915_FENCE_REG_NONE; | 4607 | obj->fence_reg = I915_FENCE_REG_NONE; |
4606 | INIT_LIST_HEAD(&obj->mm_list); | 4608 | INIT_LIST_HEAD(&obj->mm_list); |
4609 | INIT_LIST_HEAD(&obj->gtt_list); | ||
4607 | INIT_LIST_HEAD(&obj->ring_list); | 4610 | INIT_LIST_HEAD(&obj->ring_list); |
4608 | INIT_LIST_HEAD(&obj->gpu_write_list); | 4611 | INIT_LIST_HEAD(&obj->gpu_write_list); |
4609 | obj->madv = I915_MADV_WILLNEED; | 4612 | obj->madv = I915_MADV_WILLNEED; |
@@ -4916,6 +4919,7 @@ i915_gem_load(struct drm_device *dev) | |||
4916 | INIT_LIST_HEAD(&dev_priv->mm.pinned_list); | 4919 | INIT_LIST_HEAD(&dev_priv->mm.pinned_list); |
4917 | INIT_LIST_HEAD(&dev_priv->mm.fence_list); | 4920 | INIT_LIST_HEAD(&dev_priv->mm.fence_list); |
4918 | INIT_LIST_HEAD(&dev_priv->mm.deferred_free_list); | 4921 | INIT_LIST_HEAD(&dev_priv->mm.deferred_free_list); |
4922 | INIT_LIST_HEAD(&dev_priv->mm.gtt_list); | ||
4919 | init_ring_lists(&dev_priv->render_ring); | 4923 | init_ring_lists(&dev_priv->render_ring); |
4920 | init_ring_lists(&dev_priv->bsd_ring); | 4924 | init_ring_lists(&dev_priv->bsd_ring); |
4921 | init_ring_lists(&dev_priv->blt_ring); | 4925 | init_ring_lists(&dev_priv->blt_ring); |