Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4928785pxv; Tue, 29 Jun 2021 20:32:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJykyKa448M8URb1oZH5XIDlvwYd6ICDsMPXkAQOBgV3jHSmV9LzWSMPUJcsrl5ZvA++LGKb X-Received: by 2002:aa7:c1da:: with SMTP id d26mr43412274edp.278.1625023949481; Tue, 29 Jun 2021 20:32:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625023949; cv=none; d=google.com; s=arc-20160816; b=XFIxWsxzy9Hf2VG4Zp0gi7QKBL56f/Ixa7y9pV05MVqmnjyfEtz6RFYeyCxT+mG3wp D7Eny7MKZbyYrmfTij1ZvlBpsUGY7LBkj4x05JLMckk2PWMIZ/CYqlwadU985lm+OCiu h75I04SY+XeoaItLZ/u/HjcEy9KnNFTAJMgEPkDRBurF/CcL1jZnbrx2IeiWYoYQdOwO ncbEgJUxJ3jkybMdPmBoAAELYXJaDX+VqyamxPYFecwp/+FISfBMVkmo8r+OFVgJhjXt 1rfZMoAmt0Wdzpg7Uw8fps27CwWHimEGJ9TtZr1jTz33mbbGI+WziWUIDBMqhrLTCW/p pKoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=HynLwb24q3L6pT5zv/+9MTt2xpG/GqUst2CT0U/2VsA=; b=ykY4ger84bo56m2w9ZXwFSzm7REPmKYfv3c2BKOI7ACLSuqQ3PgjkoIuX79OwrDrSs ogwyx3WHXHlUWrRhvI9h5AtVxteoD87YWYFHxg4NchZOw50CXxCsXQ22WmXezNi2RbMK Zjkrbsrr6nrOKKEyOSVQFvZtmoruP1XNa8Mc4BxXOzQOdoDxDeQcWUN66fFhfma8uO6q ZEYTsZVHqKZQp/FmBnj/pkc1ysajGWMwWt4QtenqcZTl+ZT9m+l3yhdogTTwKpWZPjME Jo/3X73L7qSOjTwMBmpysU527xyWPQS3qNCijzNkiOib8NfrhpvfdThTUo8YzFXJsvqT 9D6Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ce16si18385827ejc.688.2021.06.29.20.32.05; Tue, 29 Jun 2021 20:32:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233486AbhF3CkK (ORCPT + 99 others); Tue, 29 Jun 2021 22:40:10 -0400 Received: from mailgw01.mediatek.com ([60.244.123.138]:35073 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S232789AbhF3CkJ (ORCPT ); Tue, 29 Jun 2021 22:40:09 -0400 X-UUID: cf01319e079d4900bf48d323f8c13343-20210630 X-UUID: cf01319e079d4900bf48d323f8c13343-20210630 Received: from mtkmbs10n1.mediatek.inc [(172.21.101.34)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1338062040; Wed, 30 Jun 2021 10:37:39 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 30 Jun 2021 10:37:37 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Wed, 30 Jun 2021 10:37:36 +0800 From: Yong Wu To: Joerg Roedel , Rob Herring , Matthias Brugger , Will Deacon , Robin Murphy CC: Krzysztof Kozlowski , Evan Green , Tomasz Figa , Tomasz Figa , , , , , , , , , Nicolas Boichat , , Subject: [PATCH 17/24] iommu/mediatek: Just move code position in hw_init Date: Wed, 30 Jun 2021 10:34:57 +0800 Message-ID: <20210630023504.18177-18-yong.wu@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210630023504.18177-1-yong.wu@mediatek.com> References: <20210630023504.18177-1-yong.wu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org No functional change too. mt8195 IOMMU support bank functions. some global control etting is in bank0. and the other banks have its bank independent setting. this patch only moves the control settings and the independent registers together. Signed-off-by: Yong Wu --- drivers/iommu/mtk_iommu.c | 48 +++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 1072a10e36ce..5237c837128e 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -743,30 +743,6 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data) } writel_relaxed(regval, data->base + REG_MMU_CTRL_REG); - regval = F_L2_MULIT_HIT_EN | - F_TABLE_WALK_FAULT_INT_EN | - F_PREETCH_FIFO_OVERFLOW_INT_EN | - F_MISS_FIFO_OVERFLOW_INT_EN | - F_PREFETCH_FIFO_ERR_INT_EN | - F_MISS_FIFO_ERR_INT_EN; - writel_relaxed(regval, data->base + REG_MMU_INT_CONTROL0); - - regval = F_INT_TRANSLATION_FAULT | - F_INT_MAIN_MULTI_HIT_FAULT | - F_INT_INVALID_PA_FAULT | - F_INT_ENTRY_REPLACEMENT_FAULT | - F_INT_TLB_MISS_FAULT | - F_INT_MISS_TRANSACTION_FIFO_FAULT | - F_INT_PRETETCH_TRANSATION_FIFO_FAULT; - writel_relaxed(regval, data->base + REG_MMU_INT_MAIN_CONTROL); - - if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_LEGACY_IVRP_PADDR)) - regval = (data->protect_base >> 1) | (data->enable_4GB << 31); - else - regval = lower_32_bits(data->protect_base) | - upper_32_bits(data->protect_base); - writel_relaxed(regval, data->base + REG_MMU_IVRP_PADDR); - if (data->enable_4GB && MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_VLD_PA_RNG)) { /* @@ -800,6 +776,30 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data) } writel_relaxed(regval, data->base + REG_MMU_MISC_CTRL); + regval = F_L2_MULIT_HIT_EN | + F_TABLE_WALK_FAULT_INT_EN | + F_PREETCH_FIFO_OVERFLOW_INT_EN | + F_MISS_FIFO_OVERFLOW_INT_EN | + F_PREFETCH_FIFO_ERR_INT_EN | + F_MISS_FIFO_ERR_INT_EN; + writel_relaxed(regval, data->base + REG_MMU_INT_CONTROL0); + + regval = F_INT_TRANSLATION_FAULT | + F_INT_MAIN_MULTI_HIT_FAULT | + F_INT_INVALID_PA_FAULT | + F_INT_ENTRY_REPLACEMENT_FAULT | + F_INT_TLB_MISS_FAULT | + F_INT_MISS_TRANSACTION_FIFO_FAULT | + F_INT_PRETETCH_TRANSATION_FIFO_FAULT; + writel_relaxed(regval, data->base + REG_MMU_INT_MAIN_CONTROL); + + if (MTK_IOMMU_HAS_FLAG(data->plat_data, HAS_LEGACY_IVRP_PADDR)) + regval = (data->protect_base >> 1) | (data->enable_4GB << 31); + else + regval = lower_32_bits(data->protect_base) | + upper_32_bits(data->protect_base); + writel_relaxed(regval, data->base + REG_MMU_IVRP_PADDR); + if (devm_request_irq(data->dev, data->irq, mtk_iommu_isr, 0, dev_name(data->dev), (void *)data)) { writel_relaxed(0, data->base + REG_MMU_PT_BASE_ADDR); -- 2.18.0