Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 267ca264 authored by Neeti Desai's avatar Neeti Desai Committed by Matt Wagantall
Browse files

arm64: dma_mapping: Add support for .dma_mapping_error() ops



If dma_map_single() or dma_map_page() fail to create a mapping, clients
can check these errors by testing the returned address with
.dma_mapping_error(). The implementation was missing for DMA IOMMU
mapper.  Add it.

Change-Id: I7e62bdbcd013cab915134fce9e55b1e7b580915a
Signed-off-by: default avatarNeeti Desai <neetid@codeaurora.org>
Signed-off-by: default avatarMitchel Humpherys <mitchelh@codeaurora.org>
parent 835197da
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1416,6 +1416,12 @@ static int arm_iommu_dma_supported(struct device *dev, u64 mask)
	return iommu_dma_supported(mapping->domain, dev, mask);
}

static int arm_iommu_mapping_error(struct device *dev,
				   dma_addr_t dma_addr)
{
	return dma_addr == DMA_ERROR_CODE;
}

const struct dma_map_ops iommu_ops = {
	.alloc		= arm_iommu_alloc_attrs,
	.free		= arm_iommu_free_attrs,
@@ -1434,6 +1440,7 @@ const struct dma_map_ops iommu_ops = {

	.set_dma_mask		= arm_dma_set_mask,
	.dma_supported		= arm_iommu_dma_supported,
	.mapping_error		= arm_iommu_mapping_error,
};

const struct dma_map_ops iommu_coherent_ops = {