Skip to content

Commit 046a6ee

Browse files
author
Marc Zyngier
committed
irqchip: Bulk conversion to generic_handle_domain_irq()
Wherever possible, replace constructs that match either generic_handle_irq(irq_find_mapping()) or generic_handle_irq(irq_linear_revmap()) to a single call to generic_handle_domain_irq(). Reviewed-by: Geert Uytterhoeven <[email protected]> Acked-by: Krzysztof Kozlowski <[email protected]> Signed-off-by: Marc Zyngier <[email protected]>
1 parent e1c0549 commit 046a6ee

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+111
-190
lines changed

drivers/irqchip/exynos-combiner.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,9 @@ static void combiner_handle_cascade_irq(struct irq_desc *desc)
6666
{
6767
struct combiner_chip_data *chip_data = irq_desc_get_handler_data(desc);
6868
struct irq_chip *chip = irq_desc_get_chip(desc);
69-
unsigned int cascade_irq, combiner_irq;
69+
unsigned int combiner_irq;
7070
unsigned long status;
71+
int ret;
7172

7273
chained_irq_enter(chip, desc);
7374

@@ -80,12 +81,9 @@ static void combiner_handle_cascade_irq(struct irq_desc *desc)
8081
goto out;
8182

8283
combiner_irq = chip_data->hwirq_offset + __ffs(status);
83-
cascade_irq = irq_find_mapping(combiner_irq_domain, combiner_irq);
84-
85-
if (unlikely(!cascade_irq))
84+
ret = generic_handle_domain_irq(combiner_irq_domain, combiner_irq);
85+
if (unlikely(ret))
8686
handle_bad_irq(desc);
87-
else
88-
generic_handle_irq(cascade_irq);
8987

9088
out:
9189
chained_irq_exit(chip, desc);

drivers/irqchip/irq-al-fic.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,18 +111,15 @@ static void al_fic_irq_handler(struct irq_desc *desc)
111111
struct irq_chip *irqchip = irq_desc_get_chip(desc);
112112
struct irq_chip_generic *gc = irq_get_domain_generic_chip(domain, 0);
113113
unsigned long pending;
114-
unsigned int irq;
115114
u32 hwirq;
116115

117116
chained_irq_enter(irqchip, desc);
118117

119118
pending = readl_relaxed(fic->base + AL_FIC_CAUSE);
120119
pending &= ~gc->mask_cache;
121120

122-
for_each_set_bit(hwirq, &pending, NR_FIC_IRQS) {
123-
irq = irq_find_mapping(domain, hwirq);
124-
generic_handle_irq(irq);
125-
}
121+
for_each_set_bit(hwirq, &pending, NR_FIC_IRQS)
122+
generic_handle_domain_irq(domain, hwirq);
126123

127124
chained_irq_exit(irqchip, desc);
128125
}

drivers/irqchip/irq-armada-370-xp.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -582,20 +582,19 @@ static void armada_370_xp_handle_msi_irq(struct pt_regs *regs, bool is_chained)
582582

583583
for (msinr = PCI_MSI_DOORBELL_START;
584584
msinr < PCI_MSI_DOORBELL_END; msinr++) {
585-
int irq;
585+
unsigned int irq;
586586

587587
if (!(msimask & BIT(msinr)))
588588
continue;
589589

590-
if (is_chained) {
591-
irq = irq_find_mapping(armada_370_xp_msi_inner_domain,
592-
msinr - PCI_MSI_DOORBELL_START);
593-
generic_handle_irq(irq);
594-
} else {
595-
irq = msinr - PCI_MSI_DOORBELL_START;
590+
irq = msinr - PCI_MSI_DOORBELL_START;
591+
592+
if (is_chained)
593+
generic_handle_domain_irq(armada_370_xp_msi_inner_domain,
594+
irq);
595+
else
596596
handle_domain_irq(armada_370_xp_msi_inner_domain,
597597
irq, regs);
598-
}
599598
}
600599
}
601600
#else
@@ -606,7 +605,6 @@ static void armada_370_xp_mpic_handle_cascade_irq(struct irq_desc *desc)
606605
{
607606
struct irq_chip *chip = irq_desc_get_chip(desc);
608607
unsigned long irqmap, irqn, irqsrc, cpuid;
609-
unsigned int cascade_irq;
610608

611609
chained_irq_enter(chip, desc);
612610

@@ -628,8 +626,7 @@ static void armada_370_xp_mpic_handle_cascade_irq(struct irq_desc *desc)
628626
continue;
629627
}
630628

631-
cascade_irq = irq_find_mapping(armada_370_xp_mpic_domain, irqn);
632-
generic_handle_irq(cascade_irq);
629+
generic_handle_domain_irq(armada_370_xp_mpic_domain, irqn);
633630
}
634631

635632
chained_irq_exit(chip, desc);

