iommu/fsl: Make iova dma_addr_t in the iommu_iova_to_phys API.
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>
This commit is contained in:
parent
07961ac7c0
commit
bb5547acfc
10 changed files with 12 additions and 16 deletions
|
@ -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,
|
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;
|
struct protection_domain *domain = dom->priv;
|
||||||
unsigned long offset_mask;
|
unsigned long offset_mask;
|
||||||
|
|
|
@ -1027,7 +1027,7 @@ done:
|
||||||
}
|
}
|
||||||
|
|
||||||
static phys_addr_t exynos_iommu_iova_to_phys(struct iommu_domain *domain,
|
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;
|
struct exynos_iommu_domain *priv = domain->priv;
|
||||||
unsigned long *entry;
|
unsigned long *entry;
|
||||||
|
|
|
@ -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,
|
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 dmar_domain *dmar_domain = domain->priv;
|
||||||
struct dma_pte *pte;
|
struct dma_pte *pte;
|
||||||
|
|
|
@ -706,8 +706,7 @@ void iommu_detach_group(struct iommu_domain *domain, struct iommu_group *group)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(iommu_detach_group);
|
EXPORT_SYMBOL_GPL(iommu_detach_group);
|
||||||
|
|
||||||
phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
|
phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
|
||||||
unsigned long iova)
|
|
||||||
{
|
{
|
||||||
if (unlikely(domain->ops->iova_to_phys == NULL))
|
if (unlikely(domain->ops->iova_to_phys == NULL))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -554,7 +554,7 @@ fail:
|
||||||
}
|
}
|
||||||
|
|
||||||
static phys_addr_t msm_iommu_iova_to_phys(struct iommu_domain *domain,
|
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_priv *priv;
|
||||||
struct msm_iommu_drvdata *iommu_drvdata;
|
struct msm_iommu_drvdata *iommu_drvdata;
|
||||||
|
|
|
@ -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,
|
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_domain *omap_domain = domain->priv;
|
||||||
struct omap_iommu *oiommu = omap_domain->iommu_dev;
|
struct omap_iommu *oiommu = omap_domain->iommu_dev;
|
||||||
|
|
|
@ -296,7 +296,7 @@ done:
|
||||||
}
|
}
|
||||||
|
|
||||||
static phys_addr_t shmobile_iommu_iova_to_phys(struct iommu_domain *domain,
|
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;
|
struct shmobile_iommu_domain *sh_domain = domain->priv;
|
||||||
uint32_t l1entry = 0, l2entry = 0;
|
uint32_t l1entry = 0, l2entry = 0;
|
||||||
|
|
|
@ -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,
|
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;
|
struct gart_device *gart = domain->priv;
|
||||||
unsigned long pte;
|
unsigned long pte;
|
||||||
|
|
|
@ -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,
|
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;
|
struct smmu_as *as = domain->priv;
|
||||||
unsigned long *pte;
|
unsigned long *pte;
|
||||||
|
|
|
@ -91,8 +91,7 @@ struct iommu_ops {
|
||||||
phys_addr_t paddr, size_t size, int prot);
|
phys_addr_t paddr, size_t size, int prot);
|
||||||
size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
|
size_t (*unmap)(struct iommu_domain *domain, unsigned long iova,
|
||||||
size_t size);
|
size_t size);
|
||||||
phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
|
phys_addr_t (*iova_to_phys)(struct iommu_domain *domain, dma_addr_t iova);
|
||||||
unsigned long iova);
|
|
||||||
int (*domain_has_cap)(struct iommu_domain *domain,
|
int (*domain_has_cap)(struct iommu_domain *domain,
|
||||||
unsigned long cap);
|
unsigned long cap);
|
||||||
int (*add_device)(struct device *dev);
|
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);
|
phys_addr_t paddr, size_t size, int prot);
|
||||||
extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
|
extern size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova,
|
||||||
size_t size);
|
size_t size);
|
||||||
extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
|
extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova);
|
||||||
unsigned long iova);
|
|
||||||
extern int iommu_domain_has_cap(struct iommu_domain *domain,
|
extern int iommu_domain_has_cap(struct iommu_domain *domain,
|
||||||
unsigned long cap);
|
unsigned long cap);
|
||||||
extern void iommu_set_fault_handler(struct iommu_domain *domain,
|
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,
|
static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
|
||||||
unsigned long iova)
|
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue