mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 20:34:23 -04:00
irqchip/armada-370-xp: Refactor mpic_handle_msi_irq() code
Refactor the mpic_handle_msi_irq() function to make it simpler: - drop the function arguments, they are not needed - rename the variable holding the doorbell cause register to "cause" - rename the iterating variable to "i" - use for_each_set_bit() (requires retyping "cause" to unsigned long) Signed-off-by: Marek Behún <kabel@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Link: https://lore.kernel.org/all/20240711115748.30268-10-kabel@kernel.org
This commit is contained in:
committed by
Thomas Gleixner
parent
92128c74e4
commit
63697bc719
@@ -602,29 +602,21 @@ static const struct irq_domain_ops mpic_irq_ops = {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
static void mpic_handle_msi_irq(struct pt_regs *regs, bool is_chained)
|
||||
static void mpic_handle_msi_irq(void)
|
||||
{
|
||||
u32 msimask, msinr;
|
||||
unsigned long cause;
|
||||
unsigned int i;
|
||||
|
||||
msimask = readl_relaxed(per_cpu_int_base + MPIC_IN_DRBEL_CAUSE);
|
||||
msimask &= msi_doorbell_mask();
|
||||
cause = readl_relaxed(per_cpu_int_base + MPIC_IN_DRBEL_CAUSE);
|
||||
cause &= msi_doorbell_mask();
|
||||
writel(~cause, per_cpu_int_base + MPIC_IN_DRBEL_CAUSE);
|
||||
|
||||
writel(~msimask, per_cpu_int_base + MPIC_IN_DRBEL_CAUSE);
|
||||
|
||||
for (msinr = msi_doorbell_start();
|
||||
msinr < msi_doorbell_end(); msinr++) {
|
||||
unsigned int irq;
|
||||
|
||||
if (!(msimask & BIT(msinr)))
|
||||
continue;
|
||||
|
||||
irq = msinr - msi_doorbell_start();
|
||||
|
||||
generic_handle_domain_irq(mpic_msi_inner_domain, irq);
|
||||
}
|
||||
for_each_set_bit(i, &cause, BITS_PER_LONG)
|
||||
generic_handle_domain_irq(mpic_msi_inner_domain,
|
||||
i - msi_doorbell_start());
|
||||
}
|
||||
#else
|
||||
static void mpic_handle_msi_irq(struct pt_regs *r, bool b) {}
|
||||
static void mpic_handle_msi_irq(void) {}
|
||||
#endif
|
||||
|
||||
static void mpic_handle_cascade_irq(struct irq_desc *desc)
|
||||
@@ -647,7 +639,7 @@ static void mpic_handle_cascade_irq(struct irq_desc *desc)
|
||||
continue;
|
||||
|
||||
if (irqn == 0 || irqn == 1) {
|
||||
mpic_handle_msi_irq(NULL, true);
|
||||
mpic_handle_msi_irq();
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -675,7 +667,7 @@ static void __exception_irq_entry mpic_handle_irq(struct pt_regs *regs)
|
||||
|
||||
/* MSI handling */
|
||||
if (irqnr == 1)
|
||||
mpic_handle_msi_irq(regs, false);
|
||||
mpic_handle_msi_irq();
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* IPI Handling */
|
||||
|
||||
Reference in New Issue
Block a user