iommu/omap: Use DMA-API for performing cache flushes
authorJosue Albarran <j-albarran@ti.com>
Fri, 28 Jul 2017 20:49:14 +0000 (15:49 -0500)
committerJoerg Roedel <jroedel@suse.de>
Fri, 4 Aug 2017 09:59:29 +0000 (11:59 +0200)
commitbfee0cf0ee1da0010b97ba88ed241d6f7bed3e7a
tree0eed00b75a37beb44c45082c9622db2de318271f
parent159d3e35da3b6ff36b9077a8719bcac215155771
iommu/omap: Use DMA-API for performing cache flushes

The OMAP IOMMU driver was using ARM assembly code directly for
flushing the MMU page table entries from the caches. This caused
MMU faults on OMAP4 (Cortex-A9 based SoCs) as L2 caches were not
handled due to the presence of a PL310 L2 Cache Controller. These
faults were however not seen on OMAP5/DRA7 SoCs (Cortex-A15 based
SoCs).

The OMAP IOMMU driver is adapted to use the DMA Streaming API
instead now to flush the page table/directory table entries from
the CPU caches. This ensures that the devices always see the
updated page table entries. The outer caches are now addressed
automatically with the usage of the DMA API.

Signed-off-by: Josue Albarran <j-albarran@ti.com>
Acked-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/omap-iommu.c
drivers/iommu/omap-iommu.h