• Home
  • Raw
  • Download

Lines Matching refs:bo

97 	struct cirrus_bo *bo;  in cirrus_bo_ttm_destroy()  local
99 bo = container_of(tbo, struct cirrus_bo, bo); in cirrus_bo_ttm_destroy()
101 drm_gem_object_release(&bo->gem); in cirrus_bo_ttm_destroy()
102 kfree(bo); in cirrus_bo_ttm_destroy()
105 bool cirrus_ttm_bo_is_cirrus_bo(struct ttm_buffer_object *bo) in cirrus_ttm_bo_is_cirrus_bo() argument
107 if (bo->destroy == &cirrus_bo_ttm_destroy) in cirrus_ttm_bo_is_cirrus_bo()
138 cirrus_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) in cirrus_bo_evict_flags() argument
140 struct cirrus_bo *cirrusbo = cirrus_bo(bo); in cirrus_bo_evict_flags()
142 if (!cirrus_ttm_bo_is_cirrus_bo(bo)) in cirrus_bo_evict_flags()
149 static int cirrus_bo_verify_access(struct ttm_buffer_object *bo, struct file *filp) in cirrus_bo_verify_access() argument
187 static int cirrus_bo_move(struct ttm_buffer_object *bo, in cirrus_bo_move() argument
193 r = ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem); in cirrus_bo_move()
301 void cirrus_ttm_placement(struct cirrus_bo *bo, int domain) in cirrus_ttm_placement() argument
304 bo->placement.fpfn = 0; in cirrus_ttm_placement()
305 bo->placement.lpfn = 0; in cirrus_ttm_placement()
306 bo->placement.placement = bo->placements; in cirrus_ttm_placement()
307 bo->placement.busy_placement = bo->placements; in cirrus_ttm_placement()
309 bo->placements[c++] = TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM; in cirrus_ttm_placement()
311 bo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM; in cirrus_ttm_placement()
313 bo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM; in cirrus_ttm_placement()
314 bo->placement.num_placement = c; in cirrus_ttm_placement()
315 bo->placement.num_busy_placement = c; in cirrus_ttm_placement()
318 int cirrus_bo_reserve(struct cirrus_bo *bo, bool no_wait) in cirrus_bo_reserve() argument
322 ret = ttm_bo_reserve(&bo->bo, true, no_wait, false, 0); in cirrus_bo_reserve()
325 DRM_ERROR("reserve failed %p\n", bo); in cirrus_bo_reserve()
331 void cirrus_bo_unreserve(struct cirrus_bo *bo) in cirrus_bo_unreserve() argument
333 ttm_bo_unreserve(&bo->bo); in cirrus_bo_unreserve()
355 cirrusbo->bo.bdev = &cirrus->ttm.bdev; in cirrus_bo_create()
362 ret = ttm_bo_init(&cirrus->ttm.bdev, &cirrusbo->bo, size, in cirrus_bo_create()
373 static inline u64 cirrus_bo_gpu_offset(struct cirrus_bo *bo) in cirrus_bo_gpu_offset() argument
375 return bo->bo.offset; in cirrus_bo_gpu_offset()
378 int cirrus_bo_pin(struct cirrus_bo *bo, u32 pl_flag, u64 *gpu_addr) in cirrus_bo_pin() argument
382 if (bo->pin_count) { in cirrus_bo_pin()
383 bo->pin_count++; in cirrus_bo_pin()
385 *gpu_addr = cirrus_bo_gpu_offset(bo); in cirrus_bo_pin()
388 cirrus_ttm_placement(bo, pl_flag); in cirrus_bo_pin()
389 for (i = 0; i < bo->placement.num_placement; i++) in cirrus_bo_pin()
390 bo->placements[i] |= TTM_PL_FLAG_NO_EVICT; in cirrus_bo_pin()
391 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in cirrus_bo_pin()
395 bo->pin_count = 1; in cirrus_bo_pin()
397 *gpu_addr = cirrus_bo_gpu_offset(bo); in cirrus_bo_pin()
401 int cirrus_bo_unpin(struct cirrus_bo *bo) in cirrus_bo_unpin() argument
404 if (!bo->pin_count) { in cirrus_bo_unpin()
405 DRM_ERROR("unpin bad %p\n", bo); in cirrus_bo_unpin()
408 bo->pin_count--; in cirrus_bo_unpin()
409 if (bo->pin_count) in cirrus_bo_unpin()
412 for (i = 0; i < bo->placement.num_placement ; i++) in cirrus_bo_unpin()
413 bo->placements[i] &= ~TTM_PL_FLAG_NO_EVICT; in cirrus_bo_unpin()
414 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in cirrus_bo_unpin()
421 int cirrus_bo_push_sysram(struct cirrus_bo *bo) in cirrus_bo_push_sysram() argument
424 if (!bo->pin_count) { in cirrus_bo_push_sysram()
425 DRM_ERROR("unpin bad %p\n", bo); in cirrus_bo_push_sysram()
428 bo->pin_count--; in cirrus_bo_push_sysram()
429 if (bo->pin_count) in cirrus_bo_push_sysram()
432 if (bo->kmap.virtual) in cirrus_bo_push_sysram()
433 ttm_bo_kunmap(&bo->kmap); in cirrus_bo_push_sysram()
435 cirrus_ttm_placement(bo, TTM_PL_FLAG_SYSTEM); in cirrus_bo_push_sysram()
436 for (i = 0; i < bo->placement.num_placement ; i++) in cirrus_bo_push_sysram()
437 bo->placements[i] |= TTM_PL_FLAG_NO_EVICT; in cirrus_bo_push_sysram()
439 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in cirrus_bo_push_sysram()