aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/parisc/sba_iommu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/parisc/sba_iommu.c')
-rw-r--r--drivers/parisc/sba_iommu.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index 87ad5fd6a7a2..4086f79d58d5 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -93,6 +93,8 @@
93 93
94#define DEFAULT_DMA_HINT_REG 0 94#define DEFAULT_DMA_HINT_REG 0
95 95
96#define SBA_MAPPING_ERROR (~(dma_addr_t)0)
97
96struct sba_device *sba_list; 98struct sba_device *sba_list;
97EXPORT_SYMBOL_GPL(sba_list); 99EXPORT_SYMBOL_GPL(sba_list);
98 100
@@ -725,7 +727,7 @@ sba_map_single(struct device *dev, void *addr, size_t size,
725 727
726 ioc = GET_IOC(dev); 728 ioc = GET_IOC(dev);
727 if (!ioc) 729 if (!ioc)
728 return DMA_ERROR_CODE; 730 return SBA_MAPPING_ERROR;
729 731
730 /* save offset bits */ 732 /* save offset bits */
731 offset = ((dma_addr_t) (long) addr) & ~IOVP_MASK; 733 offset = ((dma_addr_t) (long) addr) & ~IOVP_MASK;
@@ -1083,6 +1085,11 @@ sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents,
1083 1085
1084} 1086}
1085 1087
1088static int sba_mapping_error(struct device *dev, dma_addr_t dma_addr)
1089{
1090 return dma_addr == SBA_MAPPING_ERROR;
1091}
1092
1086static const struct dma_map_ops sba_ops = { 1093static const struct dma_map_ops sba_ops = {
1087 .dma_supported = sba_dma_supported, 1094 .dma_supported = sba_dma_supported,
1088 .alloc = sba_alloc, 1095 .alloc = sba_alloc,
@@ -1091,6 +1098,7 @@ static const struct dma_map_ops sba_ops = {
1091 .unmap_page = sba_unmap_page, 1098 .unmap_page = sba_unmap_page,
1092 .map_sg = sba_map_sg, 1099 .map_sg = sba_map_sg,
1093 .unmap_sg = sba_unmap_sg, 1100 .unmap_sg = sba_unmap_sg,
1101 .mapping_error = sba_mapping_error,
1094}; 1102};
1095 1103
1096 1104