/kernel/linux/linux-5.10/drivers/iommu/ |
H A D | tegra-gart.c | 10 #define dev_fmt(fmt) "gart: " fmt 58 #define FLUSH_GART_REGS(gart) readl_relaxed((gart)->regs + GART_CONFIG) 60 #define for_each_gart_pte(gart, iova) \ 61 for (iova = gart->iovmm_base; \ 62 iova < gart->iovmm_end; \ 65 static inline void gart_set_pte(struct gart_device *gart, in gart_set_pte() argument 68 writel_relaxed(iova, gart->regs + GART_ENTRY_ADDR); in gart_set_pte() 69 writel_relaxed(pte, gart->regs + GART_ENTRY_DATA); in gart_set_pte() 72 static inline unsigned long gart_read_pte(struct gart_device *gart, in gart_read_pte() argument 83 do_gart_setup(struct gart_device *gart, const u32 *data) do_gart_setup() argument 94 gart_iova_range_invalid(struct gart_device *gart, unsigned long iova, size_t bytes) gart_iova_range_invalid() argument 101 gart_pte_valid(struct gart_device *gart, unsigned long iova) gart_pte_valid() argument 109 struct gart_device *gart = gart_handle; gart_iommu_attach_dev() local 130 struct gart_device *gart = gart_handle; gart_iommu_detach_dev() local 167 __gart_iommu_map(struct gart_device *gart, unsigned long iova, unsigned long pa) __gart_iommu_map() argument 183 struct gart_device *gart = gart_handle; gart_iommu_map() local 196 __gart_iommu_unmap(struct gart_device *gart, unsigned long iova) __gart_iommu_unmap() argument 212 struct gart_device *gart = gart_handle; gart_iommu_unmap() local 228 struct gart_device *gart = gart_handle; gart_iommu_iova_to_phys() local 293 tegra_gart_suspend(struct gart_device *gart) tegra_gart_suspend() argument 312 tegra_gart_resume(struct gart_device *gart) tegra_gart_resume() argument 321 struct gart_device *gart; tegra_gart_probe() local [all...] |
/kernel/linux/linux-6.6/drivers/iommu/ |
H A D | tegra-gart.c | 10 #define dev_fmt(fmt) "gart: " fmt 58 #define FLUSH_GART_REGS(gart) readl_relaxed((gart)->regs + GART_CONFIG) 60 #define for_each_gart_pte(gart, iova) \ 61 for (iova = gart->iovmm_base; \ 62 iova < gart->iovmm_end; \ 65 static inline void gart_set_pte(struct gart_device *gart, in gart_set_pte() argument 68 writel_relaxed(iova, gart->regs + GART_ENTRY_ADDR); in gart_set_pte() 69 writel_relaxed(pte, gart->regs + GART_ENTRY_DATA); in gart_set_pte() 72 static inline unsigned long gart_read_pte(struct gart_device *gart, in gart_read_pte() argument 83 do_gart_setup(struct gart_device *gart, const u32 *data) do_gart_setup() argument 94 gart_iova_range_invalid(struct gart_device *gart, unsigned long iova, size_t bytes) gart_iova_range_invalid() argument 101 gart_pte_valid(struct gart_device *gart, unsigned long iova) gart_pte_valid() argument 109 struct gart_device *gart = gart_handle; gart_iommu_attach_dev() local 130 struct gart_device *gart = gart_handle; gart_iommu_set_platform_dma() local 167 __gart_iommu_map(struct gart_device *gart, unsigned long iova, unsigned long pa) __gart_iommu_map() argument 183 struct gart_device *gart = gart_handle; gart_iommu_map() local 196 __gart_iommu_unmap(struct gart_device *gart, unsigned long iova) __gart_iommu_unmap() argument 212 struct gart_device *gart = gart_handle; gart_iommu_unmap() local 228 struct gart_device *gart = gart_handle; gart_iommu_iova_to_phys() local 287 tegra_gart_suspend(struct gart_device *gart) tegra_gart_suspend() argument 306 tegra_gart_resume(struct gart_device *gart) tegra_gart_resume() argument 315 struct gart_device *gart; tegra_gart_probe() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/radeon/ |
H A D | radeon_gart.c | 62 * radeon_gart_table_ram_alloc - allocate system ram for gart page table 68 * gart table to be in system memory. 75 ptr = dma_alloc_coherent(&rdev->pdev->dev, rdev->gart.table_size, in radeon_gart_table_ram_alloc() 76 &rdev->gart.table_addr, GFP_KERNEL); in radeon_gart_table_ram_alloc() 84 rdev->gart.table_size >> PAGE_SHIFT); in radeon_gart_table_ram_alloc() 87 rdev->gart.ptr = ptr; in radeon_gart_table_ram_alloc() 92 * radeon_gart_table_ram_free - free system ram for gart page table 98 * gart table to be in system memory. 102 if (rdev->gart.ptr == NULL) { in radeon_gart_table_ram_free() 108 set_memory_wb((unsigned long)rdev->gart in radeon_gart_table_ram_free() [all...] |
H A D | rs400.c | 45 /* Check gart size */ in rs400_gart_adjust_size() 85 if (rdev->gart.ptr) { in rs400_gart_init() 89 /* Check gart size */ in rs400_gart_init() 102 /* Initialize common gart structure */ in rs400_gart_init() 108 rdev->gart.table_size = rdev->gart.num_gpu_pages * 4; in rs400_gart_init() 120 /* Check gart size */ in rs400_gart_enable() 166 tmp = (u32)rdev->gart.table_addr & 0xfffff000; in rs400_gart_enable() 167 tmp |= (upper_32_bits(rdev->gart.table_addr) & 0xff) << 4; in rs400_gart_enable() 189 /* Enable gart */ in rs400_gart_enable() [all...] |
H A D | radeon_asic.c | 152 * Removes AGP flags and changes the gart callbacks on AGP 153 * cards when using the internal gart rather than AGP (all asics). 167 rdev->asic->gart.tlb_flush = &rv370_pcie_gart_tlb_flush; in radeon_agp_disable() 168 rdev->asic->gart.get_page_entry = &rv370_pcie_gart_get_page_entry; in radeon_agp_disable() 169 rdev->asic->gart.set_page = &rv370_pcie_gart_set_page; in radeon_agp_disable() 173 rdev->asic->gart.tlb_flush = &r100_pci_gart_tlb_flush; in radeon_agp_disable() 174 rdev->asic->gart.get_page_entry = &r100_pci_gart_get_page_entry; in radeon_agp_disable() 175 rdev->asic->gart.set_page = &r100_pci_gart_set_page; in radeon_agp_disable() 209 .gart = { 277 .gart [all...] |
H A D | r300.c | 123 void __iomem *ptr = rdev->gart.ptr; in rv370_pcie_gart_set_page() 135 if (rdev->gart.robj) { in rv370_pcie_gart_init() 139 /* Initialize common gart structure */ in rv370_pcie_gart_init() 145 DRM_ERROR("Failed to register debugfs file for PCIE gart !\n"); in rv370_pcie_gart_init() 146 rdev->gart.table_size = rdev->gart.num_gpu_pages * 4; in rv370_pcie_gart_init() 147 rdev->asic->gart.tlb_flush = &rv370_pcie_gart_tlb_flush; in rv370_pcie_gart_init() 148 rdev->asic->gart.get_page_entry = &rv370_pcie_gart_get_page_entry; in rv370_pcie_gart_init() 149 rdev->asic->gart.set_page = &rv370_pcie_gart_set_page; in rv370_pcie_gart_init() 159 if (rdev->gart in rv370_pcie_gart_enable() [all...] |
H A D | rs600.c | 543 if (rdev->gart.robj) { in rs600_gart_init() 547 /* Initialize common gart structure */ in rs600_gart_init() 552 rdev->gart.table_size = rdev->gart.num_gpu_pages * 8; in rs600_gart_init() 561 if (rdev->gart.robj == NULL) { in rs600_gart_enable() 598 rdev->gart.table_addr); in rs600_gart_enable() 615 (unsigned long long)rdev->gart.table_addr); in rs600_gart_enable() 616 rdev->gart.ready = true; in rs600_gart_enable() 624 /* FIXME: disable out of gart access */ in rs600_gart_disable() 656 void __iomem *ptr = (void *)rdev->gart in rs600_gart_set_page() [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/radeon/ |
H A D | radeon_gart.c | 62 * radeon_gart_table_ram_alloc - allocate system ram for gart page table 68 * gart table to be in system memory. 75 ptr = dma_alloc_coherent(&rdev->pdev->dev, rdev->gart.table_size, in radeon_gart_table_ram_alloc() 76 &rdev->gart.table_addr, GFP_KERNEL); in radeon_gart_table_ram_alloc() 84 rdev->gart.table_size >> PAGE_SHIFT); in radeon_gart_table_ram_alloc() 87 rdev->gart.ptr = ptr; in radeon_gart_table_ram_alloc() 92 * radeon_gart_table_ram_free - free system ram for gart page table 98 * gart table to be in system memory. 102 if (!rdev->gart.ptr) in radeon_gart_table_ram_free() 108 set_memory_wb((unsigned long)rdev->gart in radeon_gart_table_ram_free() [all...] |
H A D | rs400.c | 44 /* Check gart size */ in rs400_gart_adjust_size() 84 if (rdev->gart.ptr) { in rs400_gart_init() 88 /* Check gart size */ in rs400_gart_init() 101 /* Initialize common gart structure */ in rs400_gart_init() 106 rdev->gart.table_size = rdev->gart.num_gpu_pages * 4; in rs400_gart_init() 118 /* Check gart size */ in rs400_gart_enable() 164 tmp = (u32)rdev->gart.table_addr & 0xfffff000; in rs400_gart_enable() 165 tmp |= (upper_32_bits(rdev->gart.table_addr) & 0xff) << 4; in rs400_gart_enable() 187 /* Enable gart */ in rs400_gart_enable() [all...] |
H A D | radeon_asic.c | 151 * Removes AGP flags and changes the gart callbacks on AGP 152 * cards when using the internal gart rather than AGP (all asics). 166 rdev->asic->gart.tlb_flush = &rv370_pcie_gart_tlb_flush; in radeon_agp_disable() 167 rdev->asic->gart.get_page_entry = &rv370_pcie_gart_get_page_entry; in radeon_agp_disable() 168 rdev->asic->gart.set_page = &rv370_pcie_gart_set_page; in radeon_agp_disable() 172 rdev->asic->gart.tlb_flush = &r100_pci_gart_tlb_flush; in radeon_agp_disable() 173 rdev->asic->gart.get_page_entry = &r100_pci_gart_get_page_entry; in radeon_agp_disable() 174 rdev->asic->gart.set_page = &r100_pci_gart_set_page; in radeon_agp_disable() 208 .gart = { 276 .gart [all...] |
H A D | r300.c | 121 void __iomem *ptr = rdev->gart.ptr; in rv370_pcie_gart_set_page() 133 if (rdev->gart.robj) { in rv370_pcie_gart_init() 137 /* Initialize common gart structure */ in rv370_pcie_gart_init() 143 rdev->gart.table_size = rdev->gart.num_gpu_pages * 4; in rv370_pcie_gart_init() 144 rdev->asic->gart.tlb_flush = &rv370_pcie_gart_tlb_flush; in rv370_pcie_gart_init() 145 rdev->asic->gart.get_page_entry = &rv370_pcie_gart_get_page_entry; in rv370_pcie_gart_init() 146 rdev->asic->gart.set_page = &rv370_pcie_gart_set_page; in rv370_pcie_gart_init() 156 if (rdev->gart.robj == NULL) { in rv370_pcie_gart_enable() 171 table_addr = rdev->gart in rv370_pcie_gart_enable() [all...] |
H A D | rs600.c | 550 if (rdev->gart.robj) { in rs600_gart_init() 554 /* Initialize common gart structure */ in rs600_gart_init() 559 rdev->gart.table_size = rdev->gart.num_gpu_pages * 8; in rs600_gart_init() 568 if (rdev->gart.robj == NULL) { in rs600_gart_enable() 605 rdev->gart.table_addr); in rs600_gart_enable() 622 (unsigned long long)rdev->gart.table_addr); in rs600_gart_enable() 623 rdev->gart.ready = true; in rs600_gart_enable() 631 /* FIXME: disable out of gart access */ in rs600_gart_disable() 663 void __iomem *ptr = (void *)rdev->gart in rs600_gart_set_page() [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_gart.c | 68 * This dummy page is used by the driver as a filler for gart entries 105 * amdgpu_gart_table_vram_alloc - allocate vram for gart page table 111 * gart table to be in video memory. 118 if (adev->gart.bo == NULL) { in amdgpu_gart_table_vram_alloc() 122 bp.size = adev->gart.table_size; in amdgpu_gart_table_vram_alloc() 129 r = amdgpu_bo_create(adev, &bp, &adev->gart.bo); in amdgpu_gart_table_vram_alloc() 138 * amdgpu_gart_table_vram_pin - pin gart page table in vram 144 * gart table to be in video memory. 151 r = amdgpu_bo_reserve(adev->gart.bo, false); in amdgpu_gart_table_vram_pin() 154 r = amdgpu_bo_pin(adev->gart in amdgpu_gart_table_vram_pin() [all...] |
H A D | gmc_v10_0.c | 266 * gmc_v10_0_flush_gpu_tlb - gart tlb flush callback 333 job->vm_pd_addr = amdgpu_gmc_pd_addr(adev->gart.bo); in gmc_v10_0_flush_gpu_tlb() 717 * vram and gart within the GPU's physical address space. 742 /* set the gart size */ in gmc_v10_0_mc_init() 766 if (adev->gart.bo) { in gmc_v10_0_gart_init() 771 /* Initialize common gart structure */ in gmc_v10_0_gart_init() 776 adev->gart.table_size = adev->gart.num_gpu_pages * 8; in gmc_v10_0_gart_init() 777 adev->gart.gart_pte_flags = AMDGPU_PTE_MTYPE_NV10(MTYPE_UC) | in gmc_v10_0_gart_init() 932 * gmc_v10_0_gart_enable - gart enabl [all...] |
H A D | gmc_v6_0.c | 331 /* set the gart size */ in gmc_v6_0_mc_init() 474 if (adev->gart.bo == NULL) { in gmc_v6_0_gart_enable() 482 table_addr = amdgpu_bo_gpu_offset(adev->gart.bo); in gmc_v6_0_gart_enable() 560 adev->gart.ready = true; in gmc_v6_0_gart_enable() 568 if (adev->gart.bo) { in gmc_v6_0_gart_init() 575 adev->gart.table_size = adev->gart.num_gpu_pages * 8; in gmc_v6_0_gart_init() 576 adev->gart.gart_pte_flags = 0; in gmc_v6_0_gart_init()
|
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/amdgpu/ |
H A D | amdgpu_gart.c | 70 * This dummy page is used by the driver as a filler for gart entries 107 * amdgpu_gart_table_ram_alloc - allocate system ram for gart page table 117 unsigned int order = get_order(adev->gart.table_size); in amdgpu_gart_table_ram_alloc() 126 if (adev->gart.bo != NULL) in amdgpu_gart_table_ram_alloc() 137 dma_addr = dma_map_page(&adev->pdev->dev, p, 0, adev->gart.table_size, in amdgpu_gart_table_ram_alloc() 158 sg->sgl->length = adev->gart.table_size; in amdgpu_gart_table_ram_alloc() 160 sg->sgl->dma_length = adev->gart.table_size; in amdgpu_gart_table_ram_alloc() 164 bp.size = adev->gart.table_size; in amdgpu_gart_table_ram_alloc() 191 adev->gart.bo = bo; in amdgpu_gart_table_ram_alloc() 192 adev->gart in amdgpu_gart_table_ram_alloc() [all...] |
H A D | gmc_v10_0.c | 315 * gmc_v10_0_flush_gpu_tlb - gart tlb flush callback 386 job->vm_pd_addr = amdgpu_gmc_pd_addr(adev->gart.bo); in gmc_v10_0_flush_gpu_tlb() 797 * vram and gart within the GPU's physical address space. 826 /* set the gart size */ in gmc_v10_0_mc_init() 852 if (adev->gart.bo) { in gmc_v10_0_gart_init() 857 /* Initialize common gart structure */ in gmc_v10_0_gart_init() 862 adev->gart.table_size = adev->gart.num_gpu_pages * 8; in gmc_v10_0_gart_init() 863 adev->gart.gart_pte_flags = AMDGPU_PTE_MTYPE_NV10(MTYPE_UC) | in gmc_v10_0_gart_init() 1037 * gmc_v10_0_gart_enable - gart enabl [all...] |
H A D | gmc_v6_0.c | 323 /* set the gart size */ in gmc_v6_0_mc_init() 467 if (adev->gart.bo == NULL) { in gmc_v6_0_gart_enable() 473 table_addr = amdgpu_bo_gpu_offset(adev->gart.bo); in gmc_v6_0_gart_enable() 558 if (adev->gart.bo) { in gmc_v6_0_gart_init() 565 adev->gart.table_size = adev->gart.num_gpu_pages * 8; in gmc_v6_0_gart_init() 566 adev->gart.gart_pte_flags = 0; in gmc_v6_0_gart_init()
|
H A D | gmc_v11_0.c | 276 * gmc_v11_0_flush_gpu_tlb - gart tlb flush callback 699 * vram and gart within the GPU's physical address space. 730 /* set the gart size */ in gmc_v11_0_mc_init() 745 if (adev->gart.bo) { in gmc_v11_0_gart_init() 750 /* Initialize common gart structure */ in gmc_v11_0_gart_init() 755 adev->gart.table_size = adev->gart.num_gpu_pages * 8; in gmc_v11_0_gart_init() 756 adev->gart.gart_pte_flags = AMDGPU_PTE_MTYPE_NV10(MTYPE_UC) | in gmc_v11_0_gart_init() 900 * gmc_v11_0_gart_enable - gart enable 909 if (adev->gart in gmc_v11_0_gart_enable() [all...] |
/kernel/linux/linux-5.10/include/soc/tegra/ |
H A D | mc.h | 100 int tegra_gart_suspend(struct gart_device *gart); 101 int tegra_gart_resume(struct gart_device *gart); 109 static inline int tegra_gart_suspend(struct gart_device *gart) in tegra_gart_suspend() argument 114 static inline int tegra_gart_resume(struct gart_device *gart) in tegra_gart_resume() argument 168 struct gart_device *gart; member
|
/kernel/linux/linux-6.6/include/soc/tegra/ |
H A D | mc.h | 121 int tegra_gart_suspend(struct gart_device *gart); 122 int tegra_gart_resume(struct gart_device *gart); 130 static inline int tegra_gart_suspend(struct gart_device *gart) in tegra_gart_suspend() argument 135 static inline int tegra_gart_resume(struct gart_device *gart) in tegra_gart_resume() argument 228 struct gart_device *gart; member
|
/kernel/linux/linux-6.6/drivers/gpu/drm/nouveau/ |
H A D | nouveau_chan.h | 28 struct nvif_object gart; member 66 u32 vram, u32 gart, struct nouveau_channel **);
|
H A D | nouveau_chan.c | 103 nvif_object_dtor(&chan->gart); in nouveau_channel_del() 364 nouveau_channel_init(struct nouveau_channel *chan, u32 vram, u32 gart) in nouveau_channel_init() argument 396 /* allocate dma objects to cover all allowed vram, and gart */ in nouveau_channel_init() 435 ret = nvif_object_ctor(&chan->user, "abi16ChanGartCtxDma", gart, in nouveau_channel_init() 437 &chan->gart); in nouveau_channel_init() 497 bool priv, u64 runm, u32 vram, u32 gart, struct nouveau_channel **pchan) in nouveau_channel_new() 508 ret = nouveau_channel_init(*pchan, vram, gart); in nouveau_channel_new() 496 nouveau_channel_new(struct nouveau_drm *drm, struct nvif_device *device, bool priv, u64 runm, u32 vram, u32 gart, struct nouveau_channel **pchan) nouveau_channel_new() argument
|
/kernel/linux/linux-5.10/drivers/memory/tegra/ |
H A D | mc.c | 24 { .compatible = "nvidia,tegra20-mc-gart", .data = &tegra20_mc_soc }, 694 mc->gart = tegra_gart_probe(&pdev->dev, mc); in tegra_mc_probe() 695 if (IS_ERR(mc->gart)) { in tegra_mc_probe() 697 PTR_ERR(mc->gart)); in tegra_mc_probe() 698 mc->gart = NULL; in tegra_mc_probe() 710 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_GART) && mc->gart) { in tegra_mc_suspend() 711 err = tegra_gart_suspend(mc->gart); in tegra_mc_suspend() 724 if (IS_ENABLED(CONFIG_TEGRA_IOMMU_GART) && mc->gart) { in tegra_mc_resume() 725 err = tegra_gart_resume(mc->gart); in tegra_mc_resume()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/ |
H A D | nouveau_chan.h | 24 struct nvif_object gart; member
|