Lines Matching refs:ttm

36 #include <dev/drm2/ttm/ttm_bo_api.h>
37 #include <dev/drm2/ttm/ttm_bo_driver.h>
38 #include <dev/drm2/ttm/ttm_placement.h>
39 #include <dev/drm2/ttm/ttm_module.h>
40 #include <dev/drm2/ttm/ttm_page_alloc.h>
304 r = ttm_tt_set_placement_caching(bo->ttm, tmp_mem.placement);
309 r = ttm_tt_bind(bo->ttm, &tmp_mem);
373 if (old_mem->mem_type == TTM_PL_SYSTEM && bo->ttm == NULL) {
506 struct ttm_dma_tt ttm;
511 static int radeon_ttm_backend_bind(struct ttm_tt *ttm,
514 struct radeon_ttm_tt *gtt = (void*)ttm;
518 if (!ttm->num_pages) {
520 ttm->num_pages, bo_mem, ttm);
523 ttm->num_pages, ttm->pages, gtt->ttm.dma_address);
526 ttm->num_pages, (unsigned)gtt->offset);
532 static int radeon_ttm_backend_unbind(struct ttm_tt *ttm)
534 struct radeon_ttm_tt *gtt = (void *)ttm;
536 radeon_gart_unbind(gtt->rdev, gtt->offset, ttm->num_pages);
540 static void radeon_ttm_backend_destroy(struct ttm_tt *ttm)
542 struct radeon_ttm_tt *gtt = (void *)ttm;
544 ttm_dma_tt_fini(&gtt->ttm);
574 gtt->ttm.ttm.func = &radeon_backend_func;
576 if (ttm_dma_tt_init(&gtt->ttm, bdev, size, page_flags, dummy_read_page)) {
580 return &gtt->ttm.ttm;
583 static int radeon_ttm_tt_populate(struct ttm_tt *ttm)
586 struct radeon_ttm_tt *gtt = (void *)ttm;
590 bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
593 if (ttm->state != tt_unpopulated)
597 if (slave && ttm->sg) {
598 drm_prime_sg_to_page_addr_arrays(ttm->sg, ttm->pages,
599 gtt->ttm.dma_address, ttm->num_pages);
600 ttm->state = tt_unbound;
605 rdev = radeon_get_rdev(ttm->bdev);
608 return ttm_agp_tt_populate(ttm);
614 return ttm_dma_populate(&gtt->ttm, rdev->dev);
618 r = ttm_pool_populate(ttm);
623 for (i = 0; i < ttm->num_pages; i++) {
624 gtt->ttm.dma_address[i] = VM_PAGE_TO_PHYS(ttm->pages[i]);
626 gtt->ttm.dma_address[i] = pci_map_page(rdev->pdev, ttm->pages[i],
629 if (pci_dma_mapping_error(rdev->pdev, gtt->ttm.dma_address[i])) {
631 pci_unmap_page(rdev->pdev, gtt->ttm.dma_address[i],
633 gtt->ttm.dma_address[i] = 0;
635 ttm_pool_unpopulate(ttm);
643 static void radeon_ttm_tt_unpopulate(struct ttm_tt *ttm)
646 struct radeon_ttm_tt *gtt = (void *)ttm;
648 bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
653 rdev = radeon_get_rdev(ttm->bdev);
656 ttm_agp_tt_unpopulate(ttm);
663 ttm_dma_unpopulate(&gtt->ttm, rdev->dev);
668 for (i = 0; i < ttm->num_pages; i++) {
669 if (gtt->ttm.dma_address[i]) {
670 gtt->ttm.dma_address[i] = 0;
672 pci_unmap_page(rdev->pdev, gtt->ttm.dma_address[i],
678 ttm_pool_unpopulate(ttm);
782 DRM_INFO("radeon: ttm finalized\n");
890 /* Add ttm page pool to debugfs */