Lines Matching refs:bo

97 	struct ast_bo *bo;  in ast_bo_ttm_destroy()  local
99 bo = container_of(tbo, struct ast_bo, bo); in ast_bo_ttm_destroy()
101 drm_gem_object_release(&bo->gem); in ast_bo_ttm_destroy()
102 kfree(bo); in ast_bo_ttm_destroy()
105 static bool ast_ttm_bo_is_ast_bo(struct ttm_buffer_object *bo) in ast_ttm_bo_is_ast_bo() argument
107 if (bo->destroy == &ast_bo_ttm_destroy) in ast_ttm_bo_is_ast_bo()
138 ast_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) in ast_bo_evict_flags() argument
140 struct ast_bo *astbo = ast_bo(bo); in ast_bo_evict_flags()
142 if (!ast_ttm_bo_is_ast_bo(bo)) in ast_bo_evict_flags()
149 static int ast_bo_verify_access(struct ttm_buffer_object *bo, struct file *filp) in ast_bo_verify_access() argument
151 struct ast_bo *astbo = ast_bo(bo); in ast_bo_verify_access()
189 static int ast_bo_move(struct ttm_buffer_object *bo, in ast_bo_move() argument
195 r = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem); in ast_bo_move()
293 void ast_ttm_placement(struct ast_bo *bo, int domain) in ast_ttm_placement() argument
298 bo->placement.placement = bo->placements; in ast_ttm_placement()
299 bo->placement.busy_placement = bo->placements; in ast_ttm_placement()
301 bo->placements[c++].flags = TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM; in ast_ttm_placement()
303 bo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_SYSTEM; in ast_ttm_placement()
305 bo->placements[c++].flags = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_SYSTEM; in ast_ttm_placement()
306 bo->placement.num_placement = c; in ast_ttm_placement()
307 bo->placement.num_busy_placement = c; in ast_ttm_placement()
309 bo->placements[i].fpfn = 0; in ast_ttm_placement()
310 bo->placements[i].lpfn = 0; in ast_ttm_placement()
332 astbo->bo.bdev = &ast->ttm.bdev; in ast_bo_create()
339 ret = ttm_bo_init(&ast->ttm.bdev, &astbo->bo, size, in ast_bo_create()
350 static inline u64 ast_bo_gpu_offset(struct ast_bo *bo) in ast_bo_gpu_offset() argument
352 return bo->bo.offset; in ast_bo_gpu_offset()
355 int ast_bo_pin(struct ast_bo *bo, u32 pl_flag, u64 *gpu_addr) in ast_bo_pin() argument
359 if (bo->pin_count) { in ast_bo_pin()
360 bo->pin_count++; in ast_bo_pin()
362 *gpu_addr = ast_bo_gpu_offset(bo); in ast_bo_pin()
365 ast_ttm_placement(bo, pl_flag); in ast_bo_pin()
366 for (i = 0; i < bo->placement.num_placement; i++) in ast_bo_pin()
367 bo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT; in ast_bo_pin()
368 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in ast_bo_pin()
372 bo->pin_count = 1; in ast_bo_pin()
374 *gpu_addr = ast_bo_gpu_offset(bo); in ast_bo_pin()
378 int ast_bo_unpin(struct ast_bo *bo) in ast_bo_unpin() argument
381 if (!bo->pin_count) { in ast_bo_unpin()
382 DRM_ERROR("unpin bad %p\n", bo); in ast_bo_unpin()
385 bo->pin_count--; in ast_bo_unpin()
386 if (bo->pin_count) in ast_bo_unpin()
389 for (i = 0; i < bo->placement.num_placement ; i++) in ast_bo_unpin()
390 bo->placements[i].flags &= ~TTM_PL_FLAG_NO_EVICT; in ast_bo_unpin()
391 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in ast_bo_unpin()
398 int ast_bo_push_sysram(struct ast_bo *bo) in ast_bo_push_sysram() argument
401 if (!bo->pin_count) { in ast_bo_push_sysram()
402 DRM_ERROR("unpin bad %p\n", bo); in ast_bo_push_sysram()
405 bo->pin_count--; in ast_bo_push_sysram()
406 if (bo->pin_count) in ast_bo_push_sysram()
409 if (bo->kmap.virtual) in ast_bo_push_sysram()
410 ttm_bo_kunmap(&bo->kmap); in ast_bo_push_sysram()
412 ast_ttm_placement(bo, TTM_PL_FLAG_SYSTEM); in ast_bo_push_sysram()
413 for (i = 0; i < bo->placement.num_placement ; i++) in ast_bo_push_sysram()
414 bo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT; in ast_bo_push_sysram()
416 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in ast_bo_push_sysram()