Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpio: gpio-aspeed-sgpio: Fix wrong hwirq base in irq handler

Each aspeed sgpio bank has 64 gpio pins(32 input pins and 32 output pins).
The hwirq base for each sgpio bank should be multiples of 64 rather than
multiples of 32.

Signed-off-by: Steven Lee <steven_lee@aspeedtech.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>

authored by

Steven Lee and committed by
Bartosz Golaszewski
e5a7431f c9e6606c

+1 -1
+1 -1
drivers/gpio/gpio-aspeed-sgpio.c
··· 395 395 reg = ioread32(bank_reg(data, bank, reg_irq_status)); 396 396 397 397 for_each_set_bit(p, &reg, 32) 398 - generic_handle_domain_irq(gc->irq.domain, i * 32 + p * 2); 398 + generic_handle_domain_irq(gc->irq.domain, (i * 32 + p) * 2); 399 399 } 400 400 401 401 chained_irq_exit(ic, desc);