aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu
diff options
context:
space:
mode:
authorCho KyongHo <pullip.cho@samsung.com>2014-05-12 02:14:50 -0400
committerJoerg Roedel <jroedel@suse.de>2014-05-13 13:12:53 -0400
commit8f8fcf970e5866150af98233ae7ebf25ffe8cba7 (patch)
tree6731398b633a279e4fa22ff0198019e8953c7b4e /drivers/iommu
parent3ad6b7f3a41ba6bf4503be442802072ca9dc8336 (diff)
iommu/exynos: Remove prefetch buffer setting
Prefetch buffer is a cache of System MMU 3.x and caches a block of page table entries to make effect of larger page with small pages. However, how to control prefetch buffers and the specifications of prefetch buffers different from minor versions of System MMU v3. Prefetch buffers must be controled with care because there are some restrictions in H/W design. The interface and implementation to initiate prefetch buffers will be prepared later. Signed-off-by: Cho KyongHo <pullip.cho@samsung.com> Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu')
-rw-r--r--drivers/iommu/exynos-iommu.c14
1 files changed, 0 insertions, 14 deletions
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index 06fc70ee4389..4fc31fc6a49a 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -245,13 +245,6 @@ static void __sysmmu_set_ptbase(void __iomem *sfrbase,
245 __sysmmu_tlb_invalidate(sfrbase); 245 __sysmmu_tlb_invalidate(sfrbase);
246} 246}
247 247
248static void __sysmmu_set_prefbuf(void __iomem *sfrbase, unsigned long base,
249 unsigned long size, int idx)
250{
251 __raw_writel(base, sfrbase + REG_PB0_SADDR + idx * 8);
252 __raw_writel(size - 1 + base, sfrbase + REG_PB0_EADDR + idx * 8);
253}
254
255static void __set_fault_handler(struct sysmmu_drvdata *data, 248static void __set_fault_handler(struct sysmmu_drvdata *data,
256 sysmmu_fault_handler_t handler) 249 sysmmu_fault_handler_t handler)
257{ 250{
@@ -401,13 +394,6 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
401 data->pgtable = pgtable; 394 data->pgtable = pgtable;
402 395
403 __sysmmu_set_ptbase(data->sfrbase, pgtable); 396 __sysmmu_set_ptbase(data->sfrbase, pgtable);
404 if ((readl(data->sfrbase + REG_MMU_VERSION) >> 28) == 3) {
405 /* System MMU version is 3.x */
406 __raw_writel((1 << 12) | (2 << 28),
407 data->sfrbase + REG_MMU_CFG);
408 __sysmmu_set_prefbuf(data->sfrbase, 0, -1, 0);
409 __sysmmu_set_prefbuf(data->sfrbase, 0, -1, 1);
410 }
411 397
412 __raw_writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL); 398 __raw_writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL);
413 399