Commit b98dbd82 authored by Jeffy Chen's avatar Jeffy Chen Committed by Bartosz Golaszewski
Browse files

gpio/rockchip: Convert to generic_handle_domain_irq()



Follow commit dbd1c54f ("gpio: Bulk conversion to
generic_handle_domain_irq()").

Signed-off-by: default avatarJeffy Chen <jeffy.chen@rock-chips.com>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
parent 66df18b3
Loading
Loading
Loading
Loading
+5 −16
Original line number Diff line number Diff line
@@ -325,26 +325,15 @@ static void rockchip_irq_demux(struct irq_desc *desc)
{
	struct irq_chip *chip = irq_desc_get_chip(desc);
	struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc);
	u32 pend;
	unsigned long pending;
	unsigned int irq;

	dev_dbg(bank->dev, "got irq for bank %s\n", bank->name);

	chained_irq_enter(chip, desc);

	pend = readl_relaxed(bank->reg_base + bank->gpio_regs->int_status);

	while (pend) {
		unsigned int irq, virq;

		irq = __ffs(pend);
		pend &= ~BIT(irq);
		virq = irq_find_mapping(bank->domain, irq);

		if (!virq) {
			dev_err(bank->dev, "unmapped irq %d\n", irq);
			continue;
		}

	pending = readl_relaxed(bank->reg_base + bank->gpio_regs->int_status);
	for_each_set_bit(irq, &pending, 32) {
		dev_dbg(bank->dev, "handling irq %d\n", irq);

		/*
@@ -378,7 +367,7 @@ static void rockchip_irq_demux(struct irq_desc *desc)
			} while ((data & BIT(irq)) != (data_old & BIT(irq)));
		}

		generic_handle_irq(virq);
		generic_handle_domain_irq(bank->domain, irq);
	}

	chained_irq_exit(chip, desc);