Lines Matching defs:bo

39 void ttm_bo_free_old_node(struct ttm_buffer_object *bo)
41 ttm_bo_mem_put(bo, &bo->mem);
44 int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
48 struct ttm_tt *ttm = bo->ttm;
49 struct ttm_mem_reg *old_mem = &bo->mem;
54 ttm_bo_free_old_node(bo);
102 struct ttm_buffer_object *bo;
107 bo = list_first_entry(&man->io_reserve_lru,
110 list_del_init(&bo->io_reserve_lru);
111 ttm_bo_unmap_virtual_locked(bo);
155 int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo)
157 struct ttm_mem_reg *mem = &bo->mem;
162 &bo->bdev->man[mem->mem_type];
164 ret = ttm_mem_io_reserve(bo->bdev, mem);
169 list_add_tail(&bo->io_reserve_lru,
175 void ttm_mem_io_free_vm(struct ttm_buffer_object *bo)
177 struct ttm_mem_reg *mem = &bo->mem;
181 list_del_init(&bo->io_reserve_lru);
182 ttm_mem_io_free(bo->bdev, mem);
293 int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
297 struct ttm_bo_device *bdev = bo->bdev;
299 struct ttm_tt *ttm = bo->ttm;
300 struct ttm_mem_reg *old_mem = &bo->mem;
326 * as the bo still owns it */
368 bo->ttm = NULL;
375 ttm_bo_mem_put(bo, &old_copy);
381 static void ttm_transfered_destroy(struct ttm_buffer_object *bo)
383 free(bo, M_TTM_TRANSF_OBJ);
389 * @bo: A pointer to a struct ttm_buffer_object.
391 * holding the data of @bo with the old placement.
402 ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
406 struct ttm_bo_device *bdev = bo->bdev;
410 *fbo = *bo;
425 if (bo->sync_obj)
426 fbo->sync_obj = driver->sync_obj_ref(bo->sync_obj);
456 static int ttm_bo_ioremap(struct ttm_buffer_object *bo,
461 struct ttm_mem_reg *mem = &bo->mem;
463 if (bo->mem.bus.addr) {
465 map->virtual = (void *)(((u8 *)bo->mem.bus.addr) + offset);
468 map->virtual = pmap_mapdev_attr(bo->mem.bus.base +
469 bo->mem.bus.offset + offset, size,
477 static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
482 struct ttm_mem_reg *mem = &bo->mem;
484 struct ttm_tt *ttm = bo->ttm;
498 * page protection is consistent with the bo.
530 int ttm_bo_kmap(struct ttm_buffer_object *bo,
535 &bo->bdev->man[bo->mem.mem_type];
539 MPASS(list_empty(&bo->swap));
541 map->bo = bo;
542 if (num_pages > bo->num_pages)
544 if (start_page > bo->num_pages)
551 ret = ttm_mem_io_reserve(bo->bdev, &bo->mem);
555 if (!bo->mem.bus.is_iomem) {
556 return ttm_bo_kmap_ttm(bo, start_page, num_pages, map);
560 return ttm_bo_ioremap(bo, offset, size, map);
566 struct ttm_buffer_object *bo = map->bo;
568 &bo->bdev->man[bo->mem.mem_type];
590 ttm_mem_io_free(map->bo->bdev, &map->bo->mem);
597 int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
603 struct ttm_bo_device *bdev = bo->bdev;
606 struct ttm_mem_reg *old_mem = &bo->mem;
612 if (bo->sync_obj) {
613 tmp_obj = bo->sync_obj;
614 bo->sync_obj = NULL;
616 bo->sync_obj = driver->sync_obj_ref(sync_obj);
618 ret = ttm_bo_wait(bo, false, false, false);
626 (bo->ttm != NULL)) {
627 ttm_tt_unbind(bo->ttm);
628 ttm_tt_destroy(bo->ttm);
629 bo->ttm = NULL;
631 ttm_bo_free_old_node(bo);
641 set_bit(TTM_BO_PRIV_FLAG_MOVING, &bo->priv_flags);
646 ret = ttm_buffer_object_transfer(bo, &ghost_obj);
653 * bo to be unbound and destroyed.
659 bo->ttm = NULL;