summaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-sprd.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2021-05-04 17:42:18 +0100
committerMarc Zyngier <maz@kernel.org>2021-08-12 11:39:38 +0100
commitdbd1c54fc82051bf7f3271b43517281f5b2cff51 (patch)
treea68e4e068b8197831200a893c7d438ab50fda122 /drivers/gpio/gpio-sprd.c
parent991007ba6ccad588504cbd1eadf19fbf15c67ace (diff)
downloadlinux-stable-dbd1c54fc82051bf7f3271b43517281f5b2cff51.tar.gz
linux-stable-dbd1c54fc82051bf7f3271b43517281f5b2cff51.tar.bz2
linux-stable-dbd1c54fc82051bf7f3271b43517281f5b2cff51.zip
gpio: 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 <geert+renesas@glider.be> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'drivers/gpio/gpio-sprd.c')
-rw-r--r--drivers/gpio/gpio-sprd.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/gpio/gpio-sprd.c b/drivers/gpio/gpio-sprd.c
index 25c37edcbc6c..9dd9dabb579e 100644
--- a/drivers/gpio/gpio-sprd.c
+++ b/drivers/gpio/gpio-sprd.c
@@ -189,7 +189,7 @@ static void sprd_gpio_irq_handler(struct irq_desc *desc)
struct gpio_chip *chip = irq_desc_get_handler_data(desc);
struct irq_chip *ic = irq_desc_get_chip(desc);
struct sprd_gpio *sprd_gpio = gpiochip_get_data(chip);
- u32 bank, n, girq;
+ u32 bank, n;
chained_irq_enter(ic, desc);
@@ -198,13 +198,9 @@ static void sprd_gpio_irq_handler(struct irq_desc *desc)
unsigned long reg = readl_relaxed(base + SPRD_GPIO_MIS) &
SPRD_GPIO_BANK_MASK;
- for_each_set_bit(n, &reg, SPRD_GPIO_BANK_NR) {
- girq = irq_find_mapping(chip->irq.domain,
- bank * SPRD_GPIO_BANK_NR + n);
-
- generic_handle_irq(girq);
- }
-
+ for_each_set_bit(n, &reg, SPRD_GPIO_BANK_NR)
+ generic_handle_domain_irq(chip->irq.domain,
+ bank * SPRD_GPIO_BANK_NR + n);
}
chained_irq_exit(ic, desc);
}