mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-25 19:50:33 -05:00
media: omap3isp: Handle ARM dma_iommu_mapping
It's no longer practical for the OMAP IOMMU driver to trick
arm_setup_iommu_dma_ops() into ignoring its presence, so let's use the
same tactic as other IOMMU API users on 32-bit ARM and explicitly kick
the arch code's dma_iommu_mapping out of the way to avoid problems.
Fixes: 4720287c7b ("iommu: Remove struct iommu_ops *iommu from arch_setup_dma_ops()")
Cc: stable@vger.kernel.org
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Tested-by: Sicelo A. Mhlongo <absicsz@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
6f0ab5d367
commit
6bc076eec6
@@ -1961,6 +1961,13 @@ static int isp_attach_iommu(struct isp_device *isp)
|
||||
struct dma_iommu_mapping *mapping;
|
||||
int ret;
|
||||
|
||||
/* We always want to replace any default mapping from the arch code */
|
||||
mapping = to_dma_iommu_mapping(isp->dev);
|
||||
if (mapping) {
|
||||
arm_iommu_detach_device(isp->dev);
|
||||
arm_iommu_release_mapping(mapping);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the ARM mapping, used by the ARM DMA mapping core to allocate
|
||||
* VAs. This will allocate a corresponding IOMMU domain.
|
||||
|
||||
Reference in New Issue
Block a user