Those prot bits aren't needed for Hikey970's GPU code, and depends
on some patch not on upstream.

So, get rid of them.

Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>
---
 drivers/staging/hikey9xx/hisi_smmu_lpae.c | 41 +++++++++--------------
 1 file changed, 15 insertions(+), 26 deletions(-)

diff --git a/drivers/staging/hikey9xx/hisi_smmu_lpae.c 
b/drivers/staging/hikey9xx/hisi_smmu_lpae.c
index 5fdd91a6aa8e..9dae0a3067b6 100644
--- a/drivers/staging/hikey9xx/hisi_smmu_lpae.c
+++ b/drivers/staging/hikey9xx/hisi_smmu_lpae.c
@@ -205,9 +205,6 @@ static int hisi_smmu_alloc_init_pte_lpae(smmu_pmd_t *ppmd,
        }
 
 pte_ready:
-       if (prot & IOMMU_SEC)
-               *ppmd &= (~SMMU_PMD_NS);
-
        start = (smmu_pte_t *)smmu_pte_page_vaddr_lpae(ppmd)
                + smmu_pte_index(addr);
        pte = start;
@@ -215,30 +212,24 @@ static int hisi_smmu_alloc_init_pte_lpae(smmu_pmd_t *ppmd,
                pteval |= SMMU_PROT_NORMAL;
                pteval |= SMMU_PTE_NS;
        } else {
-               if (prot & IOMMU_DEVICE) {
-                       pteval |= SMMU_PROT_DEVICE_nGnRE;
-               } else {
-                       if (prot & IOMMU_CACHE)
-                               pteval |= SMMU_PROT_NORMAL_CACHE;
-                       else
-                               pteval |= SMMU_PROT_NORMAL_NC;
+               if (prot & IOMMU_CACHE)
+                       pteval |= SMMU_PROT_NORMAL_CACHE;
+               else
+                       pteval |= SMMU_PROT_NORMAL_NC;
 
-                       if ((prot & IOMMU_READ) && (prot & IOMMU_WRITE))
-                               pteval |= SMMU_PAGE_READWRITE;
-                       else if ((prot & IOMMU_READ) && !(prot & IOMMU_WRITE))
-                               pteval |= SMMU_PAGE_READONLY;
-                       else
-                               WARN_ON("you do not set read attribute!");
+               if ((prot & IOMMU_READ) && (prot & IOMMU_WRITE))
+                       pteval |= SMMU_PAGE_READWRITE;
+               else if ((prot & IOMMU_READ) && !(prot & IOMMU_WRITE))
+                       pteval |= SMMU_PAGE_READONLY;
+               else
+                       WARN_ON("you do not set read attribute!");
 
-                       if (prot & IOMMU_EXEC) {
-                               pteval |= SMMU_PAGE_READONLY_EXEC;
-                               pteval &= ~(SMMU_PTE_PXN | SMMU_PTE_UXN);
-                       }
+               if (!(prot & IOMMU_NOEXEC)) {
+                       pteval |= SMMU_PAGE_READONLY_EXEC;
+                       pteval &= ~(SMMU_PTE_PXN | SMMU_PTE_UXN);
                }
-               if (prot & IOMMU_SEC)
-                       pteval &= (~SMMU_PTE_NS);
-               else
-                       pteval |= SMMU_PTE_NS;
+
+               pteval |= SMMU_PTE_NS;
        }
 
        do {
@@ -287,8 +278,6 @@ static int hisi_smmu_alloc_init_pmd_lpae(smmu_pgd_t *ppgd,
        }
 
 pmd_ready:
-       if (prot & IOMMU_SEC)
-               *ppgd &= (~SMMU_PGD_NS);
        start = (smmu_pmd_t *)smmu_pmd_page_vaddr_lpae(ppgd)
                + smmu_pmd_index(addr);
        ppmd = start;
-- 
2.26.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to