]> git.baikalelectronics.ru Git - kernel.git/commitdiff
gpio: gpio-aspeed-sgpio: Fix wrong hwirq in irq handler.
authorSteven Lee <steven_lee@aspeedtech.com>
Tue, 7 Sep 2021 09:55:25 +0000 (17:55 +0800)
committerBartosz Golaszewski <brgl@bgdev.pl>
Wed, 22 Sep 2021 09:23:10 +0000 (11:23 +0200)
The current hwirq is calculated based on the old GPIO pin order(input
GPIO range is from 0 to ngpios - 1).
It should be calculated based on the current GPIO input pin order(input
GPIOs are 0, 2, 4, ..., (ngpios - 1) * 2).

Signed-off-by: Steven Lee <steven_lee@aspeedtech.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-aspeed-sgpio.c

index 10f303d15225619d5aa07a36854d6522e12660f9..3d6ef37a7702a6ae775c1fb863e5882062dec372 100644 (file)
@@ -395,7 +395,7 @@ static void aspeed_sgpio_irq_handler(struct irq_desc *desc)
                reg = ioread32(bank_reg(data, bank, reg_irq_status));
 
                for_each_set_bit(p, &reg, 32)
-                       generic_handle_domain_irq(gc->irq.domain, i * 32 + p);
+                       generic_handle_domain_irq(gc->irq.domain, i * 32 + p * 2);
        }
 
        chained_irq_exit(ic, desc);