gpio: ep93xx: Fix port F hwirq numbers in handler
authorNikita Shubin <nikita.shubin@maquefel.me>
Wed, 25 Jan 2023 08:30:24 +0000 (11:30 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Feb 2023 07:34:47 +0000 (08:34 +0100)
[ Upstream commit 0f04cdbdb210000a97c773b28b598fa8ac3aafa4 ]

Fix wrong translation of irq numbers in port F handler, as ep93xx hwirqs
increased by 1, we should simply decrease them by 1 in translation.

Fixes: 482c27273f52 ("ARM: ep93xx: renumber interrupts")
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpio/gpio-ep93xx.c

index 2e17797..7edcdc5 100644 (file)
@@ -148,7 +148,7 @@ static void ep93xx_gpio_f_irq_handler(struct irq_desc *desc)
         */
        struct irq_chip *irqchip = irq_desc_get_chip(desc);
        unsigned int irq = irq_desc_get_irq(desc);
-       int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
+       int port_f_idx = (irq & 7) ^ 4; /* {20..23,48..51} -> {0..7} */
        int gpio_irq = EP93XX_GPIO_F_IRQ_BASE + port_f_idx;
 
        chained_irq_enter(irqchip, desc);