Loading arch/sparc/include/asm/dma-mapping.h +2 −13 Original line number Diff line number Diff line Loading @@ -2,23 +2,12 @@ #ifndef ___ASM_SPARC_DMA_MAPPING_H #define ___ASM_SPARC_DMA_MAPPING_H #include <asm/cpu_type.h> extern const struct dma_map_ops *dma_ops; extern struct bus_type pci_bus_type; static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) { #ifdef CONFIG_SPARC_LEON if (sparc_cpu_model == sparc_leon) return NULL; #endif #if defined(CONFIG_SPARC32) && defined(CONFIG_PCI) if (bus == &pci_bus_type) return NULL; #endif return dma_ops; /* sparc32 uses per-device dma_ops */ return IS_ENABLED(CONFIG_SPARC64) ? dma_ops : NULL; } #endif arch/sparc/kernel/ioport.c +0 −3 Original line number Diff line number Diff line Loading @@ -373,9 +373,6 @@ void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size, dma_make_coherent(paddr, PAGE_ALIGN(size)); } const struct dma_map_ops *dma_ops; EXPORT_SYMBOL(dma_ops); #ifdef CONFIG_PROC_FS static int sparc_io_proc_show(struct seq_file *m, void *v) Loading arch/sparc/kernel/of_device_common.c +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ void of_propagate_archdata(struct platform_device *bus) op->dev.archdata.stc = bus_sd->stc; op->dev.archdata.host_controller = bus_sd->host_controller; op->dev.archdata.numa_node = bus_sd->numa_node; op->dev.dma_ops = bus->dev.dma_ops; if (dp->child) of_propagate_archdata(op); Loading arch/sparc/mm/io-unit.c +4 −5 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ #define IOPERM (IOUPTE_CACHE | IOUPTE_WRITE | IOUPTE_VALID) #define MKIOPTE(phys) __iopte((((phys)>>4) & IOUPTE_PAGE) | IOPERM) static const struct dma_map_ops iounit_dma_ops; static void __init iounit_iommu_init(struct platform_device *op) { struct iounit_struct *iounit; Loading Loading @@ -70,6 +72,8 @@ static void __init iounit_iommu_init(struct platform_device *op) xptend = iounit->page_table + (16 * PAGE_SIZE) / sizeof(iopte_t); for (; xpt < xptend; xpt++) sbus_writel(0, xpt); op->dev.dma_ops = &iounit_dma_ops; } static int __init iounit_init(void) Loading Loading @@ -288,8 +292,3 @@ static const struct dma_map_ops iounit_dma_ops = { .map_sg = iounit_map_sg, .unmap_sg = iounit_unmap_sg, }; void __init ld_mmu_iounit(void) { dma_ops = &iounit_dma_ops; } arch/sparc/mm/iommu.c +8 −7 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ static pgprot_t dvma_prot; /* Consistent mapping pte flags */ #define IOPERM (IOPTE_CACHE | IOPTE_WRITE | IOPTE_VALID) #define MKIOPTE(pfn, perm) (((((pfn)<<8) & IOPTE_PAGE) | (perm)) & ~IOPTE_WAZ) static const struct dma_map_ops sbus_iommu_dma_gflush_ops; static const struct dma_map_ops sbus_iommu_dma_pflush_ops; static void __init sbus_iommu_init(struct platform_device *op) { struct iommu_struct *iommu; Loading Loading @@ -129,6 +132,11 @@ static void __init sbus_iommu_init(struct platform_device *op) (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); op->dev.archdata.iommu = iommu; if (flush_page_for_dma_global) op->dev.dma_ops = &sbus_iommu_dma_gflush_ops; else op->dev.dma_ops = &sbus_iommu_dma_pflush_ops; } static int __init iommu_init(void) Loading Loading @@ -445,13 +453,6 @@ static const struct dma_map_ops sbus_iommu_dma_pflush_ops = { void __init ld_mmu_iommu(void) { if (flush_page_for_dma_global) { /* flush_page_for_dma flushes everything, no matter of what page is it */ dma_ops = &sbus_iommu_dma_gflush_ops; } else { dma_ops = &sbus_iommu_dma_pflush_ops; } if (viking_mxcc_present || srmmu_modtype == HyperSparc) { dvma_prot = __pgprot(SRMMU_CACHE | SRMMU_ET_PTE | SRMMU_PRIV); ioperm_noc = IOPTE_CACHE | IOPTE_WRITE | IOPTE_VALID; Loading Loading
arch/sparc/include/asm/dma-mapping.h +2 −13 Original line number Diff line number Diff line Loading @@ -2,23 +2,12 @@ #ifndef ___ASM_SPARC_DMA_MAPPING_H #define ___ASM_SPARC_DMA_MAPPING_H #include <asm/cpu_type.h> extern const struct dma_map_ops *dma_ops; extern struct bus_type pci_bus_type; static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) { #ifdef CONFIG_SPARC_LEON if (sparc_cpu_model == sparc_leon) return NULL; #endif #if defined(CONFIG_SPARC32) && defined(CONFIG_PCI) if (bus == &pci_bus_type) return NULL; #endif return dma_ops; /* sparc32 uses per-device dma_ops */ return IS_ENABLED(CONFIG_SPARC64) ? dma_ops : NULL; } #endif
arch/sparc/kernel/ioport.c +0 −3 Original line number Diff line number Diff line Loading @@ -373,9 +373,6 @@ void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size, dma_make_coherent(paddr, PAGE_ALIGN(size)); } const struct dma_map_ops *dma_ops; EXPORT_SYMBOL(dma_ops); #ifdef CONFIG_PROC_FS static int sparc_io_proc_show(struct seq_file *m, void *v) Loading
arch/sparc/kernel/of_device_common.c +1 −0 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ void of_propagate_archdata(struct platform_device *bus) op->dev.archdata.stc = bus_sd->stc; op->dev.archdata.host_controller = bus_sd->host_controller; op->dev.archdata.numa_node = bus_sd->numa_node; op->dev.dma_ops = bus->dev.dma_ops; if (dp->child) of_propagate_archdata(op); Loading
arch/sparc/mm/io-unit.c +4 −5 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ #define IOPERM (IOUPTE_CACHE | IOUPTE_WRITE | IOUPTE_VALID) #define MKIOPTE(phys) __iopte((((phys)>>4) & IOUPTE_PAGE) | IOPERM) static const struct dma_map_ops iounit_dma_ops; static void __init iounit_iommu_init(struct platform_device *op) { struct iounit_struct *iounit; Loading Loading @@ -70,6 +72,8 @@ static void __init iounit_iommu_init(struct platform_device *op) xptend = iounit->page_table + (16 * PAGE_SIZE) / sizeof(iopte_t); for (; xpt < xptend; xpt++) sbus_writel(0, xpt); op->dev.dma_ops = &iounit_dma_ops; } static int __init iounit_init(void) Loading Loading @@ -288,8 +292,3 @@ static const struct dma_map_ops iounit_dma_ops = { .map_sg = iounit_map_sg, .unmap_sg = iounit_unmap_sg, }; void __init ld_mmu_iounit(void) { dma_ops = &iounit_dma_ops; }
arch/sparc/mm/iommu.c +8 −7 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ static pgprot_t dvma_prot; /* Consistent mapping pte flags */ #define IOPERM (IOPTE_CACHE | IOPTE_WRITE | IOPTE_VALID) #define MKIOPTE(pfn, perm) (((((pfn)<<8) & IOPTE_PAGE) | (perm)) & ~IOPTE_WAZ) static const struct dma_map_ops sbus_iommu_dma_gflush_ops; static const struct dma_map_ops sbus_iommu_dma_pflush_ops; static void __init sbus_iommu_init(struct platform_device *op) { struct iommu_struct *iommu; Loading Loading @@ -129,6 +132,11 @@ static void __init sbus_iommu_init(struct platform_device *op) (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); op->dev.archdata.iommu = iommu; if (flush_page_for_dma_global) op->dev.dma_ops = &sbus_iommu_dma_gflush_ops; else op->dev.dma_ops = &sbus_iommu_dma_pflush_ops; } static int __init iommu_init(void) Loading Loading @@ -445,13 +453,6 @@ static const struct dma_map_ops sbus_iommu_dma_pflush_ops = { void __init ld_mmu_iommu(void) { if (flush_page_for_dma_global) { /* flush_page_for_dma flushes everything, no matter of what page is it */ dma_ops = &sbus_iommu_dma_gflush_ops; } else { dma_ops = &sbus_iommu_dma_pflush_ops; } if (viking_mxcc_present || srmmu_modtype == HyperSparc) { dvma_prot = __pgprot(SRMMU_CACHE | SRMMU_ET_PTE | SRMMU_PRIV); ioperm_noc = IOPTE_CACHE | IOPTE_WRITE | IOPTE_VALID; Loading