iommu/mediatek: Add 12G~16G support for multi domains
authorYong Wu <yong.wu@mediatek.com>
Tue, 3 May 2022 07:14:01 +0000 (15:14 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 4 May 2022 08:39:38 +0000 (10:39 +0200)
In mt8192, we preassign 0-4G; 4G-8G; 8G-12G for different multimedia
engines. This depends on the "dma-ranges=" in the iommu consumer's dtsi
node.

Adds 12G-16G region here. and reword the previous comment. we don't limit
which master locate in which region.

CCU still is 8G-12G. Don't change it here.

Signed-off-by: Yong Wu <yong.wu@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://lore.kernel.org/r/20220503071427.2285-11-yong.wu@mediatek.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/mtk_iommu.c

index 1b8e4405dd0f25fb157b6493267eefb1ac7bbc17..d91a0c1385363f3f4ac14f227d6a4d94ea2e9e37 100644 (file)
@@ -180,10 +180,12 @@ static const struct mtk_iommu_iova_region single_domain[] = {
 };
 
 static const struct mtk_iommu_iova_region mt8192_multi_dom[] = {
-       { .iova_base = 0x0,             .size = SZ_4G},         /* disp: 0 ~ 4G */
+       { .iova_base = 0x0,             .size = SZ_4G},         /* 0 ~ 4G */
        #if IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT)
-       { .iova_base = SZ_4G,           .size = SZ_4G},         /* vdec: 4G ~ 8G */
-       { .iova_base = SZ_4G * 2,       .size = SZ_4G},         /* CAM/MDP: 8G ~ 12G */
+       { .iova_base = SZ_4G,           .size = SZ_4G},         /* 4G ~ 8G */
+       { .iova_base = SZ_4G * 2,       .size = SZ_4G},         /* 8G ~ 12G */
+       { .iova_base = SZ_4G * 3,       .size = SZ_4G},         /* 12G ~ 16G */
+
        { .iova_base = 0x240000000ULL,  .size = 0x4000000},     /* CCU0 */
        { .iova_base = 0x244000000ULL,  .size = 0x4000000},     /* CCU1 */
        #endif