Commit 2d9d6f6c authored by Christoph Hellwig's avatar Christoph Hellwig

powerpc: rename dma_direct_ to dma_nommu_

We want to use the dma_direct_ namespace for a generic implementation,
so rename powerpc to the second best choice: dma_nommu_.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent bf15f90b
...@@ -19,13 +19,13 @@ ...@@ -19,13 +19,13 @@
#include <asm/swiotlb.h> #include <asm/swiotlb.h>
/* Some dma direct funcs must be visible for use in other dma_ops */ /* Some dma direct funcs must be visible for use in other dma_ops */
extern void *__dma_direct_alloc_coherent(struct device *dev, size_t size, extern void *__dma_nommu_alloc_coherent(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag, dma_addr_t *dma_handle, gfp_t flag,
unsigned long attrs); unsigned long attrs);
extern void __dma_direct_free_coherent(struct device *dev, size_t size, extern void __dma_nommu_free_coherent(struct device *dev, size_t size,
void *vaddr, dma_addr_t dma_handle, void *vaddr, dma_addr_t dma_handle,
unsigned long attrs); unsigned long attrs);
extern int dma_direct_mmap_coherent(struct device *dev, extern int dma_nommu_mmap_coherent(struct device *dev,
struct vm_area_struct *vma, struct vm_area_struct *vma,
void *cpu_addr, dma_addr_t handle, void *cpu_addr, dma_addr_t handle,
size_t size, unsigned long attrs); size_t size, unsigned long attrs);
...@@ -73,7 +73,7 @@ static inline unsigned long device_to_mask(struct device *dev) ...@@ -73,7 +73,7 @@ static inline unsigned long device_to_mask(struct device *dev)
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
extern struct dma_map_ops dma_iommu_ops; extern struct dma_map_ops dma_iommu_ops;
#endif #endif
extern const struct dma_map_ops dma_direct_ops; extern const struct dma_map_ops dma_nommu_ops;
static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus) static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
{ {
......
...@@ -114,7 +114,7 @@ int dma_iommu_mapping_error(struct device *dev, dma_addr_t dma_addr) ...@@ -114,7 +114,7 @@ int dma_iommu_mapping_error(struct device *dev, dma_addr_t dma_addr)
struct dma_map_ops dma_iommu_ops = { struct dma_map_ops dma_iommu_ops = {
.alloc = dma_iommu_alloc_coherent, .alloc = dma_iommu_alloc_coherent,
.free = dma_iommu_free_coherent, .free = dma_iommu_free_coherent,
.mmap = dma_direct_mmap_coherent, .mmap = dma_nommu_mmap_coherent,
.map_sg = dma_iommu_map_sg, .map_sg = dma_iommu_map_sg,
.unmap_sg = dma_iommu_unmap_sg, .unmap_sg = dma_iommu_unmap_sg,
.dma_supported = dma_iommu_dma_supported, .dma_supported = dma_iommu_dma_supported,
......
...@@ -47,9 +47,9 @@ static u64 swiotlb_powerpc_get_required(struct device *dev) ...@@ -47,9 +47,9 @@ static u64 swiotlb_powerpc_get_required(struct device *dev)
* for everything else. * for everything else.
*/ */
const struct dma_map_ops swiotlb_dma_ops = { const struct dma_map_ops swiotlb_dma_ops = {
.alloc = __dma_direct_alloc_coherent, .alloc = __dma_nommu_alloc_coherent,
.free = __dma_direct_free_coherent, .free = __dma_nommu_free_coherent,
.mmap = dma_direct_mmap_coherent, .mmap = dma_nommu_mmap_coherent,
.map_sg = swiotlb_map_sg_attrs, .map_sg = swiotlb_map_sg_attrs,
.unmap_sg = swiotlb_unmap_sg_attrs, .unmap_sg = swiotlb_unmap_sg_attrs,
.dma_supported = swiotlb_dma_supported, .dma_supported = swiotlb_dma_supported,
......
...@@ -40,7 +40,7 @@ static u64 __maybe_unused get_pfn_limit(struct device *dev) ...@@ -40,7 +40,7 @@ static u64 __maybe_unused get_pfn_limit(struct device *dev)
return pfn; return pfn;
} }
static int dma_direct_dma_supported(struct device *dev, u64 mask) static int dma_nommu_dma_supported(struct device *dev, u64 mask)
{ {
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
u64 limit = get_dma_offset(dev) + (memblock_end_of_DRAM() - 1); u64 limit = get_dma_offset(dev) + (memblock_end_of_DRAM() - 1);
...@@ -62,7 +62,7 @@ static int dma_direct_dma_supported(struct device *dev, u64 mask) ...@@ -62,7 +62,7 @@ static int dma_direct_dma_supported(struct device *dev, u64 mask)
#endif #endif
} }
void *__dma_direct_alloc_coherent(struct device *dev, size_t size, void *__dma_nommu_alloc_coherent(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag, dma_addr_t *dma_handle, gfp_t flag,
unsigned long attrs) unsigned long attrs)
{ {
...@@ -119,7 +119,7 @@ void *__dma_direct_alloc_coherent(struct device *dev, size_t size, ...@@ -119,7 +119,7 @@ void *__dma_direct_alloc_coherent(struct device *dev, size_t size,
#endif #endif
} }
void __dma_direct_free_coherent(struct device *dev, size_t size, void __dma_nommu_free_coherent(struct device *dev, size_t size,
void *vaddr, dma_addr_t dma_handle, void *vaddr, dma_addr_t dma_handle,
unsigned long attrs) unsigned long attrs)
{ {
...@@ -130,7 +130,7 @@ void __dma_direct_free_coherent(struct device *dev, size_t size, ...@@ -130,7 +130,7 @@ void __dma_direct_free_coherent(struct device *dev, size_t size,
#endif #endif
} }
static void *dma_direct_alloc_coherent(struct device *dev, size_t size, static void *dma_nommu_alloc_coherent(struct device *dev, size_t size,
dma_addr_t *dma_handle, gfp_t flag, dma_addr_t *dma_handle, gfp_t flag,
unsigned long attrs) unsigned long attrs)
{ {
...@@ -139,8 +139,8 @@ static void *dma_direct_alloc_coherent(struct device *dev, size_t size, ...@@ -139,8 +139,8 @@ static void *dma_direct_alloc_coherent(struct device *dev, size_t size,
/* The coherent mask may be smaller than the real mask, check if /* The coherent mask may be smaller than the real mask, check if
* we can really use the direct ops * we can really use the direct ops
*/ */
if (dma_direct_dma_supported(dev, dev->coherent_dma_mask)) if (dma_nommu_dma_supported(dev, dev->coherent_dma_mask))
return __dma_direct_alloc_coherent(dev, size, dma_handle, return __dma_nommu_alloc_coherent(dev, size, dma_handle,
flag, attrs); flag, attrs);
/* Ok we can't ... do we have an iommu ? If not, fail */ /* Ok we can't ... do we have an iommu ? If not, fail */
...@@ -154,15 +154,15 @@ static void *dma_direct_alloc_coherent(struct device *dev, size_t size, ...@@ -154,15 +154,15 @@ static void *dma_direct_alloc_coherent(struct device *dev, size_t size,
dev_to_node(dev)); dev_to_node(dev));
} }
static void dma_direct_free_coherent(struct device *dev, size_t size, static void dma_nommu_free_coherent(struct device *dev, size_t size,
void *vaddr, dma_addr_t dma_handle, void *vaddr, dma_addr_t dma_handle,
unsigned long attrs) unsigned long attrs)
{ {
struct iommu_table *iommu; struct iommu_table *iommu;
/* See comments in dma_direct_alloc_coherent() */ /* See comments in dma_nommu_alloc_coherent() */
if (dma_direct_dma_supported(dev, dev->coherent_dma_mask)) if (dma_nommu_dma_supported(dev, dev->coherent_dma_mask))
return __dma_direct_free_coherent(dev, size, vaddr, dma_handle, return __dma_nommu_free_coherent(dev, size, vaddr, dma_handle,
attrs); attrs);
/* Maybe we used an iommu ... */ /* Maybe we used an iommu ... */
iommu = get_iommu_table_base(dev); iommu = get_iommu_table_base(dev);
...@@ -175,7 +175,7 @@ static void dma_direct_free_coherent(struct device *dev, size_t size, ...@@ -175,7 +175,7 @@ static void dma_direct_free_coherent(struct device *dev, size_t size,
iommu_free_coherent(iommu, size, vaddr, dma_handle); iommu_free_coherent(iommu, size, vaddr, dma_handle);
} }
int dma_direct_mmap_coherent(struct device *dev, struct vm_area_struct *vma, int dma_nommu_mmap_coherent(struct device *dev, struct vm_area_struct *vma,
void *cpu_addr, dma_addr_t handle, size_t size, void *cpu_addr, dma_addr_t handle, size_t size,
unsigned long attrs) unsigned long attrs)
{ {
...@@ -193,7 +193,7 @@ int dma_direct_mmap_coherent(struct device *dev, struct vm_area_struct *vma, ...@@ -193,7 +193,7 @@ int dma_direct_mmap_coherent(struct device *dev, struct vm_area_struct *vma,
vma->vm_page_prot); vma->vm_page_prot);
} }
static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, static int dma_nommu_map_sg(struct device *dev, struct scatterlist *sgl,
int nents, enum dma_data_direction direction, int nents, enum dma_data_direction direction,
unsigned long attrs) unsigned long attrs)
{ {
...@@ -213,13 +213,13 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, ...@@ -213,13 +213,13 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
return nents; return nents;
} }
static void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sg, static void dma_nommu_unmap_sg(struct device *dev, struct scatterlist *sg,
int nents, enum dma_data_direction direction, int nents, enum dma_data_direction direction,
unsigned long attrs) unsigned long attrs)
{ {
} }
static u64 dma_direct_get_required_mask(struct device *dev) static u64 dma_nommu_get_required_mask(struct device *dev)
{ {
u64 end, mask; u64 end, mask;
...@@ -231,7 +231,7 @@ static u64 dma_direct_get_required_mask(struct device *dev) ...@@ -231,7 +231,7 @@ static u64 dma_direct_get_required_mask(struct device *dev)
return mask; return mask;
} }
static inline dma_addr_t dma_direct_map_page(struct device *dev, static inline dma_addr_t dma_nommu_map_page(struct device *dev,
struct page *page, struct page *page,
unsigned long offset, unsigned long offset,
size_t size, size_t size,
...@@ -246,7 +246,7 @@ static inline dma_addr_t dma_direct_map_page(struct device *dev, ...@@ -246,7 +246,7 @@ static inline dma_addr_t dma_direct_map_page(struct device *dev,
return page_to_phys(page) + offset + get_dma_offset(dev); return page_to_phys(page) + offset + get_dma_offset(dev);
} }
static inline void dma_direct_unmap_page(struct device *dev, static inline void dma_nommu_unmap_page(struct device *dev,
dma_addr_t dma_address, dma_addr_t dma_address,
size_t size, size_t size,
enum dma_data_direction direction, enum dma_data_direction direction,
...@@ -255,7 +255,7 @@ static inline void dma_direct_unmap_page(struct device *dev, ...@@ -255,7 +255,7 @@ static inline void dma_direct_unmap_page(struct device *dev,
} }
#ifdef CONFIG_NOT_COHERENT_CACHE #ifdef CONFIG_NOT_COHERENT_CACHE
static inline void dma_direct_sync_sg(struct device *dev, static inline void dma_nommu_sync_sg(struct device *dev,
struct scatterlist *sgl, int nents, struct scatterlist *sgl, int nents,
enum dma_data_direction direction) enum dma_data_direction direction)
{ {
...@@ -266,7 +266,7 @@ static inline void dma_direct_sync_sg(struct device *dev, ...@@ -266,7 +266,7 @@ static inline void dma_direct_sync_sg(struct device *dev,
__dma_sync_page(sg_page(sg), sg->offset, sg->length, direction); __dma_sync_page(sg_page(sg), sg->offset, sg->length, direction);
} }
static inline void dma_direct_sync_single(struct device *dev, static inline void dma_nommu_sync_single(struct device *dev,
dma_addr_t dma_handle, size_t size, dma_addr_t dma_handle, size_t size,
enum dma_data_direction direction) enum dma_data_direction direction)
{ {
...@@ -274,24 +274,24 @@ static inline void dma_direct_sync_single(struct device *dev, ...@@ -274,24 +274,24 @@ static inline void dma_direct_sync_single(struct device *dev,
} }
#endif #endif
const struct dma_map_ops dma_direct_ops = { const struct dma_map_ops dma_nommu_ops = {
.alloc = dma_direct_alloc_coherent, .alloc = dma_nommu_alloc_coherent,
.free = dma_direct_free_coherent, .free = dma_nommu_free_coherent,
.mmap = dma_direct_mmap_coherent, .mmap = dma_nommu_mmap_coherent,
.map_sg = dma_direct_map_sg, .map_sg = dma_nommu_map_sg,
.unmap_sg = dma_direct_unmap_sg, .unmap_sg = dma_nommu_unmap_sg,
.dma_supported = dma_direct_dma_supported, .dma_supported = dma_nommu_dma_supported,
.map_page = dma_direct_map_page, .map_page = dma_nommu_map_page,
.unmap_page = dma_direct_unmap_page, .unmap_page = dma_nommu_unmap_page,
.get_required_mask = dma_direct_get_required_mask, .get_required_mask = dma_nommu_get_required_mask,
#ifdef CONFIG_NOT_COHERENT_CACHE #ifdef CONFIG_NOT_COHERENT_CACHE
.sync_single_for_cpu = dma_direct_sync_single, .sync_single_for_cpu = dma_nommu_sync_single,
.sync_single_for_device = dma_direct_sync_single, .sync_single_for_device = dma_nommu_sync_single,
.sync_sg_for_cpu = dma_direct_sync_sg, .sync_sg_for_cpu = dma_nommu_sync_sg,
.sync_sg_for_device = dma_direct_sync_sg, .sync_sg_for_device = dma_nommu_sync_sg,
#endif #endif
}; };
EXPORT_SYMBOL(dma_direct_ops); EXPORT_SYMBOL(dma_nommu_ops);
int dma_set_coherent_mask(struct device *dev, u64 mask) int dma_set_coherent_mask(struct device *dev, u64 mask)
{ {
...@@ -302,7 +302,7 @@ int dma_set_coherent_mask(struct device *dev, u64 mask) ...@@ -302,7 +302,7 @@ int dma_set_coherent_mask(struct device *dev, u64 mask)
* is no dma_op->set_coherent_mask() so we have to do * is no dma_op->set_coherent_mask() so we have to do
* things the hard way: * things the hard way:
*/ */
if (get_dma_ops(dev) != &dma_direct_ops || if (get_dma_ops(dev) != &dma_nommu_ops ||
get_iommu_table_base(dev) == NULL || get_iommu_table_base(dev) == NULL ||
!dma_iommu_dma_supported(dev, mask)) !dma_iommu_dma_supported(dev, mask))
return -EIO; return -EIO;
......
...@@ -60,7 +60,7 @@ resource_size_t isa_mem_base; ...@@ -60,7 +60,7 @@ resource_size_t isa_mem_base;
EXPORT_SYMBOL(isa_mem_base); EXPORT_SYMBOL(isa_mem_base);
static const struct dma_map_ops *pci_dma_ops = &dma_direct_ops; static const struct dma_map_ops *pci_dma_ops = &dma_nommu_ops;
void set_pci_dma_ops(const struct dma_map_ops *dma_ops) void set_pci_dma_ops(const struct dma_map_ops *dma_ops)
{ {
......
...@@ -791,7 +791,7 @@ void arch_setup_pdev_archdata(struct platform_device *pdev) ...@@ -791,7 +791,7 @@ void arch_setup_pdev_archdata(struct platform_device *pdev)
{ {
pdev->archdata.dma_mask = DMA_BIT_MASK(32); pdev->archdata.dma_mask = DMA_BIT_MASK(32);
pdev->dev.dma_mask = &pdev->archdata.dma_mask; pdev->dev.dma_mask = &pdev->archdata.dma_mask;
set_dma_ops(&pdev->dev, &dma_direct_ops); set_dma_ops(&pdev->dev, &dma_nommu_ops);
} }
static __init void print_system_info(void) static __init void print_system_info(void)
......
...@@ -541,7 +541,7 @@ static struct cbe_iommu *cell_iommu_for_node(int nid) ...@@ -541,7 +541,7 @@ static struct cbe_iommu *cell_iommu_for_node(int nid)
return NULL; return NULL;
} }
static unsigned long cell_dma_direct_offset; static unsigned long cell_dma_nommu_offset;
static unsigned long dma_iommu_fixed_base; static unsigned long dma_iommu_fixed_base;
...@@ -580,7 +580,7 @@ static void *dma_fixed_alloc_coherent(struct device *dev, size_t size, ...@@ -580,7 +580,7 @@ static void *dma_fixed_alloc_coherent(struct device *dev, size_t size,
device_to_mask(dev), flag, device_to_mask(dev), flag,
dev_to_node(dev)); dev_to_node(dev));
else else
return dma_direct_ops.alloc(dev, size, dma_handle, flag, return dma_nommu_ops.alloc(dev, size, dma_handle, flag,
attrs); attrs);
} }
...@@ -592,7 +592,7 @@ static void dma_fixed_free_coherent(struct device *dev, size_t size, ...@@ -592,7 +592,7 @@ static void dma_fixed_free_coherent(struct device *dev, size_t size,
iommu_free_coherent(cell_get_iommu_table(dev), size, vaddr, iommu_free_coherent(cell_get_iommu_table(dev), size, vaddr,
dma_handle); dma_handle);
else else
dma_direct_ops.free(dev, size, vaddr, dma_handle, attrs); dma_nommu_ops.free(dev, size, vaddr, dma_handle, attrs);
} }
static dma_addr_t dma_fixed_map_page(struct device *dev, struct page *page, static dma_addr_t dma_fixed_map_page(struct device *dev, struct page *page,
...@@ -601,7 +601,7 @@ static dma_addr_t dma_fixed_map_page(struct device *dev, struct page *page, ...@@ -601,7 +601,7 @@ static dma_addr_t dma_fixed_map_page(struct device *dev, struct page *page,
unsigned long attrs) unsigned long attrs)
{ {
if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING)) if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING))
return dma_direct_ops.map_page(dev, page, offset, size, return dma_nommu_ops.map_page(dev, page, offset, size,
direction, attrs); direction, attrs);
else else
return iommu_map_page(dev, cell_get_iommu_table(dev), page, return iommu_map_page(dev, cell_get_iommu_table(dev), page,
...@@ -614,7 +614,7 @@ static void dma_fixed_unmap_page(struct device *dev, dma_addr_t dma_addr, ...@@ -614,7 +614,7 @@ static void dma_fixed_unmap_page(struct device *dev, dma_addr_t dma_addr,
unsigned long attrs) unsigned long attrs)
{ {
if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING)) if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING))
dma_direct_ops.unmap_page(dev, dma_addr, size, direction, dma_nommu_ops.unmap_page(dev, dma_addr, size, direction,
attrs); attrs);
else else
iommu_unmap_page(cell_get_iommu_table(dev), dma_addr, size, iommu_unmap_page(cell_get_iommu_table(dev), dma_addr, size,
...@@ -626,7 +626,7 @@ static int dma_fixed_map_sg(struct device *dev, struct scatterlist *sg, ...@@ -626,7 +626,7 @@ static int dma_fixed_map_sg(struct device *dev, struct scatterlist *sg,
unsigned long attrs) unsigned long attrs)
{ {
if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING)) if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING))
return dma_direct_ops.map_sg(dev, sg, nents, direction, attrs); return dma_nommu_ops.map_sg(dev, sg, nents, direction, attrs);
else else
return ppc_iommu_map_sg(dev, cell_get_iommu_table(dev), sg, return ppc_iommu_map_sg(dev, cell_get_iommu_table(dev), sg,
nents, device_to_mask(dev), nents, device_to_mask(dev),
...@@ -638,7 +638,7 @@ static void dma_fixed_unmap_sg(struct device *dev, struct scatterlist *sg, ...@@ -638,7 +638,7 @@ static void dma_fixed_unmap_sg(struct device *dev, struct scatterlist *sg,
unsigned long attrs) unsigned long attrs)
{ {
if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING)) if (iommu_fixed_is_weak == (attrs & DMA_ATTR_WEAK_ORDERING))
dma_direct_ops.unmap_sg(dev, sg, nents, direction, attrs); dma_nommu_ops.unmap_sg(dev, sg, nents, direction, attrs);
else else
ppc_iommu_unmap_sg(cell_get_iommu_table(dev), sg, nents, ppc_iommu_unmap_sg(cell_get_iommu_table(dev), sg, nents,
direction, attrs); direction, attrs);
...@@ -661,8 +661,8 @@ static void cell_dma_dev_setup(struct device *dev) ...@@ -661,8 +661,8 @@ static void cell_dma_dev_setup(struct device *dev)
{ {
if (get_pci_dma_ops() == &dma_iommu_ops) if (get_pci_dma_ops() == &dma_iommu_ops)
set_iommu_table_base(dev, cell_get_iommu_table(dev)); set_iommu_table_base(dev, cell_get_iommu_table(dev));
else if (get_pci_dma_ops() == &dma_direct_ops) else if (get_pci_dma_ops() == &dma_nommu_ops)
set_dma_offset(dev, cell_dma_direct_offset); set_dma_offset(dev, cell_dma_nommu_offset);
else else
BUG(); BUG();
} }
...@@ -810,14 +810,14 @@ static int __init cell_iommu_init_disabled(void) ...@@ -810,14 +810,14 @@ static int __init cell_iommu_init_disabled(void)
unsigned long base = 0, size; unsigned long base = 0, size;
/* When no iommu is present, we use direct DMA ops */ /* When no iommu is present, we use direct DMA ops */
set_pci_dma_ops(&dma_direct_ops); set_pci_dma_ops(&dma_nommu_ops);
/* First make sure all IOC translation is turned off */ /* First make sure all IOC translation is turned off */
cell_disable_iommus(); cell_disable_iommus();
/* If we have no Axon, we set up the spider DMA magic offset */ /* If we have no Axon, we set up the spider DMA magic offset */
if (of_find_node_by_name(NULL, "axon") == NULL) if (of_find_node_by_name(NULL, "axon") == NULL)
cell_dma_direct_offset = SPIDER_DMA_OFFSET; cell_dma_nommu_offset = SPIDER_DMA_OFFSET;
/* Now we need to check to see where the memory is mapped /* Now we need to check to see where the memory is mapped
* in PCI space. We assume that all busses use the same dma * in PCI space. We assume that all busses use the same dma
...@@ -851,13 +851,13 @@ static int __init cell_iommu_init_disabled(void) ...@@ -851,13 +851,13 @@ static int __init cell_iommu_init_disabled(void)
return -ENODEV; return -ENODEV;
} }
cell_dma_direct_offset += base; cell_dma_nommu_offset += base;
if (cell_dma_direct_offset != 0) if (cell_dma_nommu_offset != 0)
cell_pci_controller_ops.dma_dev_setup = cell_pci_dma_dev_setup; cell_pci_controller_ops.dma_dev_setup = cell_pci_dma_dev_setup;
printk("iommu: disabled, direct DMA offset is 0x%lx\n", printk("iommu: disabled, direct DMA offset is 0x%lx\n",
cell_dma_direct_offset); cell_dma_nommu_offset);
return 0; return 0;
} }
......
...@@ -186,7 +186,7 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev) ...@@ -186,7 +186,7 @@ static void pci_dma_dev_setup_pasemi(struct pci_dev *dev)
*/ */
if (dev->vendor == 0x1959 && dev->device == 0xa007 && if (dev->vendor == 0x1959 && dev->device == 0xa007 &&
!firmware_has_feature(FW_FEATURE_LPAR)) { !firmware_has_feature(FW_FEATURE_LPAR)) {
dev->dev.dma_ops = &dma_direct_ops; dev->dev.dma_ops = &dma_nommu_ops;
/* /*
* Set the coherent DMA mask to prevent the iommu * Set the coherent DMA mask to prevent the iommu
* being used unnecessarily * being used unnecessarily
......
...@@ -363,7 +363,7 @@ static int pcmcia_notify(struct notifier_block *nb, unsigned long action, ...@@ -363,7 +363,7 @@ static int pcmcia_notify(struct notifier_block *nb, unsigned long action,
return 0; return 0;
/* We use the direct ops for localbus */ /* We use the direct ops for localbus */
dev->dma_ops = &dma_direct_ops; dev->dma_ops = &dma_nommu_ops;
return 0; return 0;
} }
......
...@@ -1850,7 +1850,7 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask) ...@@ -1850,7 +1850,7 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask)
if (bypass) { if (bypass) {
dev_info(&pdev->dev, "Using 64-bit DMA iommu bypass\n"); dev_info(&pdev->dev, "Using 64-bit DMA iommu bypass\n");
set_dma_ops(&pdev->dev, &dma_direct_ops); set_dma_ops(&pdev->dev, &dma_nommu_ops);
} else { } else {
/* /*
* If the device can't set the TCE bypass bit but still wants * If the device can't set the TCE bypass bit but still wants
...@@ -1868,7 +1868,7 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask) ...@@ -1868,7 +1868,7 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask)
return rc; return rc;
/* 4GB offset bypasses 32-bit space */ /* 4GB offset bypasses 32-bit space */
set_dma_offset(&pdev->dev, (1ULL << 32)); set_dma_offset(&pdev->dev, (1ULL << 32));
set_dma_ops(&pdev->dev, &dma_direct_ops); set_dma_ops(&pdev->dev, &dma_nommu_ops);
} else if (dma_mask >> 32 && dma_mask != DMA_BIT_MASK(64)) { } else if (dma_mask >> 32 && dma_mask != DMA_BIT_MASK(64)) {
/* /*
* Fail the request if a DMA mask between 32 and 64 bits * Fail the request if a DMA mask between 32 and 64 bits
......
...@@ -1231,7 +1231,7 @@ static int dma_set_mask_pSeriesLP(struct device *dev, u64 dma_mask) ...@@ -1231,7 +1231,7 @@ static int dma_set_mask_pSeriesLP(struct device *dev, u64 dma_mask)
if (dma_offset != 0) { if (dma_offset != 0) {
dev_info(dev, "Using 64-bit direct DMA at offset %llx\n", dma_offset); dev_info(dev, "Using 64-bit direct DMA at offset %llx\n", dma_offset);
set_dma_offset(dev, dma_offset); set_dma_offset(dev, dma_offset);
set_dma_ops(dev, &dma_direct_ops); set_dma_ops(dev, &dma_nommu_ops);
ddw_enabled = true; ddw_enabled = true;
} }
} }
......
...@@ -618,7 +618,7 @@ static u64 vio_dma_get_required_mask(struct device *dev) ...@@ -618,7 +618,7 @@ static u64 vio_dma_get_required_mask(struct device *dev)
static const struct dma_map_ops vio_dma_mapping_ops = { static const struct dma_map_ops vio_dma_mapping_ops = {
.alloc = vio_dma_iommu_alloc_coherent, .alloc = vio_dma_iommu_alloc_coherent,
.free = vio_dma_iommu_free_coherent, .free = vio_dma_iommu_free_coherent,
.mmap = dma_direct_mmap_coherent, .mmap = dma_nommu_mmap_coherent,
.map_sg = vio_dma_iommu_map_sg, .map_sg = vio_dma_iommu_map_sg,
.unmap_sg = vio_dma_iommu_unmap_sg, .unmap_sg = vio_dma_iommu_unmap_sg,
.map_page = vio_dma_iommu_map_page, .map_page = vio_dma_iommu_map_page,
......
...@@ -402,7 +402,7 @@ static int dart_dma_set_mask(struct device *dev, u64 dma_mask) ...@@ -402,7 +402,7 @@ static int dart_dma_set_mask(struct device *dev, u64 dma_mask)
*/ */
if (dart_device_on_pcie(dev) && dma_mask >= DMA_BIT_MASK(40)) { if (dart_device_on_pcie(dev) && dma_mask >= DMA_BIT_MASK(40)) {
dev_info(dev, "Using 64-bit DMA iommu bypass\n"); dev_info(dev, "Using 64-bit DMA iommu bypass\n");
set_dma_ops(dev, &dma_direct_ops); set_dma_ops(dev, &dma_nommu_ops);
} else { } else {
dev_info(dev, "Using 32-bit DMA via iommu\n"); dev_info(dev, "Using 32-bit DMA via iommu\n");
set_dma_ops(dev, &dma_iommu_ops); set_dma_ops(dev, &dma_iommu_ops);
...@@ -446,7 +446,7 @@ void __init iommu_init_early_dart(struct pci_controller_ops *controller_ops) ...@@ -446,7 +446,7 @@ void __init iommu_init_early_dart(struct pci_controller_ops *controller_ops)
controller_ops->dma_bus_setup = NULL; controller_ops->dma_bus_setup = NULL;
/* Setup pci_dma ops */ /* Setup pci_dma ops */
set_pci_dma_ops(&dma_direct_ops); set_pci_dma_ops(&dma_nommu_ops);
} }
#ifdef CONFIG_PM #ifdef CONFIG_PM
......
...@@ -135,7 +135,7 @@ static int fsl_pci_dma_set_mask(struct device *dev, u64 dma_mask) ...@@ -135,7 +135,7 @@ static int fsl_pci_dma_set_mask(struct device *dev, u64 dma_mask)
* mapping that allows addressing any RAM address from across PCI. * mapping that allows addressing any RAM address from across PCI.
*/ */
if (dev_is_pci(dev) && dma_mask >= pci64_dma_offset * 2 - 1) { if (dev_is_pci(dev) && dma_mask >= pci64_dma_offset * 2 - 1) {
set_dma_ops(dev, &dma_direct_ops); set_dma_ops(dev, &dma_nommu_ops);
set_dma_offset(dev, pci64_dma_offset); set_dma_offset(dev, pci64_dma_offset);
} }
......
...@@ -54,7 +54,7 @@ static bool cxl_pci_enable_device_hook(struct pci_dev *dev) ...@@ -54,7 +54,7 @@ static bool cxl_pci_enable_device_hook(struct pci_dev *dev)
return false; return false;
} }
set_dma_ops(&dev->dev, &dma_direct_ops); set_dma_ops(&dev->dev, &dma_nommu_ops);
set_dma_offset(&dev->dev, PAGE_OFFSET); set_dma_offset(&dev->dev, PAGE_OFFSET);
return _cxl_pci_associate_default_context(dev, afu); return _cxl_pci_associate_default_context(dev, afu);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment