Lines Matching refs:obj

287 i915_gem_object_fence_ok(struct drm_i915_gem_object *obj, int tiling_mode)  in i915_gem_object_fence_ok()  argument
294 if (INTEL_INFO(obj->base.dev)->gen >= 4) in i915_gem_object_fence_ok()
297 if (INTEL_INFO(obj->base.dev)->gen == 3) { in i915_gem_object_fence_ok()
298 if (i915_gem_obj_ggtt_offset(obj) & ~I915_FENCE_START_MASK) in i915_gem_object_fence_ok()
301 if (i915_gem_obj_ggtt_offset(obj) & ~I830_FENCE_START_MASK) in i915_gem_object_fence_ok()
305 size = i915_gem_get_gtt_size(obj->base.dev, obj->base.size, tiling_mode); in i915_gem_object_fence_ok()
306 if (i915_gem_obj_ggtt_size(obj) != size) in i915_gem_object_fence_ok()
309 if (i915_gem_obj_ggtt_offset(obj) & (size - 1)) in i915_gem_object_fence_ok()
325 struct drm_i915_gem_object *obj; in i915_gem_set_tiling() local
328 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); in i915_gem_set_tiling()
329 if (&obj->base == NULL) in i915_gem_set_tiling()
333 args->stride, obj->base.size, args->tiling_mode)) { in i915_gem_set_tiling()
334 drm_gem_object_unreference_unlocked(&obj->base); in i915_gem_set_tiling()
339 if (i915_gem_obj_is_pinned(obj) || obj->framebuffer_references) { in i915_gem_set_tiling()
373 if (args->tiling_mode != obj->tiling_mode || in i915_gem_set_tiling()
374 args->stride != obj->stride) { in i915_gem_set_tiling()
387 if (obj->map_and_fenceable && in i915_gem_set_tiling()
388 !i915_gem_object_fence_ok(obj, args->tiling_mode)) in i915_gem_set_tiling()
389 ret = i915_gem_object_ggtt_unbind(obj); in i915_gem_set_tiling()
392 if (obj->pages && in i915_gem_set_tiling()
393 obj->madv == I915_MADV_WILLNEED && in i915_gem_set_tiling()
396 i915_gem_object_unpin_pages(obj); in i915_gem_set_tiling()
397 if (obj->tiling_mode == I915_TILING_NONE) in i915_gem_set_tiling()
398 i915_gem_object_pin_pages(obj); in i915_gem_set_tiling()
401 obj->fence_dirty = in i915_gem_set_tiling()
402 obj->last_fenced_req || in i915_gem_set_tiling()
403 obj->fence_reg != I915_FENCE_REG_NONE; in i915_gem_set_tiling()
405 obj->tiling_mode = args->tiling_mode; in i915_gem_set_tiling()
406 obj->stride = args->stride; in i915_gem_set_tiling()
409 i915_gem_release_mmap(obj); in i915_gem_set_tiling()
413 args->stride = obj->stride; in i915_gem_set_tiling()
414 args->tiling_mode = obj->tiling_mode; in i915_gem_set_tiling()
417 if (i915_gem_object_needs_bit17_swizzle(obj)) { in i915_gem_set_tiling()
418 if (obj->bit_17 == NULL) { in i915_gem_set_tiling()
419 obj->bit_17 = kcalloc(BITS_TO_LONGS(obj->base.size >> PAGE_SHIFT), in i915_gem_set_tiling()
423 kfree(obj->bit_17); in i915_gem_set_tiling()
424 obj->bit_17 = NULL; in i915_gem_set_tiling()
428 drm_gem_object_unreference(&obj->base); in i915_gem_set_tiling()
443 struct drm_i915_gem_object *obj; in i915_gem_get_tiling() local
445 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); in i915_gem_get_tiling()
446 if (&obj->base == NULL) in i915_gem_get_tiling()
451 args->tiling_mode = obj->tiling_mode; in i915_gem_get_tiling()
452 switch (obj->tiling_mode) { in i915_gem_get_tiling()
476 drm_gem_object_unreference(&obj->base); in i915_gem_get_tiling()
506 i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj) in i915_gem_object_do_bit_17_swizzle() argument
511 if (obj->bit_17 == NULL) in i915_gem_object_do_bit_17_swizzle()
515 for_each_sg_page(obj->pages->sgl, &sg_iter, obj->pages->nents, 0) { in i915_gem_object_do_bit_17_swizzle()
519 (test_bit(i, obj->bit_17) != 0)) { in i915_gem_object_do_bit_17_swizzle()
528 i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj) in i915_gem_object_save_bit_17_swizzle() argument
531 int page_count = obj->base.size >> PAGE_SHIFT; in i915_gem_object_save_bit_17_swizzle()
534 if (obj->bit_17 == NULL) { in i915_gem_object_save_bit_17_swizzle()
535 obj->bit_17 = kcalloc(BITS_TO_LONGS(page_count), in i915_gem_object_save_bit_17_swizzle()
537 if (obj->bit_17 == NULL) { in i915_gem_object_save_bit_17_swizzle()
545 for_each_sg_page(obj->pages->sgl, &sg_iter, obj->pages->nents, 0) { in i915_gem_object_save_bit_17_swizzle()
547 __set_bit(i, obj->bit_17); in i915_gem_object_save_bit_17_swizzle()
549 __clear_bit(i, obj->bit_17); in i915_gem_object_save_bit_17_swizzle()