public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Xiaoshun Xu <xiaoshun.xu@mediatek.com>
To: Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Xiaoshun Xu <xiaoshun.xu@mediatek.com>
Cc: <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>,
	Sirius Wang <sirius.wang@mediatek.com>,
	Vince-wl Liu <vince-wl.liu@mediatek.com>,
	<Project_Global_Chrome_Upstream_Group@mediatek.com>
Subject: [PATCH v3 1/6] soc: mediatek: mtk-devapc: refine devapc interrupt handler
Date: Thu, 16 Apr 2026 11:12:04 +0800	[thread overview]
Message-ID: <20260416031231.2932493-2-xiaoshun.xu@mediatek.com> (raw)
In-Reply-To: <20260416031231.2932493-1-xiaoshun.xu@mediatek.com>

Because the violation IRQ uses a while loop, it might cause the
system to remain in the interrupt handler indefinitely. We are
currently optimizing this part of the process to handle only 20
violations for debug violation issues, and then exit the loop

Signed-off-by: Xiaoshun Xu <xiaoshun.xu@mediatek.com>
---
 drivers/soc/mediatek/mtk-devapc.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/soc/mediatek/mtk-devapc.c b/drivers/soc/mediatek/mtk-devapc.c
index f54c966138b5..c9e1401315ad 100644
--- a/drivers/soc/mediatek/mtk-devapc.c
+++ b/drivers/soc/mediatek/mtk-devapc.c
@@ -12,6 +12,7 @@
 #include <linux/of_irq.h>
 #include <linux/of_address.h>
 
+#define MAX_VIO_NUM 20
 #define VIO_MOD_TO_REG_IND(m)	((m) / 32)
 #define VIO_MOD_TO_REG_OFF(m)	((m) % 32)
 
@@ -188,13 +189,18 @@ static void devapc_extract_vio_dbg(struct mtk_devapc_context *ctx)
  */
 static irqreturn_t devapc_violation_irq(int irq_number, void *data)
 {
+	u32 vio_num = 0;
 	struct mtk_devapc_context *ctx = data;
 
-	while (devapc_sync_vio_dbg(ctx))
+	mask_module_irq(ctx, true);
+
+	for (vio_num = 0; (vio_num < MAX_VIO_NUM) && (devapc_sync_vio_dbg(ctx)); ++vio_num)
 		devapc_extract_vio_dbg(ctx);
 
 	clear_vio_status(ctx);
 
+	mask_module_irq(ctx, false);
+
 	return IRQ_HANDLED;
 }
 
-- 
2.45.2



  reply	other threads:[~2026-04-16  3:13 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-16  3:12 [PATCH v3 0/6] soc: mediatek: Add devapc support Xiaoshun Xu
2026-04-16  3:12 ` Xiaoshun Xu [this message]
2026-04-16  3:45   ` [PATCH v3 1/6] soc: mediatek: mtk-devapc: refine devapc interrupt handler CK Hu (胡俊光)
2026-04-16  3:12 ` [PATCH v3 2/6] soc: mediatek: mtk-devapc: refine DEVAPC clock control Xiaoshun Xu
2026-04-16  3:12 ` [PATCH v3 3/6] soc: mediatek: mtk-devapc: Add support for MT8189 DEVAPC Xiaoshun Xu
2026-04-16  3:12 ` [PATCH v3 4/6] dt-bindings: soc: mediatek: devapc: Add bindings for MT8189 Xiaoshun Xu
2026-04-16  8:56   ` Krzysztof Kozlowski
2026-04-16  3:12 ` [PATCH v3 5/6] soc: mediatek: mtk-devapc: Add support for MT8196 DEVAPC Xiaoshun Xu
2026-04-16  3:12 ` [PATCH v3 6/6] dt-bindings: soc: mediatek: devapc: Add bindings for MT8196 Xiaoshun Xu
2026-04-16  8:58   ` Krzysztof Kozlowski

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=20260416031231.2932493-2-xiaoshun.xu@mediatek.com \
    --to=xiaoshun.xu@mediatek.com \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.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@kernel.org \
    --cc=sirius.wang@mediatek.com \
    --cc=vince-wl.liu@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox