iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API.
authorVarun Sethi <Varun.Sethi@freescale.com>
Thu, 28 Mar 2013 19:53:58 +0000 (01:23 +0530)
committerJoerg Roedel <joro@8bytes.org>
Tue, 2 Apr 2013 16:20:53 +0000 (18:20 +0200)
This is required in case of PAMU, as it can support a window size of up
to 64G (even on 32bit).

Signed-off-by: Varun Sethi <Varun.Sethi@freescale.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
drivers/iommu/amd_iommu.c
drivers/iommu/exynos-iommu.c
drivers/iommu/intel-iommu.c
drivers/iommu/iommu.c
drivers/iommu/msm_iommu.c
drivers/iommu/omap-iommu.c
drivers/iommu/shmobile-iommu.c
drivers/iommu/tegra-gart.c
drivers/iommu/tegra-smmu.c
include/linux/iommu.h

index b287ca33833df792350baad6f82fefbe1494e038..a7f6b04eaa5e6dca676e13b386716ea6a97a28a7 100644 (file)
@@ -3410,7 +3410,7 @@ static size_t amd_iommu_unmap(struct iommu_domain *dom, unsigned long iova,
 }
 
 static phys_addr_t amd_iommu_iova_to_phys(struct iommu_domain *dom,
-                                         unsigned long iova)
+                                         dma_addr_t iova)
 {
        struct protection_domain *domain = dom->priv;
        unsigned long offset_mask;
index 238a3caa949aff42981feaa22aae04227d85998b..3f32d64ab87a4f98f910212b1f1a8a8d66d99b5f 100644 (file)
@@ -1027,7 +1027,7 @@ done:
 }
 
 static phys_addr_t exynos_iommu_iova_to_phys(struct iommu_domain *domain,
-                                         unsigned long iova)
+                                         dma_addr_t iova)
 {
        struct exynos_iommu_domain *priv = domain->priv;
        unsigned long *entry;
index 0099667a397efb3d11edfd582eb4aa4fa3c78009..6e0b9ffc79b51bb24ebf687b236543d100f5ff62 100644 (file)
@@ -4111,7 +4111,7 @@ static size_t intel_iommu_unmap(struct iommu_domain *domain,
 }
 
 static phys_addr_t intel_iommu_iova_to_phys(struct iommu_domain *domain,
-                                           unsigned long iova)
+                                           dma_addr_t iova)
 {
        struct dmar_domain *dmar_domain = domain->priv;
        struct dma_pte *pte;
index b972d430d92b946eb16e98a41a2e23441b17f93e..f730ed9d8af9472f67149814ffe7fbb2a204a43b 100644 (file)
@@ -706,8 +706,7 @@ void iommu_detach_group(struct iommu_domain *domain, struct iommu_group *group)
 }
 EXPORT_SYMBOL_GPL(iommu_detach_group);
 
-phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
-                              unsigned long iova)
+phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
 {
        if (unlikely(domain->ops->iova_to_phys == NULL))
                return 0;
index 6a8870a31668e925e3071b4882a417cb1c231d80..8ab4f41090af70273678e978027c261e4ef46065 100644 (file)
@@ -554,7 +554,7 @@ fail:
 }
 
 static phys_addr_t msm_iommu_iova_to_phys(struct iommu_domain *domain,
-                                         unsigned long va)
+                                         dma_addr_t va)
 {
        struct msm_priv *priv;
        struct msm_iommu_drvdata *iommu_drvdata;
index 6ac02fa5910f13748e751c5a3266aa0c8273d89e..e02e5d71745b45385449a9a3bb9ebf0540c36d64 100644 (file)
@@ -1219,7 +1219,7 @@ static void omap_iommu_domain_destroy(struct iommu_domain *domain)
 }
 
 static phys_addr_t omap_iommu_iova_to_phys(struct iommu_domain *domain,
-                                         unsigned long da)
+                                         dma_addr_t da)
 {
        struct omap_iommu_domain *omap_domain = domain->priv;
        struct omap_iommu *oiommu = omap_domain->iommu_dev;
index b6e8b57cf0a8f0f166645cbf4143d3fa01c55a30..d572863dfccd47d767aed86cfe9a04e155c0233a 100644 (file)
@@ -296,7 +296,7 @@ done:
 }
 
 static phys_addr_t shmobile_iommu_iova_to_phys(struct iommu_domain *domain,
-                                              unsigned long iova)
+                                              dma_addr_t iova)
 {
        struct shmobile_iommu_domain *sh_domain = domain->priv;
        uint32_t l1entry = 0, l2entry = 0;
index 86437575f94de42fdaca04d91db82a0a434a0b42..4aec8be38054a50e6bf6846a0cd181f9dcc0db30 100644 (file)
@@ -279,7 +279,7 @@ static size_t gart_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
 }
 
 static phys_addr_t gart_iommu_iova_to_phys(struct iommu_domain *domain,
-                                          unsigned long iova)
+                                          dma_addr_t iova)
 {
        struct gart_device *gart = domain->priv;
        unsigned long pte;
index b34e5fd7fd9e0d688413c24bd6bd8a8f5c1d5c64..bc9b59949d09b16e46f08de4f294f056dbc350ac 100644 (file)
@@ -757,7 +757,7 @@ static size_t smmu_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
 }
 
 static phys_addr_t smmu_iommu_iova_to_phys(struct iommu_domain *domain,
-                                          unsigned long iova)
+                                          dma_addr_t iova)
 {
        struct smmu_as *as = domain->priv;
        unsigned long *pte;
index ba3b8a98a0499abcb4b24eff5d8e1201c2215d4e..bb0a0fc2672981915427d598e6e1a671e29520ee 100644 (file)
@@ -91,8 +91,7 @@ struct iommu_ops {
                   phys_addr_t paddr, size_t size, int prot);
        size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
                     size_t size);
-       phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
-                                   unsigned long iova);
+       phys_addr_t (*iova_to_phys)(struct iommu_domain *domain, dma_addr_t iova);
        int (*domain_has_cap)(struct iommu_domain *domain,
                              unsigned long cap);
        int (*add_device)(struct device *dev);
@@ -134,8 +133,7 @@ extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
                     phys_addr_t paddr, size_t size, int prot);
 extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
                       size_t size);
-extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
-                                     unsigned long iova);
+extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova);
 extern int iommu_domain_has_cap(struct iommu_domain *domain,
                                unsigned long cap);
 extern void iommu_set_fault_handler(struct iommu_domain *domain,
@@ -267,8 +265,7 @@ static inline void iommu_domain_window_disable(struct iommu_domain *domain,
 {
 }
 
-static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
-                                            unsigned long iova)
+static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
 {
        return 0;
 }