drivers/irqchip/irq-aspeed-i2c-ic.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,12 @@ static void aspeed_i2c_ic_irq_handler(struct irq_desc *desc)
3434
struct aspeed_i2c_ic *i2c_ic = irq_desc_get_handler_data(desc);
3535
struct irq_chip *chip = irq_desc_get_chip(desc);
3636
unsigned long bit, status;
37-
unsigned int bus_irq;
3837

3938
chained_irq_enter(chip, desc);
4039
status = readl(i2c_ic->base);
41-
for_each_set_bit(bit, &status, ASPEED_I2C_IC_NUM_BUS) {
42-
bus_irq = irq_find_mapping(i2c_ic->irq_domain, bit);
43-
generic_handle_irq(bus_irq);
44-
}
40+
for_each_set_bit(bit, &status, ASPEED_I2C_IC_NUM_BUS)
41+
generic_handle_domain_irq(i2c_ic->irq_domain, bit);
42+
4543
chained_irq_exit(chip, desc);
4644
}
4745

drivers/irqchip/irq-aspeed-scu-ic.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ struct aspeed_scu_ic {
4444

4545
static void aspeed_scu_ic_irq_handler(struct irq_desc *desc)
4646
{
47-
unsigned int irq;
4847
unsigned int sts;
4948
unsigned long bit;
5049
unsigned long enabled;
@@ -74,9 +73,8 @@ static void aspeed_scu_ic_irq_handler(struct irq_desc *desc)
7473
max = scu_ic->num_irqs + bit;
7574

7675
for_each_set_bit_from(bit, &status, max) {
77-
irq = irq_find_mapping(scu_ic->irq_domain,
78-
bit - scu_ic->irq_shift);
79-
generic_handle_irq(irq);
76+
generic_handle_domain_irq(scu_ic->irq_domain,
77+
bit - scu_ic->irq_shift);
8078

8179
regmap_update_bits(scu_ic->scu, scu_ic->reg, mask,
8280
BIT(bit + ASPEED_SCU_IC_STATUS_SHIFT));

drivers/irqchip/irq-ath79-misc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ static void ath79_misc_irq_handler(struct irq_desc *desc)
5050
while (pending) {
5151
int bit = __ffs(pending);
5252

53-
generic_handle_irq(irq_linear_revmap(domain, bit));
53+
generic_handle_domain_irq(domain, bit);
5454
pending &= ~BIT(bit);
5555
}
5656

drivers/irqchip/irq-bcm2835.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ static void bcm2836_chained_handle_irq(struct irq_desc *desc)
254254
u32 hwirq;
255255

256256
while ((hwirq = get_next_armctrl_hwirq()) != ~0)
257-
generic_handle_irq(irq_linear_revmap(intc.domain, hwirq));
257+
generic_handle_domain_irq(intc.domain, hwirq);
258258
}
259259

260260
IRQCHIP_DECLARE(bcm2835_armctrl_ic, "brcm,bcm2835-armctrl-ic",

drivers/irqchip/irq-bcm2836.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ static void bcm2836_arm_irqchip_handle_ipi(struct irq_desc *desc)
161161
mbox_val = readl_relaxed(intc.base + LOCAL_MAILBOX0_CLR0 + 16 * cpu);
162162
if (mbox_val) {
163163
int hwirq = ffs(mbox_val) - 1;
164-
generic_handle_irq(irq_find_mapping(ipi_domain, hwirq));
164+
generic_handle_domain_irq(ipi_domain, hwirq);
165165
}
166166

167167
chained_irq_exit(chip, desc);

drivers/irqchip/irq-bcm7038-l1.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,8 @@ static void bcm7038_l1_irq_handle(struct irq_desc *desc)
145145
~cpu->mask_cache[idx];
146146
raw_spin_unlock_irqrestore(&intc->lock, flags);
147147

148-
for_each_set_bit(hwirq, &pending, IRQS_PER_WORD) {
149-
generic_handle_irq(irq_find_mapping(intc->domain,
150-
base + hwirq));
151-
}
148+
for_each_set_bit(hwirq, &pending, IRQS_PER_WORD)
149+
generic_handle_domain_irq(intc->domain, base + hwirq);
152150
}
153151

154152
chained_irq_exit(chip, desc);

drivers/irqchip/irq-bcm7120-l2.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,8 @@ static void bcm7120_l2_intc_irq_handle(struct irq_desc *desc)
7474
data->irq_map_mask[idx];
7575
irq_gc_unlock(gc);
7676

77-
for_each_set_bit(hwirq, &pending, IRQS_PER_WORD) {
78-
generic_handle_irq(irq_find_mapping(b->domain,
79-
base + hwirq));
80-
}
77+
for_each_set_bit(hwirq, &pending, IRQS_PER_WORD)
78+
generic_handle_domain_irq(b->domain, base + hwirq);
8179
}
8280

8381
chained_irq_exit(chip, desc);

0 commit comments

Comments
 (0)