From patchwork Mon Feb 29 12:42:57 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Szyprowski X-Patchwork-Id: 63211 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp1224760lbc; Mon, 29 Feb 2016 04:45:13 -0800 (PST) X-Received: by 10.66.217.230 with SMTP id pb6mr21853314pac.63.1456749912415; Mon, 29 Feb 2016 04:45:12 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ss1si24037027pab.18.2016.02.29.04.45.12; Mon, 29 Feb 2016 04:45:12 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-samsung-soc-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-samsung-soc-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755031AbcB2MnM (ORCPT + 4 others); Mon, 29 Feb 2016 07:43:12 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:26041 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754751AbcB2MnF (ORCPT ); Mon, 29 Feb 2016 07:43:05 -0500 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O3B00C8V7BQE600@mailout4.w1.samsung.com> for linux-samsung-soc@vger.kernel.org; Mon, 29 Feb 2016 12:43:02 +0000 (GMT) X-AuditID: cbfec7f4-f79026d00000418a-48-56d43cd6da68 Received: from eusync2.samsung.com ( [203.254.199.212]) by eucpsbgm1.samsung.com (EUCPMTA) with SMTP id 6C.87.16778.6DC34D65; Mon, 29 Feb 2016 12:43:02 +0000 (GMT) Received: from amdc1339.digital.local ([106.116.147.30]) by eusync2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0O3B00I1E7BNEY90@eusync2.samsung.com>; Mon, 29 Feb 2016 12:43:02 +0000 (GMT) From: Marek Szyprowski To: iommu@lists.linux-foundation.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Marek Szyprowski , Joerg Roedel , Inki Dae , Kukjin Kim , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Arnd Bergmann Subject: [PATCH] iommu/exynos: Use proper readl/writel register interface Date: Mon, 29 Feb 2016 13:42:57 +0100 Message-id: <1456749777-8998-1-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.2 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprELMWRmVeSWpSXmKPExsVy+t/xK7rXbK6EGSyaIWTxd9IxdouNM9az Wky6P4HFYsF+a4vO2RvYLV6/MLTof/ya2WLT42usFjPO72OyWHvkLrsDl8eTg/OYPH7/msTo sWlVJ5vH5iX1HpNvLGf06NuyitHj8ya5APYoLpuU1JzMstQifbsEroy/X/4yF/zTqJj3ZiNz A2ObUhcjJ4eEgInEuatbWCBsMYkL99azdTFycQgJLGWUeLj+ATOE08Qk8erLH0aQKjYBQ4mu t11sILaIQL7Ei71/WUCKmAVmM0n8b5wG1MHBISzgKTFhdwBIDYuAqsT/E8eYQWxeAXeJR2fX skNsk5P4/3IF0wRG7gWMDKsYRVNLkwuKk9JzDfWKE3OLS/PS9ZLzczcxQkLqyw7GxcesDjEK cDAq8fC+0LwcJsSaWFZcmXuIUYKDWUmEN93sSpgQb0piZVVqUX58UWlOavEhRmkOFiVx3rm7 3ocICaQnlqRmp6YWpBbBZJk4OKUaGO0u3flaGOq2lXGWRuzxfSunzf5/f3XPtcl+h5Wzj1hJ +djFdwVqxHCE3X/LfHv/lSOn3TxcvtzcX8L5/9/dn40zpuiae3Yb+UhevlwvtjRKYJfBEsPl pzSm6rjuDrz8jeNwWud7R1kLxXf7Frimy69jdYtrvDzhh98LxVbfCx+/hl490DFZ9LkSS3FG oqEWc1FxIgAAKDjMJQIAAA== Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org Drivers should use generic readl/writel calls to access HW registers, so replace all __raw_readl/writel with generic version. Suggested-by: Arnd Bergmann Signed-off-by: Marek Szyprowski --- drivers/iommu/exynos-iommu.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) -- 1.9.2 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Acked-by: Arnd Bergmann diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index b066504..20fe443 100644 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c @@ -268,18 +268,18 @@ static bool is_sysmmu_active(struct sysmmu_drvdata *data) static void sysmmu_unblock(struct sysmmu_drvdata *data) { - __raw_writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL); + writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL); } static bool sysmmu_block(struct sysmmu_drvdata *data) { int i = 120; - __raw_writel(CTRL_BLOCK, data->sfrbase + REG_MMU_CTRL); - while ((i > 0) && !(__raw_readl(data->sfrbase + REG_MMU_STATUS) & 1)) + writel(CTRL_BLOCK, data->sfrbase + REG_MMU_CTRL); + while ((i > 0) && !(readl(data->sfrbase + REG_MMU_STATUS) & 1)) --i; - if (!(__raw_readl(data->sfrbase + REG_MMU_STATUS) & 1)) { + if (!(readl(data->sfrbase + REG_MMU_STATUS) & 1)) { sysmmu_unblock(data); return false; } @@ -290,9 +290,9 @@ static bool sysmmu_block(struct sysmmu_drvdata *data) static void __sysmmu_tlb_invalidate(struct sysmmu_drvdata *data) { if (MMU_MAJ_VER(data->version) < 5) - __raw_writel(0x1, data->sfrbase + REG_MMU_FLUSH); + writel(0x1, data->sfrbase + REG_MMU_FLUSH); else - __raw_writel(0x1, data->sfrbase + REG_V5_MMU_FLUSH_ALL); + writel(0x1, data->sfrbase + REG_V5_MMU_FLUSH_ALL); } static void __sysmmu_tlb_invalidate_entry(struct sysmmu_drvdata *data, @@ -302,10 +302,10 @@ static void __sysmmu_tlb_invalidate_entry(struct sysmmu_drvdata *data, for (i = 0; i < num_inv; i++) { if (MMU_MAJ_VER(data->version) < 5) - __raw_writel((iova & SPAGE_MASK) | 1, + writel((iova & SPAGE_MASK) | 1, data->sfrbase + REG_MMU_FLUSH_ENTRY); else - __raw_writel((iova & SPAGE_MASK) | 1, + writel((iova & SPAGE_MASK) | 1, data->sfrbase + REG_V5_MMU_FLUSH_ENTRY); iova += SPAGE_SIZE; } @@ -314,9 +314,9 @@ static void __sysmmu_tlb_invalidate_entry(struct sysmmu_drvdata *data, static void __sysmmu_set_ptbase(struct sysmmu_drvdata *data, phys_addr_t pgd) { if (MMU_MAJ_VER(data->version) < 5) - __raw_writel(pgd, data->sfrbase + REG_PT_BASE_ADDR); + writel(pgd, data->sfrbase + REG_PT_BASE_ADDR); else - __raw_writel(pgd >> PAGE_SHIFT, + writel(pgd >> PAGE_SHIFT, data->sfrbase + REG_V5_PT_BASE_PFN); __sysmmu_tlb_invalidate(data); @@ -331,7 +331,7 @@ static void __sysmmu_get_version(struct sysmmu_drvdata *data) clk_enable(data->pclk); clk_enable(data->aclk); - ver = __raw_readl(data->sfrbase + REG_MMU_VERSION); + ver = readl(data->sfrbase + REG_MMU_VERSION); /* controllers on some SoCs don't report proper version */ if (ver == 0x80000001u) @@ -392,7 +392,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id) clk_enable(data->clk_master); - itype = __ffs(__raw_readl(data->sfrbase + reg_status)); + itype = __ffs(readl(data->sfrbase + reg_status)); for (i = 0; i < n; i++, finfo++) if (finfo->bit == itype) break; @@ -400,7 +400,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id) BUG_ON(i == n); /* print debug message */ - fault_addr = __raw_readl(data->sfrbase + finfo->addr_reg); + fault_addr = readl(data->sfrbase + finfo->addr_reg); show_fault_information(data, finfo, fault_addr); if (data->domain) @@ -409,7 +409,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id) /* fault is not recovered by fault handler */ BUG_ON(ret != 0); - __raw_writel(1 << itype, data->sfrbase + reg_clear); + writel(1 << itype, data->sfrbase + reg_clear); sysmmu_unblock(data); @@ -424,8 +424,8 @@ static void __sysmmu_disable_nocount(struct sysmmu_drvdata *data) { clk_enable(data->clk_master); - __raw_writel(CTRL_DISABLE, data->sfrbase + REG_MMU_CTRL); - __raw_writel(0, data->sfrbase + REG_MMU_CFG); + writel(CTRL_DISABLE, data->sfrbase + REG_MMU_CTRL); + writel(0, data->sfrbase + REG_MMU_CFG); clk_disable(data->aclk); clk_disable(data->pclk); @@ -470,7 +470,7 @@ static void __sysmmu_init_config(struct sysmmu_drvdata *data) else cfg = CFG_QOS(15) | CFG_FLPDCACHE | CFG_ACGEN; - __raw_writel(cfg, data->sfrbase + REG_MMU_CFG); + writel(cfg, data->sfrbase + REG_MMU_CFG); } static void __sysmmu_enable_nocount(struct sysmmu_drvdata *data) @@ -480,13 +480,13 @@ static void __sysmmu_enable_nocount(struct sysmmu_drvdata *data) clk_enable(data->pclk); clk_enable(data->aclk); - __raw_writel(CTRL_BLOCK, data->sfrbase + REG_MMU_CTRL); + writel(CTRL_BLOCK, data->sfrbase + REG_MMU_CTRL); __sysmmu_init_config(data); __sysmmu_set_ptbase(data, data->pgtable); - __raw_writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL); + writel(CTRL_ENABLE, data->sfrbase + REG_MMU_CTRL); clk_disable(data->clk_master); }