linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: "Marek Behún" <kabel@kernel.org>
To: "Andrew Lunn" <andrew@lunn.ch>,
	"Gregory Clement" <gregory.clement@bootlin.com>,
	"Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	linux-arm-kernel@lists.infradead.org, arm@kernel.org,
	"Andy Shevchenko" <andy@kernel.org>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: "Marek Behún" <kabel@kernel.org>
Subject: [PATCH 16/25] irqchip/armada-370-xp: Use FIELD_GET() and named register constant
Date: Mon,  1 Jul 2024 19:02:40 +0200	[thread overview]
Message-ID: <20240701170249.8128-17-kabel@kernel.org> (raw)
In-Reply-To: <20240701170249.8128-1-kabel@kernel.org>

Use FIELD_GET() and named register mask constant when reading the number
of supported interrupts / current interrupt.

Signed-off-by: Marek Behún <kabel@kernel.org>
---
 drivers/irqchip/irq-armada-370-xp.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index c287579da436..d8db46001961 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -10,6 +10,7 @@
  * Ben Dooks <ben.dooks@codethink.co.uk>
  */
 
+#include <linux/bitfield.h>
 #include <linux/bits.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -112,6 +113,7 @@
 
 /* Registers relative to main_int_base */
 #define MPIC_INT_CONTROL			0x00
+#define MPIC_INT_CONTROL_NUMINT_MASK		GENMASK(12, 2)
 #define MPIC_SW_TRIG_INT			0x04
 #define MPIC_INT_SET_ENABLE			0x30
 #define MPIC_INT_CLEAR_ENABLE			0x34
@@ -124,6 +126,7 @@
 #define MPIC_IN_DRBEL_MASK			0x0c
 #define MPIC_PPI_CAUSE				0x10
 #define MPIC_CPU_INTACK				0x44
+#define MPIC_CPU_INTACK_IID_MASK		GENMASK(9, 0)
 #define MPIC_INT_SET_MASK			0x48
 #define MPIC_INT_CLEAR_MASK			0x4C
 #define MPIC_INT_FABRIC_MASK			0x54
@@ -674,7 +677,7 @@ static void __exception_irq_entry mpic_handle_irq(struct pt_regs *regs)
 
 	do {
 		irqstat = readl_relaxed(per_cpu_int_base + MPIC_CPU_INTACK);
-		irqnr = irqstat & 0x3FF;
+		irqnr = FIELD_GET(MPIC_CPU_INTACK_IID_MASK, irqstat);
 
 		if (irqnr > 1022)
 			break;
@@ -774,8 +777,7 @@ static int __init mpic_of_init(struct device_node *node,
 			       struct device_node *parent)
 {
 	struct resource main_int_res, per_cpu_int_res;
-	int nr_irqs;
-	u32 control;
+	unsigned int nr_irqs;
 
 	BUG_ON(of_address_to_resource(node, 0, &main_int_res));
 	BUG_ON(of_address_to_resource(node, 1, &per_cpu_int_res));
@@ -795,8 +797,8 @@ static int __init mpic_of_init(struct device_node *node,
 				   resource_size(&per_cpu_int_res));
 	BUG_ON(!per_cpu_int_base);
 
-	control = readl(main_int_base + MPIC_INT_CONTROL);
-	nr_irqs = (control >> 2) & 0x3ff;
+	nr_irqs = FIELD_GET(MPIC_INT_CONTROL_NUMINT_MASK,
+			    readl(main_int_base + MPIC_INT_CONTROL));
 
 	for (int i = 0; i < nr_irqs; i++)
 		writel(i, main_int_base + MPIC_INT_CLEAR_ENABLE);
-- 
2.44.2



  parent reply	other threads:[~2024-07-01 17:05 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-01 17:02 [PATCH 00/25] armada-370-xp irqchip updates round 2 Marek Behún
2024-07-01 17:02 ` [PATCH 01/25] irqchip/armada-370-xp: Drop _OFFS suffix from some register constants Marek Behún
2024-07-01 17:02 ` [PATCH 02/25] irqchip/armada-370-xp: Change register constant suffix from _MSK to _MASK Marek Behún
2024-07-01 22:08   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 03/25] irqchip/armada-370-xp: Change spaces to tabs Marek Behún
2024-07-01 22:08   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 04/25] irqchip/armada-370-xp: Use BIT() and GENMASK() macros Marek Behún
2024-07-01 22:08   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 05/25] irqchip/armada-370-xp: Cosmetic fix parentheses in register constant definitions Marek Behún
2024-07-01 22:09   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 06/25] irqchip/armada-370-xp: Change register constants prefix to MPIC_ Marek Behún
2024-07-01 22:10   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 07/25] irqchip/armada-370-xp: Use correct type for cpu variable Marek Behún
2024-07-01 22:11   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 08/25] irqchip/armada-370-xp: Simplify is_percpu_irq() code Marek Behún
2024-07-01 22:11   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 09/25] irqchip/armada-370-xp: Change to SPDX license identifier Marek Behún
2024-07-01 22:12   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 10/25] irqchip/armada-370-xp: Declare iterators in for loop Marek Behún
2024-07-01 17:02 ` [PATCH 11/25] irqchip/armada-370-xp: Simplify ipi_resume() code Marek Behún
2024-07-01 22:25   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 12/25] irqchip/armada-370-xp: Use !virq instead of virq == 0 Marek Behún
2024-07-01 22:27   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 13/25] irqchip/armada-370-xp: Improve indentation Marek Behún
2024-07-01 17:02 ` [PATCH 14/25] irqchip/armada-370-xp: Change symbol prefixes to mpic Marek Behún
2024-07-01 22:28   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 15/25] irqchip/armada-370-xp: Don't read number of supported interrupts multiple times Marek Behún
2024-07-01 22:35   ` Andrew Lunn
2024-07-01 17:02 ` Marek Behún [this message]
2024-07-01 17:02 ` [PATCH 17/25] irqchip/armada-370-xp: Refactor mpic_handle_msi_irq() code Marek Behún
2024-07-03  1:29   ` Andrew Lunn
2024-07-03  6:56     ` Marek Behún
2024-07-01 17:02 ` [PATCH 18/25] irqchip/armada-370-xp: Simplify mpic_reenable_percpu() code Marek Behún
2024-07-03  1:33   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 19/25] irqchip/armada-370-xp: Use unsigned int / irq_hw_number_t when iterating Marek Behún
2024-07-03  1:35   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 20/25] irqchip/armada-370-xp: Use consistent variable names for hwirqs Marek Behún
2024-07-03  1:36   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 21/25] irqchip/armada-370-xp: Simplify mpic_resume() code Marek Behún
2024-07-01 17:02 ` [PATCH 22/25] irqchip/armada-370-xp: Refactor handling IPI interrupts into own function Marek Behún
2024-07-03  1:38   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 23/25] irqchip/armada-370-xp: Drop arguments from mpic_handle_msi_irq() Marek Behún
2024-07-03  1:38   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 24/25] irqchip/armada-370-xp: Drop unneeded curly brackets Marek Behún
2024-07-03  1:39   ` Andrew Lunn
2024-07-01 17:02 ` [PATCH 25/25] irqchip/armada-370-xp: Drop redundant continue Marek Behún
2024-07-03  1:41   ` Andrew Lunn

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=20240701170249.8128-17-kabel@kernel.org \
    --to=kabel@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=andy@kernel.org \
    --cc=arm@kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=hdegoede@redhat.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=tglx@linutronix.de \
    /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;
as well as URLs for NNTP newsgroup(s).