iommu/omap: Fix disabling of MMU upon a fault
authorFernando Guzman Lugo <fernando.lugo@ti.com>
Fri, 28 Jul 2017 20:49:13 +0000 (15:49 -0500)
committerJoerg Roedel <jroedel@suse.de>
Fri, 4 Aug 2017 09:59:29 +0000 (11:59 +0200)
commit159d3e35da3b6ff36b9077a8719bcac215155771
treea9e64a28a34b8b51e56fe3e842e4c368b32ddae7
parent16f73eb02d7e1765ccab3d2018e0bd98eb93d973
iommu/omap: Fix disabling of MMU upon a fault

The IOMMU framework lets its client users be notified on a
MMU fault and allows them to either handle the interrupt by
dynamic reloading of an appropriate TLB/PTE for the offending
fault address or to completely restart/recovery the device
and its IOMMU.

The OMAP remoteproc driver performs the latter option, and
does so after unwinding the previous mappings. The OMAP IOMMU
fault handler however disables the MMU and cuts off the clock
upon a MMU fault at present, resulting in an interconnect abort
during any subsequent operation that touches the MMU registers.

So, disable the IP-level fault interrupts instead of disabling
the MMU, to allow continued MMU register operations as well as
to avoid getting interrupted again.

Signed-off-by: Fernando Guzman Lugo <fernando.lugo@ti.com>
[s-anna@ti.com: add commit description]
Signed-off-by: Suman Anna <s-anna@ti.com>
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