• Home
  • Raw
  • Download

Lines Matching refs:vma

63 				 struct i915_vma *vma)  in i965_write_fence_reg()  argument
81 if (vma) { in i965_write_fence_reg()
82 unsigned int stride = i915_gem_object_get_stride(vma->obj); in i965_write_fence_reg()
84 GEM_BUG_ON(!i915_vma_is_map_and_fenceable(vma)); in i965_write_fence_reg()
85 GEM_BUG_ON(!IS_ALIGNED(vma->node.start, I965_FENCE_PAGE)); in i965_write_fence_reg()
86 GEM_BUG_ON(!IS_ALIGNED(vma->fence_size, I965_FENCE_PAGE)); in i965_write_fence_reg()
89 val = (vma->node.start + vma->fence_size - I965_FENCE_PAGE) << 32; in i965_write_fence_reg()
90 val |= vma->node.start; in i965_write_fence_reg()
92 if (i915_gem_object_get_tiling(vma->obj) == I915_TILING_Y) in i965_write_fence_reg()
120 struct i915_vma *vma) in i915_write_fence_reg() argument
125 if (vma) { in i915_write_fence_reg()
126 unsigned int tiling = i915_gem_object_get_tiling(vma->obj); in i915_write_fence_reg()
128 unsigned int stride = i915_gem_object_get_stride(vma->obj); in i915_write_fence_reg()
130 GEM_BUG_ON(!i915_vma_is_map_and_fenceable(vma)); in i915_write_fence_reg()
131 GEM_BUG_ON(vma->node.start & ~I915_FENCE_START_MASK); in i915_write_fence_reg()
132 GEM_BUG_ON(!is_power_of_2(vma->fence_size)); in i915_write_fence_reg()
133 GEM_BUG_ON(!IS_ALIGNED(vma->node.start, vma->fence_size)); in i915_write_fence_reg()
141 val = vma->node.start; in i915_write_fence_reg()
144 val |= I915_FENCE_SIZE_BITS(vma->fence_size); in i915_write_fence_reg()
160 struct i915_vma *vma) in i830_write_fence_reg() argument
165 if (vma) { in i830_write_fence_reg()
166 unsigned int stride = i915_gem_object_get_stride(vma->obj); in i830_write_fence_reg()
168 GEM_BUG_ON(!i915_vma_is_map_and_fenceable(vma)); in i830_write_fence_reg()
169 GEM_BUG_ON(vma->node.start & ~I830_FENCE_START_MASK); in i830_write_fence_reg()
170 GEM_BUG_ON(!is_power_of_2(vma->fence_size)); in i830_write_fence_reg()
172 GEM_BUG_ON(!IS_ALIGNED(vma->node.start, vma->fence_size)); in i830_write_fence_reg()
174 val = vma->node.start; in i830_write_fence_reg()
175 if (i915_gem_object_get_tiling(vma->obj) == I915_TILING_Y) in i830_write_fence_reg()
177 val |= I830_FENCE_SIZE_BITS(vma->fence_size); in i830_write_fence_reg()
192 struct i915_vma *vma) in fence_write() argument
201 i830_write_fence_reg(fence, vma); in fence_write()
203 i915_write_fence_reg(fence, vma); in fence_write()
205 i965_write_fence_reg(fence, vma); in fence_write()
216 struct i915_vma *vma) in fence_update() argument
222 if (vma) { in fence_update()
223 if (!i915_vma_is_map_and_fenceable(vma)) in fence_update()
226 if (WARN(!i915_gem_object_get_stride(vma->obj) || in fence_update()
227 !i915_gem_object_get_tiling(vma->obj), in fence_update()
229 i915_gem_object_get_stride(vma->obj), in fence_update()
230 i915_gem_object_get_tiling(vma->obj))) in fence_update()
233 ret = i915_active_wait(&vma->active); in fence_update()
238 old = xchg(&fence->vma, NULL); in fence_update()
242 fence->vma = old; in fence_update()
252 if (old != vma) { in fence_update()
273 GEM_BUG_ON(vma); in fence_update()
277 WRITE_ONCE(fence->vma, vma); in fence_update()
278 fence_write(fence, vma); in fence_update()
280 if (vma) { in fence_update()
281 vma->fence = fence; in fence_update()
300 int i915_vma_revoke_fence(struct i915_vma *vma) in i915_vma_revoke_fence() argument
302 struct i915_fence_reg *fence = vma->fence; in i915_vma_revoke_fence()
304 lockdep_assert_held(&vma->vm->mutex); in i915_vma_revoke_fence()
319 GEM_BUG_ON(fence->vma && fence->vma->fence != fence); in fence_find()
334 static int __i915_vma_pin_fence(struct i915_vma *vma) in __i915_vma_pin_fence() argument
336 struct i915_ggtt *ggtt = i915_vm_to_ggtt(vma->vm); in __i915_vma_pin_fence()
338 struct i915_vma *set = i915_gem_object_is_tiled(vma->obj) ? vma : NULL; in __i915_vma_pin_fence()
342 if (vma->fence) { in __i915_vma_pin_fence()
343 fence = vma->fence; in __i915_vma_pin_fence()
344 GEM_BUG_ON(fence->vma != vma); in __i915_vma_pin_fence()
351 fence = fence_find(vma->vm->i915); in __i915_vma_pin_fence()
365 GEM_BUG_ON(fence->vma != set); in __i915_vma_pin_fence()
366 GEM_BUG_ON(vma->fence != (set ? fence : NULL)); in __i915_vma_pin_fence()
394 int i915_vma_pin_fence(struct i915_vma *vma) in i915_vma_pin_fence() argument
402 assert_rpm_wakelock_held(&vma->vm->i915->runtime_pm); in i915_vma_pin_fence()
403 GEM_BUG_ON(!i915_vma_is_pinned(vma)); in i915_vma_pin_fence()
404 GEM_BUG_ON(!i915_vma_is_ggtt(vma)); in i915_vma_pin_fence()
406 err = mutex_lock_interruptible(&vma->vm->mutex); in i915_vma_pin_fence()
410 err = __i915_vma_pin_fence(vma); in i915_vma_pin_fence()
411 mutex_unlock(&vma->vm->mutex); in i915_vma_pin_fence()
443 if (fence->vma) { in i915_reserve_fence()
485 struct i915_vma *vma = READ_ONCE(reg->vma); in i915_gem_restore_fences() local
487 GEM_BUG_ON(vma && vma->fence != reg); in i915_gem_restore_fences()
493 if (vma && !i915_gem_object_is_tiled(vma->obj)) in i915_gem_restore_fences()
494 vma = NULL; in i915_gem_restore_fences()
496 fence_write(reg, vma); in i915_gem_restore_fences()