iommu/fsl_pamu: hardcode the window address and size in pamu_config_ppaace
authorChristoph Hellwig <hch@lst.de>
Thu, 1 Apr 2021 15:52:49 +0000 (17:52 +0200)
committerJoerg Roedel <jroedel@suse.de>
Wed, 7 Apr 2021 08:56:52 +0000 (10:56 +0200)
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>
drivers/iommu/fsl_pamu.c
drivers/iommu/fsl_pamu.h
drivers/iommu/fsl_pamu_domain.c

index 742fa0e8c45b88d4e84dde43a420a5847a2aa95e..fc38b1fba7cff0a72f4c5a23b76f56a6c2d063dd 100644 (file)
@@ -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) {
index c96b29f0c7077fa9b8b89768b36db6f64be4b904..36df7975ff64d34a81df88eb2615cefa7f0767d2 100644 (file)
@@ -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);
index c83f1e7c2cb0c96c09287ce45c204eaa824c7d44..32944d67baa49503515cbd4f9dc8470d36ff66eb 100644 (file)
@@ -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);