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
next prev 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).