Lines Matching refs:rdev
50 static int radeon_ttm_debugfs_init(struct radeon_device *rdev);
51 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev);
56 struct radeon_device *rdev; in radeon_get_rdev() local
59 rdev = container_of(mman, struct radeon_device, mman); in radeon_get_rdev()
60 return rdev; in radeon_get_rdev()
77 static int radeon_ttm_global_init(struct radeon_device *rdev) in radeon_ttm_global_init() argument
82 rdev->mman.mem_global_referenced = false; in radeon_ttm_global_init()
83 global_ref = &rdev->mman.mem_global_ref; in radeon_ttm_global_init()
95 rdev->mman.bo_global_ref.mem_glob = in radeon_ttm_global_init()
96 rdev->mman.mem_global_ref.object; in radeon_ttm_global_init()
97 global_ref = &rdev->mman.bo_global_ref.ref; in radeon_ttm_global_init()
105 drm_global_item_unref(&rdev->mman.mem_global_ref); in radeon_ttm_global_init()
109 rdev->mman.mem_global_referenced = true; in radeon_ttm_global_init()
113 static void radeon_ttm_global_fini(struct radeon_device *rdev) in radeon_ttm_global_fini() argument
115 if (rdev->mman.mem_global_referenced) { in radeon_ttm_global_fini()
116 drm_global_item_unref(&rdev->mman.bo_global_ref.ref); in radeon_ttm_global_fini()
117 drm_global_item_unref(&rdev->mman.mem_global_ref); in radeon_ttm_global_fini()
118 rdev->mman.mem_global_referenced = false; in radeon_ttm_global_fini()
130 struct radeon_device *rdev; in radeon_init_mem_type() local
132 rdev = radeon_get_rdev(bdev); in radeon_init_mem_type()
143 man->gpu_offset = rdev->mc.gtt_start; in radeon_init_mem_type()
148 if (rdev->flags & RADEON_IS_AGP) { in radeon_init_mem_type()
149 if (!rdev->ddev->agp) { in radeon_init_mem_type()
154 if (!rdev->ddev->agp->cant_use_aperture) in radeon_init_mem_type()
165 man->gpu_offset = rdev->mc.vram_start; in radeon_init_mem_type()
199 if (rbo->rdev->ring[radeon_copy_ring_index(rbo->rdev)].ready == false) in radeon_evict_flags()
201 else if (rbo->rdev->mc.visible_vram_size < rbo->rdev->mc.real_vram_size && in radeon_evict_flags()
202 bo->mem.start < (rbo->rdev->mc.visible_vram_size >> PAGE_SHIFT)) { in radeon_evict_flags()
203 unsigned fpfn = rbo->rdev->mc.visible_vram_size >> PAGE_SHIFT; in radeon_evict_flags()
258 struct radeon_device *rdev; in radeon_move_blit() local
264 rdev = radeon_get_rdev(bo->bdev); in radeon_move_blit()
265 ridx = radeon_copy_ring_index(rdev); in radeon_move_blit()
271 old_start += rdev->mc.vram_start; in radeon_move_blit()
274 old_start += rdev->mc.gtt_start; in radeon_move_blit()
282 new_start += rdev->mc.vram_start; in radeon_move_blit()
285 new_start += rdev->mc.gtt_start; in radeon_move_blit()
291 if (!rdev->ring[ridx].ready) { in radeon_move_blit()
299 fence = radeon_copy(rdev, old_start, new_start, num_pages, bo->resv); in radeon_move_blit()
314 struct radeon_device *rdev; in radeon_move_vram_ram() local
321 rdev = radeon_get_rdev(bo->bdev); in radeon_move_vram_ram()
361 struct radeon_device *rdev; in radeon_move_ram_vram() local
368 rdev = radeon_get_rdev(bo->bdev); in radeon_move_ram_vram()
401 struct radeon_device *rdev; in radeon_bo_move() local
405 rdev = radeon_get_rdev(bo->bdev); in radeon_bo_move()
418 if (!rdev->ring[radeon_copy_ring_index(rdev)].ready || in radeon_bo_move()
419 rdev->asic->copy.copy == NULL) { in radeon_bo_move()
445 atomic64_add((u64)bo->num_pages << PAGE_SHIFT, &rdev->num_bytes_moved); in radeon_bo_move()
452 struct radeon_device *rdev = radeon_get_rdev(bdev); in radeon_ttm_io_mem_reserve() local
467 if (rdev->flags & RADEON_IS_AGP) { in radeon_ttm_io_mem_reserve()
470 mem->bus.base = rdev->mc.agp_base; in radeon_ttm_io_mem_reserve()
471 mem->bus.is_iomem = !rdev->ddev->agp->cant_use_aperture; in radeon_ttm_io_mem_reserve()
478 if ((mem->bus.offset + mem->bus.size) > rdev->mc.visible_vram_size) in radeon_ttm_io_mem_reserve()
480 mem->bus.base = rdev->mc.aper_base; in radeon_ttm_io_mem_reserve()
503 rdev->ddev->hose->dense_mem_base; in radeon_ttm_io_mem_reserve()
521 struct radeon_device *rdev; member
532 struct radeon_device *rdev = radeon_get_rdev(ttm->bdev); in radeon_ttm_tt_pin_userptr() local
575 nents = dma_map_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, direction); in radeon_ttm_tt_pin_userptr()
594 struct radeon_device *rdev = radeon_get_rdev(ttm->bdev); in radeon_ttm_tt_unpin_userptr() local
607 dma_unmap_sg(rdev->dev, ttm->sg->sgl, ttm->sg->nents, direction); in radeon_ttm_tt_unpin_userptr()
641 r = radeon_gart_bind(gtt->rdev, gtt->offset, ttm->num_pages, in radeon_ttm_backend_bind()
655 radeon_gart_unbind(gtt->rdev, gtt->offset, ttm->num_pages); in radeon_ttm_backend_unbind()
681 struct radeon_device *rdev; in radeon_ttm_tt_create() local
684 rdev = radeon_get_rdev(bdev); in radeon_ttm_tt_create()
686 if (rdev->flags & RADEON_IS_AGP) { in radeon_ttm_tt_create()
687 return ttm_agp_tt_create(bdev, rdev->ddev->agp->bridge, in radeon_ttm_tt_create()
697 gtt->rdev = rdev; in radeon_ttm_tt_create()
715 struct radeon_device *rdev; in radeon_ttm_tt_populate() local
740 rdev = radeon_get_rdev(ttm->bdev); in radeon_ttm_tt_populate()
742 if (rdev->flags & RADEON_IS_AGP) { in radeon_ttm_tt_populate()
749 return ttm_dma_populate(>t->ttm, rdev->dev); in radeon_ttm_tt_populate()
759 gtt->ttm.dma_address[i] = pci_map_page(rdev->pdev, ttm->pages[i], in radeon_ttm_tt_populate()
762 if (pci_dma_mapping_error(rdev->pdev, gtt->ttm.dma_address[i])) { in radeon_ttm_tt_populate()
764 pci_unmap_page(rdev->pdev, gtt->ttm.dma_address[i], in radeon_ttm_tt_populate()
777 struct radeon_device *rdev; in radeon_ttm_tt_unpopulate() local
791 rdev = radeon_get_rdev(ttm->bdev); in radeon_ttm_tt_unpopulate()
793 if (rdev->flags & RADEON_IS_AGP) { in radeon_ttm_tt_unpopulate()
801 ttm_dma_unpopulate(>t->ttm, rdev->dev); in radeon_ttm_tt_unpopulate()
808 pci_unmap_page(rdev->pdev, gtt->ttm.dma_address[i], in radeon_ttm_tt_unpopulate()
865 int radeon_ttm_init(struct radeon_device *rdev) in radeon_ttm_init() argument
869 r = radeon_ttm_global_init(rdev); in radeon_ttm_init()
874 r = ttm_bo_device_init(&rdev->mman.bdev, in radeon_ttm_init()
875 rdev->mman.bo_global_ref.ref.object, in radeon_ttm_init()
877 rdev->ddev->anon_inode->i_mapping, in radeon_ttm_init()
879 rdev->need_dma32); in radeon_ttm_init()
884 rdev->mman.initialized = true; in radeon_ttm_init()
885 r = ttm_bo_init_mm(&rdev->mman.bdev, TTM_PL_VRAM, in radeon_ttm_init()
886 rdev->mc.real_vram_size >> PAGE_SHIFT); in radeon_ttm_init()
892 radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size); in radeon_ttm_init()
894 r = radeon_bo_create(rdev, 256 * 1024, PAGE_SIZE, true, in radeon_ttm_init()
896 NULL, &rdev->stollen_vga_memory); in radeon_ttm_init()
900 r = radeon_bo_reserve(rdev->stollen_vga_memory, false); in radeon_ttm_init()
903 r = radeon_bo_pin(rdev->stollen_vga_memory, RADEON_GEM_DOMAIN_VRAM, NULL); in radeon_ttm_init()
904 radeon_bo_unreserve(rdev->stollen_vga_memory); in radeon_ttm_init()
906 radeon_bo_unref(&rdev->stollen_vga_memory); in radeon_ttm_init()
910 (unsigned) (rdev->mc.real_vram_size / (1024 * 1024))); in radeon_ttm_init()
911 r = ttm_bo_init_mm(&rdev->mman.bdev, TTM_PL_TT, in radeon_ttm_init()
912 rdev->mc.gtt_size >> PAGE_SHIFT); in radeon_ttm_init()
918 (unsigned)(rdev->mc.gtt_size / (1024 * 1024))); in radeon_ttm_init()
920 r = radeon_ttm_debugfs_init(rdev); in radeon_ttm_init()
928 void radeon_ttm_fini(struct radeon_device *rdev) in radeon_ttm_fini() argument
932 if (!rdev->mman.initialized) in radeon_ttm_fini()
934 radeon_ttm_debugfs_fini(rdev); in radeon_ttm_fini()
935 if (rdev->stollen_vga_memory) { in radeon_ttm_fini()
936 r = radeon_bo_reserve(rdev->stollen_vga_memory, false); in radeon_ttm_fini()
938 radeon_bo_unpin(rdev->stollen_vga_memory); in radeon_ttm_fini()
939 radeon_bo_unreserve(rdev->stollen_vga_memory); in radeon_ttm_fini()
941 radeon_bo_unref(&rdev->stollen_vga_memory); in radeon_ttm_fini()
943 ttm_bo_clean_mm(&rdev->mman.bdev, TTM_PL_VRAM); in radeon_ttm_fini()
944 ttm_bo_clean_mm(&rdev->mman.bdev, TTM_PL_TT); in radeon_ttm_fini()
945 ttm_bo_device_release(&rdev->mman.bdev); in radeon_ttm_fini()
946 radeon_gart_fini(rdev); in radeon_ttm_fini()
947 radeon_ttm_global_fini(rdev); in radeon_ttm_fini()
948 rdev->mman.initialized = false; in radeon_ttm_fini()
954 void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size) in radeon_ttm_set_active_vram_size() argument
958 if (!rdev->mman.initialized) in radeon_ttm_set_active_vram_size()
961 man = &rdev->mman.bdev.man[TTM_PL_VRAM]; in radeon_ttm_set_active_vram_size()
972 struct radeon_device *rdev; in radeon_ttm_fault() local
979 rdev = radeon_get_rdev(bo->bdev); in radeon_ttm_fault()
980 down_read(&rdev->pm.mclk_lock); in radeon_ttm_fault()
982 up_read(&rdev->pm.mclk_lock); in radeon_ttm_fault()
989 struct radeon_device *rdev; in radeon_mmap() local
997 rdev = file_priv->minor->dev->dev_private; in radeon_mmap()
998 if (rdev == NULL) { in radeon_mmap()
1001 r = ttm_bo_mmap(filp, vma, &rdev->mman.bdev); in radeon_mmap()
1021 struct radeon_device *rdev = dev->dev_private; in radeon_mm_dump_table() local
1022 struct drm_mm *mm = (struct drm_mm *)rdev->mman.bdev.man[ttm_pl].priv; in radeon_mm_dump_table()
1024 struct ttm_bo_global *glob = rdev->mman.bdev.glob; in radeon_mm_dump_table()
1046 struct radeon_device *rdev = inode->i_private; in radeon_ttm_vram_open() local
1047 i_size_write(inode, rdev->mc.mc_vram_size); in radeon_ttm_vram_open()
1055 struct radeon_device *rdev = f->private_data; in radeon_ttm_vram_read() local
1066 if (*pos >= rdev->mc.mc_vram_size) in radeon_ttm_vram_read()
1069 spin_lock_irqsave(&rdev->mmio_idx_lock, flags); in radeon_ttm_vram_read()
1071 if (rdev->family >= CHIP_CEDAR) in radeon_ttm_vram_read()
1074 spin_unlock_irqrestore(&rdev->mmio_idx_lock, flags); in radeon_ttm_vram_read()
1098 struct radeon_device *rdev = inode->i_private; in radeon_ttm_gtt_open() local
1099 i_size_write(inode, rdev->mc.gtt_size); in radeon_ttm_gtt_open()
1107 struct radeon_device *rdev = f->private_data; in radeon_ttm_gtt_read() local
1118 if (p >= rdev->gart.num_cpu_pages) in radeon_ttm_gtt_read()
1121 page = rdev->gart.pages[p]; in radeon_ttm_gtt_read()
1127 kunmap(rdev->gart.pages[p]); in radeon_ttm_gtt_read()
1152 static int radeon_ttm_debugfs_init(struct radeon_device *rdev) in radeon_ttm_debugfs_init() argument
1157 struct drm_minor *minor = rdev->ddev->primary; in radeon_ttm_debugfs_init()
1161 rdev, &radeon_ttm_vram_fops); in radeon_ttm_debugfs_init()
1164 rdev->mman.vram = ent; in radeon_ttm_debugfs_init()
1167 rdev, &radeon_ttm_gtt_fops); in radeon_ttm_debugfs_init()
1170 rdev->mman.gtt = ent; in radeon_ttm_debugfs_init()
1179 return radeon_debugfs_add_files(rdev, radeon_ttm_debugfs_list, count); in radeon_ttm_debugfs_init()
1186 static void radeon_ttm_debugfs_fini(struct radeon_device *rdev) in radeon_ttm_debugfs_fini() argument
1190 debugfs_remove(rdev->mman.vram); in radeon_ttm_debugfs_fini()
1191 rdev->mman.vram = NULL; in radeon_ttm_debugfs_fini()
1193 debugfs_remove(rdev->mman.gtt); in radeon_ttm_debugfs_fini()
1194 rdev->mman.gtt = NULL; in radeon_ttm_debugfs_fini()