Lines Matching refs:tbo
53 if (lbo->tbo.base.size <= PAGE_SIZE) in lsdc_bo_set_placement()
93 lsdc_ttm_tt_create(struct ttm_buffer_object *tbo, uint32_t page_flags) in lsdc_ttm_tt_create() argument
102 ret = ttm_sg_tt_init(tt, tbo, page_flags, ttm_cached); in lsdc_ttm_tt_create()
139 static void lsdc_bo_evict_flags(struct ttm_buffer_object *tbo, in lsdc_bo_evict_flags() argument
142 struct ttm_resource *resource = tbo->resource; in lsdc_bo_evict_flags()
143 struct lsdc_bo *lbo = to_lsdc_bo(tbo); in lsdc_bo_evict_flags()
158 static int lsdc_bo_move(struct ttm_buffer_object *tbo, in lsdc_bo_move() argument
164 struct drm_device *ddev = tbo->base.dev; in lsdc_bo_move()
165 struct ttm_resource *old_mem = tbo->resource; in lsdc_bo_move()
166 struct lsdc_bo *lbo = to_lsdc_bo(tbo); in lsdc_bo_move()
169 if (unlikely(tbo->pin_count > 0)) { in lsdc_bo_move()
174 ret = ttm_bo_wait_ctx(tbo, ctx); in lsdc_bo_move()
182 ttm_bo_move_null(tbo, new_mem); in lsdc_bo_move()
186 if (old_mem->mem_type == TTM_PL_SYSTEM && !tbo->ttm) { in lsdc_bo_move()
187 ttm_bo_move_null(tbo, new_mem); in lsdc_bo_move()
197 ttm_bo_move_null(tbo, new_mem); in lsdc_bo_move()
205 ttm_resource_free(tbo, &tbo->resource); in lsdc_bo_move()
206 ttm_bo_assign_mem(tbo, new_mem); in lsdc_bo_move()
216 return ttm_bo_move_memcpy(tbo, ctx, new_mem); in lsdc_bo_move()
254 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_gpu_offset() local
255 struct drm_device *ddev = tbo->base.dev; in lsdc_bo_gpu_offset()
256 struct ttm_resource *resource = tbo->resource; in lsdc_bo_gpu_offset()
258 if (unlikely(!tbo->pin_count)) { in lsdc_bo_gpu_offset()
271 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_size() local
273 return tbo->base.size; in lsdc_bo_size()
278 return ttm_bo_reserve(&lbo->tbo, true, false, NULL); in lsdc_bo_reserve()
283 return ttm_bo_unreserve(&lbo->tbo); in lsdc_bo_unreserve()
289 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_pin() local
290 struct lsdc_device *ldev = tdev_to_ldev(tbo->bdev); in lsdc_bo_pin()
293 if (tbo->pin_count) in lsdc_bo_pin()
302 ret = ttm_bo_validate(tbo, &lbo->placement, &ctx); in lsdc_bo_pin()
314 ttm_bo_pin(tbo); in lsdc_bo_pin()
324 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_unpin() local
325 struct lsdc_device *ldev = tdev_to_ldev(tbo->bdev); in lsdc_bo_unpin()
327 if (unlikely(!tbo->pin_count)) { in lsdc_bo_unpin()
332 ttm_bo_unpin(tbo); in lsdc_bo_unpin()
334 if (!tbo->pin_count) { in lsdc_bo_unpin()
335 if (tbo->resource->mem_type == TTM_PL_VRAM) in lsdc_bo_unpin()
337 else if (tbo->resource->mem_type == TTM_PL_TT) in lsdc_bo_unpin()
344 drm_gem_object_get(&lbo->tbo.base); in lsdc_bo_ref()
349 drm_gem_object_put(&lbo->tbo.base); in lsdc_bo_unref()
354 struct ttm_buffer_object *tbo = &lbo->tbo; in lsdc_bo_kmap() local
355 struct drm_gem_object *gem = &tbo->base; in lsdc_bo_kmap()
370 err = ttm_bo_kmap(tbo, 0, PFN_UP(lsdc_bo_size(lbo)), &lbo->kmap); in lsdc_bo_kmap()
415 static void lsdc_bo_destroy(struct ttm_buffer_object *tbo) in lsdc_bo_destroy() argument
417 struct lsdc_device *ldev = tdev_to_ldev(tbo->bdev); in lsdc_bo_destroy()
418 struct lsdc_bo *lbo = to_lsdc_bo(tbo); in lsdc_bo_destroy()
424 drm_gem_object_release(&tbo->base); in lsdc_bo_destroy()
438 struct ttm_buffer_object *tbo; in lsdc_bo_create() local
453 tbo = &lbo->tbo; in lsdc_bo_create()
457 ret = drm_gem_object_init(ddev, &tbo->base, size); in lsdc_bo_create()
463 tbo->bdev = bdev; in lsdc_bo_create()
475 ret = ttm_bo_init_validate(bdev, tbo, bo_type, &lbo->placement, 0, in lsdc_bo_create()