Commit a9cb09b7 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

pinctrl: 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().

Acked-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent dbd1c54f
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -833,7 +833,7 @@ static void owl_gpio_irq_handler(struct irq_desc *desc)
	unsigned int parent = irq_desc_get_irq(desc);
	const struct owl_gpio_port *port;
	void __iomem *base;
	unsigned int pin, irq, offset = 0, i;
	unsigned int pin, offset = 0, i;
	unsigned long pending_irq;

	chained_irq_enter(chip, desc);
@@ -849,8 +849,7 @@ static void owl_gpio_irq_handler(struct irq_desc *desc)
		pending_irq = readl_relaxed(base + port->intc_pd);

		for_each_set_bit(pin, &pending_irq, port->pins) {
			irq = irq_find_mapping(domain, offset + pin);
			generic_handle_irq(irq);
			generic_handle_domain_irq(domain, offset + pin);

			/* clear pending interrupt */
			owl_gpio_update_reg(base + port->intc_pd, pin, true);
+2 −2
Original line number Diff line number Diff line
@@ -395,8 +395,8 @@ static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc,
	events &= pc->enabled_irq_map[bank];
	for_each_set_bit(offset, &events, 32) {
		gpio = (32 * bank) + offset;
		generic_handle_irq(irq_linear_revmap(pc->gpio_chip.irq.domain,
						     gpio));
		generic_handle_domain_irq(pc->gpio_chip.irq.domain,
					  gpio);
	}
}

+1 −2
Original line number Diff line number Diff line
@@ -176,7 +176,6 @@ static void iproc_gpio_irq_handler(struct irq_desc *desc)

		for_each_set_bit(bit, &val, NGPIOS_PER_BANK) {
			unsigned pin = NGPIOS_PER_BANK * i + bit;
			int child_irq = irq_find_mapping(gc->irq.domain, pin);

			/*
			 * Clear the interrupt before invoking the
@@ -185,7 +184,7 @@ static void iproc_gpio_irq_handler(struct irq_desc *desc)
			writel(BIT(bit), chip->base + (i * GPIO_BANK_SIZE) +
			       IPROC_GPIO_INT_CLR_OFFSET);

			generic_handle_irq(child_irq);
			generic_handle_domain_irq(gc->irq.domain, pin);
		}
	}

+1 −2
Original line number Diff line number Diff line
@@ -155,8 +155,7 @@ static irqreturn_t nsp_gpio_irq_handler(int irq, void *data)
		int_bits = level | event;

		for_each_set_bit(bit, &int_bits, gc->ngpio)
			generic_handle_irq(
				irq_linear_revmap(gc->irq.domain, bit));
			generic_handle_domain_irq(gc->irq.domain, bit);
	}

	return  int_bits ? IRQ_HANDLED : IRQ_NONE;
+2 −5
Original line number Diff line number Diff line
@@ -1444,7 +1444,6 @@ static void byt_gpio_irq_handler(struct irq_desc *desc)
	u32 base, pin;
	void __iomem *reg;
	unsigned long pending;
	unsigned int virq;

	/* check from GPIO controller which pin triggered the interrupt */
	for (base = 0; base < vg->chip.ngpio; base += 32) {
@@ -1460,10 +1459,8 @@ static void byt_gpio_irq_handler(struct irq_desc *desc)
		raw_spin_lock(&byt_lock);
		pending = readl(reg);
		raw_spin_unlock(&byt_lock);
		for_each_set_bit(pin, &pending, 32) {
			virq = irq_find_mapping(vg->chip.irq.domain, base + pin);
			generic_handle_irq(virq);
		}
		for_each_set_bit(pin, &pending, 32)
			generic_handle_domain_irq(vg->chip.irq.domain, base + pin);
	}
	chip->irq_eoi(data);
}
Loading