}
 
 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;
 
 }
 
 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;
 
 }
 
 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;
 
 }
 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;
 
 }
 
 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;
 
 }
 
 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;
 
 }
 
 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;
 
 }
 
 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;
 
 }
 
 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;
 
                   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);
                     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,
 {
 }
 
-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;
 }