iommu/msm: announce supported page sizes
authorOhad Ben-Cohen <ohad@wizery.com>
Thu, 10 Nov 2011 09:32:28 +0000 (11:32 +0200)
committerJoerg Roedel <joerg.roedel@amd.com>
Thu, 10 Nov 2011 10:40:37 +0000 (11:40 +0100)
Let the IOMMU core know we support 4KiB, 64KiB, 1MiB and 16MiB page sizes.

This way the IOMMU core can split any arbitrary-sized physically
contiguous regions (that it needs to map) as needed.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Acked-by: David Brown <davidb@codeaurora.org>
Cc: Stepan Moskovchenko <stepanm@codeaurora.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
drivers/iommu/msm_iommu.c

index 13718d9..08a90b8 100644 (file)
@@ -42,6 +42,9 @@ __asm__ __volatile__ (                                                        \
 #define RCP15_PRRR(reg)                MRC(reg, p15, 0, c10, c2, 0)
 #define RCP15_NMRR(reg)                MRC(reg, p15, 0, c10, c2, 1)
 
+/* bitmap of the page sizes currently supported */
+#define MSM_IOMMU_PGSIZES      (SZ_4K | SZ_64K | SZ_1M | SZ_16M)
+
 static int msm_iommu_tex_class[4];
 
 DEFINE_SPINLOCK(msm_iommu_lock);
@@ -679,7 +682,8 @@ static struct iommu_ops msm_iommu_ops = {
        .map = msm_iommu_map,
        .unmap = msm_iommu_unmap,
        .iova_to_phys = msm_iommu_iova_to_phys,
-       .domain_has_cap = msm_iommu_domain_has_cap
+       .domain_has_cap = msm_iommu_domain_has_cap,
+       .pgsize_bitmap = MSM_IOMMU_PGSIZES,
 };
 
 static int __init get_tex_class(int icp, int ocp, int mt, int nos)