All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chao Hao <chao.hao@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>
Cc: devicetree@vger.kernel.org, FY Yang <fy.yang@mediatek.com>,
	wsd_upstream@mediatek.com, linux-kernel@vger.kernel.org,
	Evan Green <evgreen@chromium.org>,
	Chao Hao <chao.hao@mediatek.com>,
	iommu@lists.linux-foundation.org,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 09/10] iommu/mediatek: Modify MMU_CTRL register setting
Date: Mon, 29 Jun 2020 15:13:09 +0800	[thread overview]
Message-ID: <20200629071310.1557-10-chao.hao@mediatek.com> (raw)
In-Reply-To: <20200629071310.1557-1-chao.hao@mediatek.com>

MT8173 is different from other SoCs for MMU_CTRL register.
For mt8173, its bit9 is in_order_write_en and doesn't use its
default 1'b1.
For other SoCs, bit[12] represents victim_tlb_en feature and
victim_tlb is enable defaultly(bit[12]=1), if we use
"regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR", victim_tlb will be
disabled, it will drop iommu performace.
So we need to deal with the setting of MMU_CTRL separately
for mt8173 and others.

Suggested-by: Matthias Brugger <matthias.bgg@gmail.com>
Suggested-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Chao Hao <chao.hao@mediatek.com>
---
 drivers/iommu/mtk_iommu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 8299a3299090..e46e2deee3fd 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -543,11 +543,12 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
 		return ret;
 	}
 
+	regval = readl_relaxed(data->base + REG_MMU_CTRL_REG);
 	if (data->plat_data->m4u_plat == M4U_MT8173)
 		regval = F_MMU_PREFETCH_RT_REPLACE_MOD |
 			 F_MMU_TF_PROT_TO_PROGRAM_ADDR_MT8173;
 	else
-		regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR;
+		regval |= F_MMU_TF_PROT_TO_PROGRAM_ADDR;
 	writel_relaxed(regval, data->base + REG_MMU_CTRL_REG);
 
 	regval = F_L2_MULIT_HIT_EN |
-- 
2.18.0
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Chao Hao <chao.hao@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>
Cc: devicetree@vger.kernel.org, FY Yang <fy.yang@mediatek.com>,
	wsd_upstream@mediatek.com, linux-kernel@vger.kernel.org,
	Evan Green <evgreen@chromium.org>,
	Chao Hao <chao.hao@mediatek.com>,
	iommu@lists.linux-foundation.org,
	linux-mediatek@lists.infradead.org,
	Yong Wu <yong.wu@mediatek.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 09/10] iommu/mediatek: Modify MMU_CTRL register setting
Date: Mon, 29 Jun 2020 15:13:09 +0800	[thread overview]
Message-ID: <20200629071310.1557-10-chao.hao@mediatek.com> (raw)
In-Reply-To: <20200629071310.1557-1-chao.hao@mediatek.com>

MT8173 is different from other SoCs for MMU_CTRL register.
For mt8173, its bit9 is in_order_write_en and doesn't use its
default 1'b1.
For other SoCs, bit[12] represents victim_tlb_en feature and
victim_tlb is enable defaultly(bit[12]=1), if we use
"regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR", victim_tlb will be
disabled, it will drop iommu performace.
So we need to deal with the setting of MMU_CTRL separately
for mt8173 and others.

Suggested-by: Matthias Brugger <matthias.bgg@gmail.com>
Suggested-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Chao Hao <chao.hao@mediatek.com>
---
 drivers/iommu/mtk_iommu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 8299a3299090..e46e2deee3fd 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -543,11 +543,12 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
 		return ret;
 	}
 
+	regval = readl_relaxed(data->base + REG_MMU_CTRL_REG);
 	if (data->plat_data->m4u_plat == M4U_MT8173)
 		regval = F_MMU_PREFETCH_RT_REPLACE_MOD |
 			 F_MMU_TF_PROT_TO_PROGRAM_ADDR_MT8173;
 	else
