Skip to content

Commit 634f57d

Browse files
YongWu-HFjoergroedel
authored andcommitted
iommu/mediatek: Just move code position in hw_init
No functional change too, prepare for mt8195 IOMMU support bank functions. Some global control settings are in bank0 while the other banks have their bank independent setting. Here only move the global control settings and the independent registers together. 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-26-yong.wu@mediatek.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
1 parent 887cf6a commit 634f57d

1 file changed

Lines changed: 24 additions & 24 deletions

File tree

drivers/iommu/mtk_iommu.c

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -803,30 +803,6 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
803803
}
804804
writel_relaxed(regval, data->base + REG_MMU_CTRL_REG);
805805

806-
regval = F_L2_MULIT_HIT_EN |
807-
F_TABLE_WALK_FAULT_INT_EN |
808-
F_PREETCH_FIFO_OVERFLOW_INT_EN |
809-
F_MISS_FIFO_OVERFLOW_INT_EN |
810-
F_PREFETCH_FIFO_ERR_INT_EN |
811-
F_MISS_FIFO_ERR_INT_EN;
812-
writel_relaxed(regval, data->base + REG_MMU_INT_CONTROL0);
813-
814-
regval = F_INT_TRANSLATION_FAULT |
815-
F_INT_MAIN_MULTI_HIT_FAULT |
816-
F_INT_INVALID_PA_FAULT |
817-
F_INT_ENTRY_REPLACEMENT_FAULT |
818-
F_INT_TLB_MISS_FAULT |
819-
F_INT_MISS_TRANSACTION_FIFO_FAULT |
820-
F_INT_PRETETCH_TRANSATION_FIFO_FAULT;
821-
writel_relaxed(regval, data->base + REG_MMU_INT_MAIN_CONTROL);
822-
823-
if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_LEGACY_IVRP_PADDR))
824-
regval = (data->protect_base >> 1) | (data->enable_4GB << 31);
825-
else
826-
regval = lower_32_bits(data->protect_base) |
827-
upper_32_bits(data->protect_base);
828-
writel_relaxed(regval, data->base + REG_MMU_IVRP_PADDR);
829-
830806
if (data->enable_4GB &&
831807
MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_VLD_PA_RNG)) {
832808
/*
@@ -860,6 +836,30 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
860836
}
861837
writel_relaxed(regval, data->base + REG_MMU_MISC_CTRL);
862838

839+
regval = F_L2_MULIT_HIT_EN |
840+
F_TABLE_WALK_FAULT_INT_EN |
841+
F_PREETCH_FIFO_OVERFLOW_INT_EN |
842+
F_MISS_FIFO_OVERFLOW_INT_EN |
843+
F_PREFETCH_FIFO_ERR_INT_EN |
844+
F_MISS_FIFO_ERR_INT_EN;
845+
writel_relaxed(regval, data->base + REG_MMU_INT_CONTROL0);
846+
847+
regval = F_INT_TRANSLATION_FAULT |
848+
F_INT_MAIN_MULTI_HIT_FAULT |
849+
F_INT_INVALID_PA_FAULT |
850+
F_INT_ENTRY_REPLACEMENT_FAULT |
851+
F_INT_TLB_MISS_FAULT |
852+
F_INT_MISS_TRANSACTION_FIFO_FAULT |
853+
F_INT_PRETETCH_TRANSATION_FIFO_FAULT;
854+
writel_relaxed(regval, data->base + REG_MMU_INT_MAIN_CONTROL);
855+
856+
if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_LEGACY_IVRP_PADDR))
857+
regval = (data->protect_base >> 1) | (data->enable_4GB << 31);
858+
else
859+
regval = lower_32_bits(data->protect_base) |
860+
upper_32_bits(data->protect_base);
861+
writel_relaxed(regval, data->base + REG_MMU_IVRP_PADDR);
862+
863863
if (devm_request_irq(data->dev, data->irq, mtk_iommu_isr, 0,
864864
dev_name(data->dev), (void *)data)) {
865865
writel_relaxed(0, data->base + REG_MMU_PT_BASE_ADDR);

0 commit comments

Comments
 (0)