aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_gtt.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_gtt.h')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
index 9a4824cae68d..feda45dfd481 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.h
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
@@ -270,6 +270,11 @@ struct i915_vma_ops {
270 void (*clear_pages)(struct i915_vma *vma); 270 void (*clear_pages)(struct i915_vma *vma);
271}; 271};
272 272
273struct pagestash {
274 spinlock_t lock;
275 struct pagevec pvec;
276};
277
273struct i915_address_space { 278struct i915_address_space {
274 struct drm_mm mm; 279 struct drm_mm mm;
275 struct drm_i915_private *i915; 280 struct drm_i915_private *i915;
@@ -283,7 +288,6 @@ struct i915_address_space {
283 * assign blame. 288 * assign blame.
284 */ 289 */
285 struct drm_i915_file_private *file; 290 struct drm_i915_file_private *file;
286 struct list_head global_link;
287 u64 total; /* size addr space maps (ex. 2GB for ggtt) */ 291 u64 total; /* size addr space maps (ex. 2GB for ggtt) */
288 u64 reserved; /* size addr space reserved */ 292 u64 reserved; /* size addr space reserved */
289 293
@@ -324,7 +328,7 @@ struct i915_address_space {
324 */ 328 */
325 struct list_head unbound_list; 329 struct list_head unbound_list;
326 330
327 struct pagevec free_pages; 331 struct pagestash free_pages;
328 bool pt_kmap_wc; 332 bool pt_kmap_wc;
329 333
330 /* FIXME: Need a more generic return type */ 334 /* FIXME: Need a more generic return type */
@@ -615,8 +619,7 @@ void i915_ggtt_cleanup_hw(struct drm_i915_private *dev_priv);
615int i915_ppgtt_init_hw(struct drm_i915_private *dev_priv); 619int i915_ppgtt_init_hw(struct drm_i915_private *dev_priv);
616void i915_ppgtt_release(struct kref *kref); 620void i915_ppgtt_release(struct kref *kref);
617struct i915_hw_ppgtt *i915_ppgtt_create(struct drm_i915_private *dev_priv, 621struct i915_hw_ppgtt *i915_ppgtt_create(struct drm_i915_private *dev_priv,
618 struct drm_i915_file_private *fpriv, 622 struct drm_i915_file_private *fpriv);
619 const char *name);
620void i915_ppgtt_close(struct i915_address_space *vm); 623void i915_ppgtt_close(struct i915_address_space *vm);
621static inline void i915_ppgtt_get(struct i915_hw_ppgtt *ppgtt) 624static inline void i915_ppgtt_get(struct i915_hw_ppgtt *ppgtt)
622{ 625{