-		regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR;
+		regval |= F_MMU_TF_PROT_TO_PROGRAM_ADDR;
 	writel_relaxed(regval, data->base + REG_MMU_CTRL_REG);
 
 	regval = F_L2_MULIT_HIT_EN |
-- 
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Chao Hao <chao.hao@mediatek.com>
To: Joerg Roedel <joro@8bytes.org>, Rob Herring <robh+dt@kernel.org>,
	"Matthias Brugger" <matthias.bgg@gmail.com>
Cc: devicetree@vger.kernel.org, FY Yang <fy.yang@mediatek.com>,
	wsd_upstream@mediatek.com, linux-kernel@vger.kernel.org,
	Evan Green <evgreen@chromium.org>,
	Chao Hao <chao.hao@mediatek.com>,
	iommu@lists.linux-foundation.org,
	linux-mediatek@lists.infradead.org,
	Yong Wu <yong.wu@mediatek.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 09/10] iommu/mediatek: Modify MMU_CTRL register setting
Date: Mon, 29 Jun 2020 15:13:09 +0800	[thread overview]
Message-ID: <20200629071310.1557-10-chao.hao@mediatek.com> (raw)
In-Reply-To: <20200629071310.1557-1-chao.hao@mediatek.com>

MT8173 is different from other SoCs for MMU_CTRL register.
For mt8173, its bit9 is in_order_write_en and doesn't use its
default 1'b1.
For other SoCs, bit[12] represents victim_tlb_en feature and
victim_tlb is enable defaultly(bit[12]=1), if we use
"regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR", victim_tlb will be
disabled, it will drop iommu performace.
So we need to deal with the setting of MMU_CTRL separately
for mt8173 and others.

Suggested-by: Matthias Brugger <matthias.bgg@gmail.com>
Suggested-by: Yong Wu <yong.wu@mediatek.com>
Signed-off-by: Chao Hao <chao.hao@mediatek.com>
---
 drivers/iommu/mtk_iommu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 8299a3299090..e46e2deee3fd 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -543,11 +543,12 @@ static int mtk_iommu_hw_init(const struct mtk_iommu_data *data)
 		return ret;
 	}
 
+	regval = readl_relaxed(data->base + REG_MMU_CTRL_REG);
 	if (data->plat_data->m4u_plat == M4U_MT8173)
 		regval = F_MMU_PREFETCH_RT_REPLACE_MOD |
 			 F_MMU_TF_PROT_TO_PROGRAM_ADDR_MT8173;
 	else
-		regval = F_MMU_TF_PROT_TO_PROGRAM_ADDR;
+		regval |= F_MMU_TF_PROT_TO_PROGRAM_ADDR;
 	writel_relaxed(regval, data->base + REG_MMU_CTRL_REG);
 
 	regval = F_L2_MULIT_HIT_EN |
