mirror of
https://github.com/openwrt/openwrt.git
synced 2025-04-14 06:27:03 +00:00
realtek: backport GPIO IRQ index fix
Backport the patch queued upstream for 5.16. The patch differs slightly from the upstream patch due to an upstream change that added a convenience function. Signed-off-by: Sander Vanheule <sander@svanheule.net>
This commit is contained in:
parent
b69dfb0a99
commit
c735d2e218
@ -0,0 +1,21 @@
|
||||
gpio: realtek-otto: fix GPIO line IRQ offset
|
||||
|
||||
The irqchip uses one domain for all GPIO lines, so th line offset should be
|
||||
determined w.r.t. the first line of the first port, not the first line of the
|
||||
triggered port.
|
||||
|
||||
Fixes: 0d82fb1127fb ("gpio: Add Realtek Otto GPIO support")
|
||||
Signed-off-by: Sander Vanheule <sander@svanheule.net>
|
||||
Link: https://lore.kernel.org/linux-gpio/20211028085243.34360-1-sander@svanheule.net/
|
||||
|
||||
--- a/drivers/gpio/gpio-realtek-otto.c
|
||||
+++ b/drivers/gpio/gpio-realtek-otto.c
|
||||
@@ -206,7 +206,7 @@ static void realtek_gpio_irq_handler(str
|
||||
status = realtek_gpio_read_isr(ctrl, lines_done / 8);
|
||||
port_pin_count = min(gc->ngpio - lines_done, 8U);
|
||||
for_each_set_bit(offset, &status, port_pin_count) {
|
||||
- irq = irq_find_mapping(gc->irq.domain, offset);
|
||||
+ irq = irq_find_mapping(gc->irq.domain, offset + lines_done);
|
||||
generic_handle_irq(irq);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user