gpio: eic: sprd: Fix the incorrect EIC offset when toggling
When toggling the level trigger to emulate the edge trigger, the
EIC offset is incorrect without adding the corresponding bank index,
thus fix it.
Fixes: 7bf0d7f622
("gpio: eic: Add edge trigger emulation for EIC")
Cc: stable@vger.kernel.org
Signed-off-by: Bruce Chen <bruce.chen@unisoc.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
parent
be7ae45cfe
commit
e91aafcb51
|
@ -530,11 +530,12 @@ static void sprd_eic_handle_one_type(struct gpio_chip *chip)
|
|||
}
|
||||
|
||||
for_each_set_bit(n, ®, SPRD_EIC_PER_BANK_NR) {
|
||||
girq = irq_find_mapping(chip->irq.domain,
|
||||
bank * SPRD_EIC_PER_BANK_NR + n);
|
||||
u32 offset = bank * SPRD_EIC_PER_BANK_NR + n;
|
||||
|
||||
girq = irq_find_mapping(chip->irq.domain, offset);
|
||||
|
||||
generic_handle_irq(girq);
|
||||
sprd_eic_toggle_trigger(chip, girq, n);
|
||||
sprd_eic_toggle_trigger(chip, girq, offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue