Lines Matching refs:bo
10 static void bochs_ttm_placement(struct bochs_bo *bo, int domain);
76 struct bochs_bo *bo; in bochs_bo_ttm_destroy() local
78 bo = container_of(tbo, struct bochs_bo, bo); in bochs_bo_ttm_destroy()
79 drm_gem_object_release(&bo->gem); in bochs_bo_ttm_destroy()
80 kfree(bo); in bochs_bo_ttm_destroy()
83 static bool bochs_ttm_bo_is_bochs_bo(struct ttm_buffer_object *bo) in bochs_ttm_bo_is_bochs_bo() argument
85 if (bo->destroy == &bochs_bo_ttm_destroy) in bochs_ttm_bo_is_bochs_bo()
115 bochs_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) in bochs_bo_evict_flags() argument
117 struct bochs_bo *bochsbo = bochs_bo(bo); in bochs_bo_evict_flags()
119 if (!bochs_ttm_bo_is_bochs_bo(bo)) in bochs_bo_evict_flags()
126 static int bochs_bo_verify_access(struct ttm_buffer_object *bo, in bochs_bo_verify_access() argument
129 struct bochs_bo *bochsbo = bochs_bo(bo); in bochs_bo_verify_access()
168 static int bochs_bo_move(struct ttm_buffer_object *bo, in bochs_bo_move() argument
173 return ttm_bo_move_memcpy(bo, evict, no_wait_gpu, new_mem); in bochs_bo_move()
258 static void bochs_ttm_placement(struct bochs_bo *bo, int domain) in bochs_ttm_placement() argument
262 bo->placement.placement = bo->placements; in bochs_ttm_placement()
263 bo->placement.busy_placement = bo->placements; in bochs_ttm_placement()
265 bo->placements[c++].flags = TTM_PL_FLAG_WC in bochs_ttm_placement()
270 bo->placements[c++].flags = TTM_PL_MASK_CACHING in bochs_ttm_placement()
274 bo->placements[c++].flags = TTM_PL_MASK_CACHING in bochs_ttm_placement()
278 bo->placements[i].fpfn = 0; in bochs_ttm_placement()
279 bo->placements[i].lpfn = 0; in bochs_ttm_placement()
281 bo->placement.num_placement = c; in bochs_ttm_placement()
282 bo->placement.num_busy_placement = c; in bochs_ttm_placement()
285 static inline u64 bochs_bo_gpu_offset(struct bochs_bo *bo) in bochs_bo_gpu_offset() argument
287 return bo->bo.offset; in bochs_bo_gpu_offset()
290 int bochs_bo_pin(struct bochs_bo *bo, u32 pl_flag, u64 *gpu_addr) in bochs_bo_pin() argument
294 if (bo->pin_count) { in bochs_bo_pin()
295 bo->pin_count++; in bochs_bo_pin()
297 *gpu_addr = bochs_bo_gpu_offset(bo); in bochs_bo_pin()
301 bochs_ttm_placement(bo, pl_flag); in bochs_bo_pin()
302 for (i = 0; i < bo->placement.num_placement; i++) in bochs_bo_pin()
303 bo->placements[i].flags |= TTM_PL_FLAG_NO_EVICT; in bochs_bo_pin()
304 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in bochs_bo_pin()
308 bo->pin_count = 1; in bochs_bo_pin()
310 *gpu_addr = bochs_bo_gpu_offset(bo); in bochs_bo_pin()
314 int bochs_bo_unpin(struct bochs_bo *bo) in bochs_bo_unpin() argument
318 if (!bo->pin_count) { in bochs_bo_unpin()
319 DRM_ERROR("unpin bad %p\n", bo); in bochs_bo_unpin()
322 bo->pin_count--; in bochs_bo_unpin()
324 if (bo->pin_count) in bochs_bo_unpin()
327 for (i = 0; i < bo->placement.num_placement; i++) in bochs_bo_unpin()
328 bo->placements[i].flags &= ~TTM_PL_FLAG_NO_EVICT; in bochs_bo_unpin()
329 ret = ttm_bo_validate(&bo->bo, &bo->placement, false, false); in bochs_bo_unpin()
369 bochsbo->bo.bdev = &bochs->ttm.bdev; in bochs_bo_create()
370 bochsbo->bo.bdev->dev_mapping = dev->anon_inode->i_mapping; in bochs_bo_create()
377 ret = ttm_bo_init(&bochs->ttm.bdev, &bochsbo->bo, size, in bochs_bo_create()
434 static void bochs_bo_unref(struct bochs_bo **bo) in bochs_bo_unref() argument
438 if ((*bo) == NULL) in bochs_bo_unref()
441 tbo = &((*bo)->bo); in bochs_bo_unref()
443 *bo = NULL; in bochs_bo_unref()
458 struct bochs_bo *bo; in bochs_dumb_mmap_offset() local
467 bo = gem_to_bochs_bo(obj); in bochs_dumb_mmap_offset()
468 *offset = bochs_bo_mmap_offset(bo); in bochs_dumb_mmap_offset()