Lines Matching refs:bo

44 static int ttm_bo_vm_fault_idle(struct ttm_buffer_object *bo,  in ttm_bo_vm_fault_idle()  argument
50 if (likely(!test_bit(TTM_BO_PRIV_FLAG_MOVING, &bo->priv_flags))) in ttm_bo_vm_fault_idle()
56 ret = ttm_bo_wait(bo, false, false, true); in ttm_bo_vm_fault_idle()
70 (void) ttm_bo_wait(bo, false, true, false); in ttm_bo_vm_fault_idle()
77 ret = ttm_bo_wait(bo, false, true, false); in ttm_bo_vm_fault_idle()
88 struct ttm_buffer_object *bo = (struct ttm_buffer_object *) in ttm_bo_vm_fault() local
90 struct ttm_bo_device *bdev = bo->bdev; in ttm_bo_vm_fault()
101 &bdev->man[bo->mem.mem_type]; in ttm_bo_vm_fault()
110 ret = ttm_bo_reserve(bo, true, true, false, NULL); in ttm_bo_vm_fault()
118 (void) ttm_bo_wait_unreserved(bo); in ttm_bo_vm_fault()
136 if (bo->ttm && (bo->ttm->page_flags & TTM_PAGE_FLAG_SG)) { in ttm_bo_vm_fault()
142 ret = bdev->driver->fault_reserve_notify(bo); in ttm_bo_vm_fault()
160 ret = ttm_bo_vm_fault_idle(bo, vma, vmf); in ttm_bo_vm_fault()
171 ret = ttm_mem_io_reserve_vm(bo); in ttm_bo_vm_fault()
178 vma->vm_pgoff - drm_vma_node_start(&bo->vma_node); in ttm_bo_vm_fault()
180 drm_vma_node_start(&bo->vma_node); in ttm_bo_vm_fault()
182 if (unlikely(page_offset >= bo->num_pages)) { in ttm_bo_vm_fault()
195 if (bo->mem.bus.is_iomem) { in ttm_bo_vm_fault()
196 cvma.vm_page_prot = ttm_io_prot(bo->mem.placement, in ttm_bo_vm_fault()
199 ttm = bo->ttm; in ttm_bo_vm_fault()
200 cvma.vm_page_prot = ttm_io_prot(bo->mem.placement, in ttm_bo_vm_fault()
215 if (bo->mem.bus.is_iomem) in ttm_bo_vm_fault()
216 pfn = ((bo->mem.bus.base + bo->mem.bus.offset) >> PAGE_SHIFT) + page_offset; in ttm_bo_vm_fault()
226 page->index = drm_vma_node_start(&bo->vma_node) + in ttm_bo_vm_fault()
256 ttm_bo_unreserve(bo); in ttm_bo_vm_fault()
262 struct ttm_buffer_object *bo = in ttm_bo_vm_open() local
265 WARN_ON(bo->bdev->dev_mapping != vma->vm_file->f_mapping); in ttm_bo_vm_open()
267 (void)ttm_bo_reference(bo); in ttm_bo_vm_open()
272 struct ttm_buffer_object *bo = (struct ttm_buffer_object *)vma->vm_private_data; in ttm_bo_vm_close() local
274 ttm_bo_unref(&bo); in ttm_bo_vm_close()
289 struct ttm_buffer_object *bo = NULL; in ttm_bo_vm_lookup() local
295 bo = container_of(node, struct ttm_buffer_object, vma_node); in ttm_bo_vm_lookup()
296 if (!kref_get_unless_zero(&bo->kref)) in ttm_bo_vm_lookup()
297 bo = NULL; in ttm_bo_vm_lookup()
302 if (!bo) in ttm_bo_vm_lookup()
305 return bo; in ttm_bo_vm_lookup()
312 struct ttm_buffer_object *bo; in ttm_bo_mmap() local
315 bo = ttm_bo_vm_lookup(bdev, vma->vm_pgoff, vma_pages(vma)); in ttm_bo_mmap()
316 if (unlikely(!bo)) in ttm_bo_mmap()
319 driver = bo->bdev->driver; in ttm_bo_mmap()
324 ret = driver->verify_access(bo, filp); in ttm_bo_mmap()
335 vma->vm_private_data = bo; in ttm_bo_mmap()
348 ttm_bo_unref(&bo); in ttm_bo_mmap()
353 int ttm_fbdev_mmap(struct vm_area_struct *vma, struct ttm_buffer_object *bo) in ttm_fbdev_mmap() argument
359 vma->vm_private_data = ttm_bo_reference(bo); in ttm_fbdev_mmap()