Lines Matching refs:bdev
126 struct ttm_device *bdev;
130 list_for_each_entry(bdev, &glob->device_list, device_list) {
131 ret = ttm_device_swapout(bdev, ctx, gfp_flags);
133 list_move_tail(&bdev->device_list, &glob->device_list);
141 int ttm_device_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx,
150 spin_lock(&bdev->lru_lock);
152 man = ttm_manager_type(bdev, i);
172 spin_unlock(&bdev->lru_lock);
180 * @bdev: A pointer to a struct ttm_device to initialize.
192 int ttm_device_init(struct ttm_device *bdev, const struct ttm_device_funcs *funcs,
207 bdev->wq = alloc_workqueue("ttm", WQ_MEM_RECLAIM | WQ_HIGHPRI, 16);
208 if (!bdev->wq) {
213 bdev->funcs = funcs;
215 ttm_sys_man_init(bdev);
216 ttm_pool_init(&bdev->pool, dev, NUMA_NO_NODE, use_dma_alloc, use_dma32);
218 bdev->vma_manager = vma_manager;
219 spin_lock_init(&bdev->lru_lock);
220 INIT_LIST_HEAD(&bdev->pinned);
221 bdev->dev_mapping = mapping;
223 list_add_tail(&bdev->device_list, &glob->device_list);
230 void ttm_device_fini(struct ttm_device *bdev)
236 list_del(&bdev->device_list);
239 drain_workqueue(bdev->wq);
240 destroy_workqueue(bdev->wq);
242 man = ttm_manager_type(bdev, TTM_PL_SYSTEM);
244 ttm_set_driver_manager(bdev, TTM_PL_SYSTEM, NULL);
246 spin_lock(&bdev->lru_lock);
250 spin_unlock(&bdev->lru_lock);
252 ttm_pool_fini(&bdev->pool);
257 static void ttm_device_clear_lru_dma_mappings(struct ttm_device *bdev,
262 spin_lock(&bdev->lru_lock);
271 spin_unlock(&bdev->lru_lock);
274 ttm_tt_unpopulate(bo->bdev, bo->ttm);
277 spin_lock(&bdev->lru_lock);
279 spin_unlock(&bdev->lru_lock);
282 void ttm_device_clear_dma_mappings(struct ttm_device *bdev)
287 ttm_device_clear_lru_dma_mappings(bdev, &bdev->pinned);
290 man = ttm_manager_type(bdev, i);
295 ttm_device_clear_lru_dma_mappings(bdev, &man->lru[j]);