Lines Matching refs:obj
118 i915_gem_object_fence_ok(struct drm_i915_gem_object *obj, int tiling_mode) in i915_gem_object_fence_ok() argument
125 if (INTEL_INFO(obj->base.dev)->gen >= 4) in i915_gem_object_fence_ok()
128 if (INTEL_INFO(obj->base.dev)->gen == 3) { in i915_gem_object_fence_ok()
129 if (i915_gem_obj_ggtt_offset(obj) & ~I915_FENCE_START_MASK) in i915_gem_object_fence_ok()
132 if (i915_gem_obj_ggtt_offset(obj) & ~I830_FENCE_START_MASK) in i915_gem_object_fence_ok()
136 size = i915_gem_get_gtt_size(obj->base.dev, obj->base.size, tiling_mode); in i915_gem_object_fence_ok()
137 if (i915_gem_obj_ggtt_size(obj) != size) in i915_gem_object_fence_ok()
140 if (i915_gem_obj_ggtt_offset(obj) & (size - 1)) in i915_gem_object_fence_ok()
166 struct drm_i915_gem_object *obj; in i915_gem_set_tiling() local
169 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); in i915_gem_set_tiling()
170 if (&obj->base == NULL) in i915_gem_set_tiling()
174 args->stride, obj->base.size, args->tiling_mode)) { in i915_gem_set_tiling()
175 drm_gem_object_unreference_unlocked(&obj->base); in i915_gem_set_tiling()
180 if (obj->pin_display || obj->framebuffer_references) { in i915_gem_set_tiling()
214 if (args->tiling_mode != obj->tiling_mode || in i915_gem_set_tiling()
215 args->stride != obj->stride) { in i915_gem_set_tiling()
228 if (obj->map_and_fenceable && in i915_gem_set_tiling()
229 !i915_gem_object_fence_ok(obj, args->tiling_mode)) in i915_gem_set_tiling()
230 ret = i915_gem_object_ggtt_unbind(obj); in i915_gem_set_tiling()
233 if (obj->pages && in i915_gem_set_tiling()
234 obj->madv == I915_MADV_WILLNEED && in i915_gem_set_tiling()
237 i915_gem_object_unpin_pages(obj); in i915_gem_set_tiling()
238 if (obj->tiling_mode == I915_TILING_NONE) in i915_gem_set_tiling()
239 i915_gem_object_pin_pages(obj); in i915_gem_set_tiling()
242 obj->fence_dirty = in i915_gem_set_tiling()
243 obj->last_fenced_req || in i915_gem_set_tiling()
244 obj->fence_reg != I915_FENCE_REG_NONE; in i915_gem_set_tiling()
246 obj->tiling_mode = args->tiling_mode; in i915_gem_set_tiling()
247 obj->stride = args->stride; in i915_gem_set_tiling()
250 i915_gem_release_mmap(obj); in i915_gem_set_tiling()
254 args->stride = obj->stride; in i915_gem_set_tiling()
255 args->tiling_mode = obj->tiling_mode; in i915_gem_set_tiling()
258 if (i915_gem_object_needs_bit17_swizzle(obj)) { in i915_gem_set_tiling()
259 if (obj->bit_17 == NULL) { in i915_gem_set_tiling()
260 obj->bit_17 = kcalloc(BITS_TO_LONGS(obj->base.size >> PAGE_SHIFT), in i915_gem_set_tiling()
264 kfree(obj->bit_17); in i915_gem_set_tiling()
265 obj->bit_17 = NULL; in i915_gem_set_tiling()
269 drm_gem_object_unreference(&obj->base); in i915_gem_set_tiling()
294 struct drm_i915_gem_object *obj; in i915_gem_get_tiling() local
296 obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); in i915_gem_get_tiling()
297 if (&obj->base == NULL) in i915_gem_get_tiling()
302 args->tiling_mode = obj->tiling_mode; in i915_gem_get_tiling()
303 switch (obj->tiling_mode) { in i915_gem_get_tiling()
327 drm_gem_object_unreference(&obj->base); in i915_gem_get_tiling()