-- 
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2020-06-29  7:14 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-29  7:13 [PATCH v5 00/10] MT6779 IOMMU SUPPORT Chao Hao
2020-06-29  7:13 ` Chao Hao
2020-06-29  7:13 ` Chao Hao
2020-06-29  7:13 ` [PATCH v5 01/10] dt-bindings: mediatek: Add bindings for MT6779 Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13 ` [PATCH v5 02/10] iommu/mediatek: Rename the register STANDARD_AXI_MODE(0x48) to MISC_CTRL Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-07-01  2:17   ` Yong Wu
2020-07-01  2:17     ` Yong Wu
2020-07-03  2:36     ` chao hao
2020-07-03  2:36       ` chao hao
2020-06-29  7:13 ` [PATCH v5 03/10] iommu/mediatek: Modify the usage of mtk_iommu_plat_data structure Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  9:11   ` Matthias Brugger
2020-06-29  9:11     ` Matthias Brugger
2020-06-29  9:11     ` Matthias Brugger
2020-06-29  9:11     ` Matthias Brugger
2020-06-30 10:56   ` Yong Wu
2020-06-30 10:56     ` Yong Wu
2020-06-30 10:56     ` Yong Wu
2020-06-30 10:56     ` Yong Wu
2020-06-30 11:55     ` chao hao
2020-06-30 11:55       ` chao hao
2020-06-30 11:55       ` chao hao
2020-06-30 11:55       ` chao hao
2020-06-29  7:13 ` [PATCH v5 04/10] iommu/mediatek: Setting MISC_CTRL register Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  9:28   ` Matthias Brugger
2020-06-29  9:28     ` Matthias Brugger
2020-06-29  9:28     ` Matthias Brugger
2020-06-29  9:28     ` Matthias Brugger
2020-06-30 10:53     ` chao hao
2020-06-30 10:53       ` chao hao
2020-06-30 10:53       ` chao hao
2020-06-30 10:53       ` chao hao
2020-07-01 14:58       ` Matthias Brugger
2020-07-01 14:58         ` Matthias Brugger
2020-07-01 14:58         ` Matthias Brugger
2020-07-01 14:58         ` Matthias Brugger
2020-07-03  2:38         ` chao hao
2020-07-03  2:38           ` chao hao
2020-07-03  2:38           ` chao hao
2020-07-03  2:38           ` chao hao
2020-06-29  7:13 ` [PATCH v5 05/10] iommu/mediatek: Move inv_sel_reg into the plat_data Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13 ` [PATCH v5 06/10] iommu/mediatek: Add sub_comm id in translation fault Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-30 10:55   ` Yong Wu
2020-06-30 10:55     ` Yong Wu
2020-06-30 10:55     ` Yong Wu
2020-06-30 10:55     ` Yong Wu
2020-06-30 11:07     ` chao hao
2020-06-30 11:07       ` chao hao
2020-06-30 11:07       ` chao hao
2020-06-30 11:07       ` chao hao
2020-06-29  7:13 ` [PATCH v5 07/10] iommu/mediatek: Add REG_MMU_WR_LEN register definition Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29 10:16   ` Matthias Brugger
2020-06-29 10:16     ` Matthias Brugger
2020-06-29 10:16     ` Matthias Brugger
2020-06-29 10:16     ` Matthias Brugger
2020-06-30 10:59     ` chao hao
2020-06-30 10:59       ` chao hao
2020-06-30 10:59       ` chao hao
2020-06-30 10:59       ` chao hao
2020-07-01 15:00       ` Matthias Brugger
2020-07-01 15:00         ` Matthias Brugger
2020-07-01 15:00         ` Matthias Brugger
2020-07-01 15:00         ` Matthias Brugger
2020-06-29  7:13 ` [PATCH v5 08/10] iommu/mediatek: Extend protect pa alignment value Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29 10:17   ` Matthias Brugger
2020-06-29 10:17     ` Matthias Brugger
2020-06-29 10:17     ` Matthias Brugger
2020-06-29 10:17     ` Matthias Brugger
2020-06-29  7:13 ` Chao Hao [this message]
2020-06-29  7:13   ` [PATCH v5 09/10] iommu/mediatek: Modify MMU_CTRL register setting Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29 10:28   ` Matthias Brugger
2020-06-29 10:28     ` Matthias Brugger
2020-06-29 10:28     ` Matthias Brugger
2020-06-29 10:28     ` Matthias Brugger
2020-06-30 11:02     ` chao hao
2020-06-30 11:02       ` chao hao
2020-06-30 11:02       ` chao hao
2020-06-30 11:02       ` chao hao
2020-06-29  7:13 ` [PATCH v5 10/10] iommu/mediatek: Add mt6779 basic support Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29  7:13   ` Chao Hao
2020-06-29 10:29   ` Matthias Brugger
2020-06-29 10:29     ` Matthias Brugger
2020-06-29 10:29     ` Matthias Brugger
2020-06-29 10:29     ` Matthias Brugger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200629071310.1557-10-chao.hao@mediatek.com \
    --to=chao.hao@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=evgreen@chromium.org \
    --cc=fy.yang@mediatek.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=wsd_upstream@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.