Lines Matching defs:obj

119 i915_tiling_ok(struct drm_i915_gem_object *obj,
122 struct drm_i915_private *i915 = to_i915(obj->base.dev);
183 i915_gem_object_fence_prepare(struct drm_i915_gem_object *obj,
186 struct drm_i915_private *i915 = to_i915(obj->base.dev);
197 spin_lock(&obj->vma.lock);
198 for_each_ggtt_vma(vma, obj) {
206 spin_unlock(&obj->vma.lock);
222 bool i915_gem_object_needs_bit17_swizzle(struct drm_i915_gem_object *obj)
224 struct drm_i915_private *i915 = to_i915(obj->base.dev);
227 i915_gem_object_is_tiled(obj);
231 i915_gem_object_set_tiling(struct drm_i915_gem_object *obj,
234 struct drm_i915_private *i915 = to_i915(obj->base.dev);
238 /* Make sure we don't cross-contaminate obj->tiling_and_stride */
241 GEM_BUG_ON(!i915_tiling_ok(obj, tiling, stride));
244 if ((tiling | stride) == obj->tiling_and_stride)
247 if (i915_gem_object_is_framebuffer(obj))
263 i915_gem_object_lock(obj, NULL);
264 if (i915_gem_object_is_framebuffer(obj)) {
265 i915_gem_object_unlock(obj);
269 err = i915_gem_object_fence_prepare(obj, tiling, stride);
271 i915_gem_object_unlock(obj);
279 if (i915_gem_object_has_pages(obj) &&
280 obj->mm.madv == I915_MADV_WILLNEED &&
283 GEM_BUG_ON(!i915_gem_object_has_tiling_quirk(obj));
284 i915_gem_object_clear_tiling_quirk(obj);
285 i915_gem_object_make_shrinkable(obj);
287 if (!i915_gem_object_is_tiled(obj)) {
288 GEM_BUG_ON(i915_gem_object_has_tiling_quirk(obj));
289 i915_gem_object_make_unshrinkable(obj);
290 i915_gem_object_set_tiling_quirk(obj);
294 spin_lock(&obj->vma.lock);
295 for_each_ggtt_vma(vma, obj) {
305 spin_unlock(&obj->vma.lock);
307 obj->tiling_and_stride = tiling | stride;
310 if (i915_gem_object_needs_bit17_swizzle(obj)) {
311 if (!obj->bit_17) {
312 obj->bit_17 = bitmap_zalloc(obj->base.size >> PAGE_SHIFT,
316 bitmap_free(obj->bit_17);
317 obj->bit_17 = NULL;
320 i915_gem_object_unlock(obj);
323 i915_gem_object_release_mmap_gtt(obj);
348 struct drm_i915_gem_object *obj;
354 obj = i915_gem_object_lookup(file, args->handle);
355 if (!obj)
362 if (i915_gem_object_is_proxy(obj)) {
367 if (!i915_tiling_ok(obj, args->tiling_mode, args->stride)) {
401 err = i915_gem_object_set_tiling(obj, args->tiling_mode, args->stride);
404 args->stride = i915_gem_object_get_stride(obj);
405 args->tiling_mode = i915_gem_object_get_tiling(obj);
408 i915_gem_object_put(obj);
431 struct drm_i915_gem_object *obj;
438 obj = i915_gem_object_lookup_rcu(file, args->handle);
439 if (obj) {
441 READ_ONCE(obj->tiling_and_stride) & TILING_MASK;