Skip to content

Commit cd37a29

Browse files
mszyprowjoergroedel
authored andcommitted
iommu/exynos: Workaround FLPD cache flush issues for SYSMMU v5
For some unknown reasons, in some cases, FLPD cache invalidation doesn't work properly with SYSMMU v5 controllers found in Exynos5433 SoCs. This can be observed by a firmware crash during initialization phase of MFC video decoder available in the mentioned SoCs when IOMMU support is enabled. To workaround this issue perform a full TLB/FLPD invalidation in case of replacing any first level page descriptors in case of SYSMMU v5. Fixes: 740a01e ("iommu/exynos: Add support for v5 SYSMMU") CC: stable@vger.kernel.org # v4.10+ Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Tested-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
1 parent 7d2aa6b commit cd37a29

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/iommu/exynos-iommu.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,10 @@ static void sysmmu_tlb_invalidate_flpdcache(struct sysmmu_drvdata *data,
513513
if (data->active && data->version >= MAKE_MMU_VER(3, 3)) {
514514
clk_enable(data->clk_master);
515515
if (sysmmu_block(data)) {
516-
__sysmmu_tlb_invalidate_entry(data, iova, 1);
516+
if (data->version >= MAKE_MMU_VER(5, 0))
517+
__sysmmu_tlb_invalidate(data);
518+
else
519+
__sysmmu_tlb_invalidate_entry(data, iova, 1);
517520
sysmmu_unblock(data);
518521
}
519522
clk_disable(data->clk_master);

0 commit comments

Comments
 (0)