12345678910111213141516171819202122 |
- From: Sander Vanheule <[email protected]>
- Subject: 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 <[email protected]>
- Link: https://lore.kernel.org/linux-gpio/[email protected]/
- --- 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);
- }
- }
|