Messages in this thread Patch in this message | | | From | Joerg Roedel <> | Subject | [PATCH 5/9] x86/iommu: change GART to use dma_ops register interface | Date | Mon, 22 Sep 2008 20:21:17 +0200 |
| |
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> --- arch/x86/kernel/pci-gart_64.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index 508ef47..c5891c9 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c @@ -533,6 +533,12 @@ gart_free_coherent(struct device *dev, size_t size, void *vaddr, free_pages((unsigned long)vaddr, get_order(size)); } +static int gart_device_supported(struct device *dev) +{ + /* GART remaps _everything_ (including CPU memory accesses) */ + return 1; +} + static int no_agp; static __init unsigned long check_iommu_size(unsigned long aper, u64 aper_size) @@ -736,6 +742,7 @@ static struct dma_mapping_ops gart_dma_ops = { .unmap_sg = gart_unmap_sg, .alloc_coherent = gart_alloc_coherent, .free_coherent = gart_free_coherent, + .device_supported = gart_device_supported, }; void gart_iommu_shutdown(void) @@ -874,6 +881,8 @@ void __init gart_iommu_init(void) iommu_gatt_base[i] = gart_unmapped_entry; flush_gart(); + + x86_register_dma_ops(&gart_dma_ops, DMA_OPS_TYPE_HW); dma_ops = &gart_dma_ops; } -- 1.5.6.4
| |