sparc32: use per-device dma_ops
sparc32 is the last platform making dynamic decisions in get_arch_dma_ops based on the bus passed in. Instead set the iommu dma_ops at iommu probing and propagate them in of_propagate_archdata, falling back to the NULL ops for the direct mapping in the Leon or PCI case. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
bef7b2a7be
commit
255a69a94b
@@ -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
|
||||
|
Reference in New Issue
Block a user