diff options
author | Christoph Hellwig <hch@lst.de> | 2021-04-01 17:52:49 +0200 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2021-04-07 10:56:52 +0200 |
commit | 57fa44be7fdb0d8803ecf11886d41b5002eae8f2 (patch) | |
tree | bfcfe5c26f7539f36cfdaf37604de505d90b8f89 | |
parent | iommu/fsl_pamu: remove the rpn and snoop_id arguments to pamu_config_ppaac (diff) | |
download | linux-57fa44be7fdb0d8803ecf11886d41b5002eae8f2.tar.xz linux-57fa44be7fdb0d8803ecf11886d41b5002eae8f2.zip |
iommu/fsl_pamu: hardcode the window address and size in pamu_config_ppaace
The win_addr and win_size parameters are always set to 0 and 1 << 36
respectively, so just hard code them.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210401155256.298656-14-hch@lst.de
Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r-- | drivers/iommu/fsl_pamu.c | 23 | ||||
-rw-r--r-- | drivers/iommu/fsl_pamu.h | 3 | ||||
-rw-r--r-- | drivers/iommu/fsl_pamu_domain.c | 10 |
3 files changed, 7 insertions, 29 deletions
diff --git a/drivers/iommu/fsl_pamu.c b/drivers/iommu/fsl_pamu.c index 742fa0e8c45b..fc38b1fba7cf 100644 --- a/drivers/iommu/fsl_pamu.c +++ b/drivers/iommu/fsl_pamu.c @@ -178,8 +178,6 @@ int pamu_update_paace_stash(int liodn, u32 value) * pamu_config_paace() - Sets up PPAACE entry for specified liodn * * @liodn: Logical IO device number - * @win_addr: starting address of DSA window - * @win-size: size of DSA window * @omi: Operation mapping index -- if ~omi == 0 then omi not defined * @stashid: cache stash id for associated cpu -- if ~stashid == 0 then * stashid not defined @@ -187,35 +185,22 @@ int pamu_update_paace_stash(int liodn, u32 value) * * Returns 0 upon success else error code < 0 returned */ -int pamu_config_ppaace(int liodn, phys_addr_t win_addr, phys_addr_t win_size, - u32 omi, u32 stashid, int prot) +int pamu_config_ppaace(int liodn, u32 omi, u32 stashid, int prot) { struct paace *ppaace; - if ((win_size & (win_size - 1)) || win_size < PAMU_PAGE_SIZE) { - pr_debug("window size too small or not a power of two %pa\n", - &win_size); - return -EINVAL; - } - - if (win_addr & (win_size - 1)) { - pr_debug("window address is not aligned with window size\n"); - return -EINVAL; - } - ppaace = pamu_get_ppaace(liodn); if (!ppaace) return -ENOENT; /* window size is 2^(WSE+1) bytes */ set_bf(ppaace->addr_bitfields, PPAACE_AF_WSE, - map_addrspace_size_to_wse(win_size)); + map_addrspace_size_to_wse(1ULL << 36)); pamu_init_ppaace(ppaace); - ppaace->wbah = win_addr >> (PAMU_PAGE_SHIFT + 20); - set_bf(ppaace->addr_bitfields, PPAACE_AF_WBAL, - (win_addr >> PAMU_PAGE_SHIFT)); + ppaace->wbah = 0; + set_bf(ppaace->addr_bitfields, PPAACE_AF_WBAL, 0); /* set up operation mapping if it's configured */ if (omi < OME_NUMBER_ENTRIES) { diff --git a/drivers/iommu/fsl_pamu.h b/drivers/iommu/fsl_pamu.h index c96b29f0c707..36df7975ff64 100644 --- a/drivers/iommu/fsl_pamu.h +++ b/drivers/iommu/fsl_pamu.h @@ -383,8 +383,7 @@ struct ome { int pamu_domain_init(void); int pamu_enable_liodn(int liodn); int pamu_disable_liodn(int liodn); -int pamu_config_ppaace(int liodn, phys_addr_t win_addr, phys_addr_t win_size, - u32 omi, uint32_t stashid, int prot); +int pamu_config_ppaace(int liodn, u32 omi, uint32_t stashid, int prot); u32 get_stash_id(u32 stash_dest_hint, u32 vcpu); void get_ome_index(u32 *omi_index, struct device *dev); diff --git a/drivers/iommu/fsl_pamu_domain.c b/drivers/iommu/fsl_pamu_domain.c index c83f1e7c2cb0..32944d67baa4 100644 --- a/drivers/iommu/fsl_pamu_domain.c +++ b/drivers/iommu/fsl_pamu_domain.c @@ -78,8 +78,6 @@ static int update_liodn_stash(int liodn, struct fsl_dma_domain *dma_domain, static int pamu_set_liodn(struct fsl_dma_domain *dma_domain, struct device *dev, int liodn) { - struct iommu_domain *domain = &dma_domain->iommu_domain; - struct iommu_domain_geometry *geom = &domain->geometry; u32 omi_index = ~(u32)0; unsigned long flags; int ret; @@ -95,14 +93,10 @@ static int pamu_set_liodn(struct fsl_dma_domain *dma_domain, struct device *dev, ret = pamu_disable_liodn(liodn); if (ret) goto out_unlock; - ret = pamu_config_ppaace(liodn, geom->aperture_start, - geom->aperture_end + 1, omi_index, - dma_domain->stash_id, 0); + ret = pamu_config_ppaace(liodn, omi_index, dma_domain->stash_id, 0); if (ret) goto out_unlock; - ret = pamu_config_ppaace(liodn, geom->aperture_start, - geom->aperture_end + 1, ~(u32)0, - dma_domain->stash_id, + ret = pamu_config_ppaace(liodn, ~(u32)0, dma_domain->stash_id, PAACE_AP_PERMS_QUERY | PAACE_AP_PERMS_UPDATE); out_unlock: spin_unlock_irqrestore(&iommu_lock, flags); |