Lines Matching refs:drm

35 	struct nouveau_drm *drm = nouveau_bdev(man->bdev);  in nouveau_vram_manager_init()  local
36 struct nvkm_fb *pfb = nvxx_fb(&drm->device); in nouveau_vram_manager_init()
66 struct nouveau_drm *drm = nouveau_bdev(man->bdev); in nouveau_vram_manager_del() local
67 struct nvkm_fb *pfb = nvxx_fb(&drm->device); in nouveau_vram_manager_del()
78 struct nouveau_drm *drm = nouveau_bdev(man->bdev); in nouveau_vram_manager_new() local
79 struct nvkm_fb *pfb = nvxx_fb(&drm->device); in nouveau_vram_manager_new()
85 if (drm->device.info.ram_size == 0) in nouveau_vram_manager_new()
167 struct nouveau_drm *drm = nouveau_bdev(bo->bdev); in nouveau_gart_manager_new() local
177 switch (drm->device.info.family) { in nouveau_gart_manager_new()
179 if (drm->device.info.chipset != 0x50) in nouveau_gart_manager_new()
213 struct nouveau_drm *drm = nouveau_bdev(man->bdev); in nv04_gart_manager_init() local
214 struct nvkm_mmu *mmu = nvxx_mmu(&drm->device); in nv04_gart_manager_init()
285 struct nouveau_drm *drm = nouveau_drm(file_priv->minor->dev); in nouveau_ttm_mmap() local
290 return ttm_bo_mmap(filp, vma, &drm->ttm.bdev); in nouveau_ttm_mmap()
306 nouveau_ttm_global_init(struct nouveau_drm *drm) in nouveau_ttm_global_init() argument
311 global_ref = &drm->ttm.mem_global_ref; in nouveau_ttm_global_init()
320 drm->ttm.mem_global_ref.release = NULL; in nouveau_ttm_global_init()
324 drm->ttm.bo_global_ref.mem_glob = global_ref->object; in nouveau_ttm_global_init()
325 global_ref = &drm->ttm.bo_global_ref.ref; in nouveau_ttm_global_init()
334 drm_global_item_unref(&drm->ttm.mem_global_ref); in nouveau_ttm_global_init()
335 drm->ttm.mem_global_ref.release = NULL; in nouveau_ttm_global_init()
343 nouveau_ttm_global_release(struct nouveau_drm *drm) in nouveau_ttm_global_release() argument
345 if (drm->ttm.mem_global_ref.release == NULL) in nouveau_ttm_global_release()
348 drm_global_item_unref(&drm->ttm.bo_global_ref.ref); in nouveau_ttm_global_release()
349 drm_global_item_unref(&drm->ttm.mem_global_ref); in nouveau_ttm_global_release()
350 drm->ttm.mem_global_ref.release = NULL; in nouveau_ttm_global_release()
354 nouveau_ttm_init(struct nouveau_drm *drm) in nouveau_ttm_init() argument
356 struct drm_device *dev = drm->dev; in nouveau_ttm_init()
360 bits = nvxx_mmu(&drm->device)->dma_bits; in nouveau_ttm_init()
361 if (nv_device_is_pci(nvxx_device(&drm->device))) { in nouveau_ttm_init()
362 if (drm->agp.stat == ENABLED || in nouveau_ttm_init()
377 ret = nouveau_ttm_global_init(drm); in nouveau_ttm_init()
381 ret = ttm_bo_device_init(&drm->ttm.bdev, in nouveau_ttm_init()
382 drm->ttm.bo_global_ref.ref.object, in nouveau_ttm_init()
388 NV_ERROR(drm, "error initialising bo driver, %d\n", ret); in nouveau_ttm_init()
393 drm->gem.vram_available = drm->device.info.ram_user; in nouveau_ttm_init()
395 ret = ttm_bo_init_mm(&drm->ttm.bdev, TTM_PL_VRAM, in nouveau_ttm_init()
396 drm->gem.vram_available >> PAGE_SHIFT); in nouveau_ttm_init()
398 NV_ERROR(drm, "VRAM mm init failed, %d\n", ret); in nouveau_ttm_init()
402 drm->ttm.mtrr = arch_phys_wc_add(nv_device_resource_start(nvxx_device(&drm->device), 1), in nouveau_ttm_init()
403 nv_device_resource_len(nvxx_device(&drm->device), 1)); in nouveau_ttm_init()
406 if (drm->agp.stat != ENABLED) { in nouveau_ttm_init()
407 drm->gem.gart_available = nvxx_mmu(&drm->device)->limit; in nouveau_ttm_init()
409 drm->gem.gart_available = drm->agp.size; in nouveau_ttm_init()
412 ret = ttm_bo_init_mm(&drm->ttm.bdev, TTM_PL_TT, in nouveau_ttm_init()
413 drm->gem.gart_available >> PAGE_SHIFT); in nouveau_ttm_init()
415 NV_ERROR(drm, "GART mm init failed, %d\n", ret); in nouveau_ttm_init()
419 NV_INFO(drm, "VRAM: %d MiB\n", (u32)(drm->gem.vram_available >> 20)); in nouveau_ttm_init()
420 NV_INFO(drm, "GART: %d MiB\n", (u32)(drm->gem.gart_available >> 20)); in nouveau_ttm_init()
425 nouveau_ttm_fini(struct nouveau_drm *drm) in nouveau_ttm_fini() argument
427 mutex_lock(&drm->dev->struct_mutex); in nouveau_ttm_fini()
428 ttm_bo_clean_mm(&drm->ttm.bdev, TTM_PL_VRAM); in nouveau_ttm_fini()
429 ttm_bo_clean_mm(&drm->ttm.bdev, TTM_PL_TT); in nouveau_ttm_fini()
430 mutex_unlock(&drm->dev->struct_mutex); in nouveau_ttm_fini()
432 ttm_bo_device_release(&drm->ttm.bdev); in nouveau_ttm_fini()
434 nouveau_ttm_global_release(drm); in nouveau_ttm_fini()
436 arch_phys_wc_del(drm->ttm.mtrr); in nouveau_ttm_fini()
437 drm->ttm.mtrr = 0; in nouveau_ttm_fini()