omap: iommu-load cam register before flushing the entry

The flush_iotlb_page is not loading the cam register before flushing
the cam entry. This causes wrong entry to be flushed out from the TLB, and
if the entry happens to be a locked TLB entry it would lead to MMU faults.

The fix is to load the cam register with the address to be flushed before
flushing the TLB entry.

Signed-off-by: Hari Kanigeri <h-kanigeri2@ti.com>
Acked-by: Hiroshi DOYU <Hiroshi.DOYU@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>

authored by Hari Kanigeri and committed by Tony Lindgren 0fa035e5 3c729087

+1
+1
arch/arm/plat-omap/iommu.c
··· 320 if ((start <= da) && (da < start + bytes)) { 321 dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n", 322 __func__, start, da, bytes); 323 iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY); 324 } 325 }
··· 320 if ((start <= da) && (da < start + bytes)) { 321 dev_dbg(obj->dev, "%s: %08x<=%08x(%x)\n", 322 __func__, start, da, bytes); 323 + iotlb_load_cr(obj, &cr); 324 iommu_write_reg(obj, 1, MMU_FLUSH_ENTRY); 325 } 326 }