|
@@ -52,13 +52,14 @@ static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
|
|
dev->archdata.dma_ops = ops;
|
|
dev->archdata.dma_ops = ops;
|
|
}
|
|
}
|
|
|
|
|
|
-static inline int set_arch_dma_coherent_ops(struct device *dev)
|
|
|
|
|
|
+static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
|
|
|
|
+ struct iommu_ops *iommu, bool coherent)
|
|
{
|
|
{
|
|
- dev->archdata.dma_coherent = true;
|
|
|
|
- set_dma_ops(dev, &coherent_swiotlb_dma_ops);
|
|
|
|
- return 0;
|
|
|
|
|
|
+ dev->archdata.dma_coherent = coherent;
|
|
|
|
+ if (coherent)
|
|
|
|
+ set_dma_ops(dev, &coherent_swiotlb_dma_ops);
|
|
}
|
|
}
|
|
-#define set_arch_dma_coherent_ops set_arch_dma_coherent_ops
|
|
|
|
|
|
+#define arch_setup_dma_ops arch_setup_dma_ops
|
|
|
|
|
|
/* do not use this function in a driver */
|
|
/* do not use this function in a driver */
|
|
static inline bool is_device_dma_coherent(struct device *dev)
|
|
static inline bool is_device_dma_coherent(struct device *dev)
|