Hi!
This is an example of the IOMMU aware DMA-mapping implementation usage on a Samsung Exynos4 based NURI board. The ARM DMA-mapping IOMMU aware implementation is available in the [1] thread:
This patch essentially registers DMA-mmaping/IOMMU support for FIMC and MFC devices and performs some tweaks in clocks hierarchy to get SYSMMU driver working correctly.
The drivers have been tested with mainline V4L2 drivers for FIMC and MFC hardware.
For easier testing I've created a separate kernel branch with all required prerequisite patches. It is based on lastest kgene/for-next branch and is available on my git repository:
git://git.linaro.org/people/mszyprowski/linux-dma-mapping.git 3.4-rc2-arm-dma-v8-samsung
This patch requires the following items: 1. ARM DMA-mapping patches [1] 2. Exynos SYSMMU driver v12 [2] 3. Exynos SYSMMU driver runtime pm fixes 4. Exynos4 gen_pd power domain driver fixes
Runtime pm and power domain patches are required on Samsung Nuri board, but might be optional on boards where bootloader doesn't disable all devices on boot.
[1] http://www.spinics.net/lists/linux-arch/msg17331.html [2] https://lkml.org/lkml/2012/3/15/51
Best regards Marek Szyprowski Samsung Poland R&D Center
Patch summary:
Marek Szyprowski (1): ARM: Exynos4: integrate SYSMMU driver with DMA-mapping interface
arch/arm/mach-exynos/Kconfig | 1 + arch/arm/mach-exynos/clock-exynos4.c | 64 +++++++++++++++------------- arch/arm/mach-exynos/dev-sysmmu.c | 44 +++++++++++++++++++ arch/arm/mach-exynos/include/mach/sysmmu.h | 3 + drivers/iommu/Kconfig | 1 + 5 files changed, 84 insertions(+), 29 deletions(-)