From: Lars Povlsen Date: Wed, 3 Feb 2021 12:38:25 +0000 (+0100) Subject: pinctrl: microchip-sgpio: Fix wrong register offset for IRQ trigger X-Git-Tag: Ubuntu-5.11.0-14.15~44 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=9ecb3d791f65e0f7f64d07a5e2b70405bafc1d10;p=mirror_ubuntu-hirsute-kernel.git pinctrl: microchip-sgpio: Fix wrong register offset for IRQ trigger BugLink: https://bugs.launchpad.net/bugs/1923069 commit 5d5f2919273d1089a00556cad68e7f462f3dd2eb upstream. This patch fixes using a wrong register offset when configuring an IRQ trigger type. Fixes: be2dc859abd4 ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)") Reported-by: Gustavo A. R. Silva Signed-off-by: Lars Povlsen Reviewed-by: Gustavo A. R. Silva Link: https://lore.kernel.org/r/20210203123825.611576-1-lars.povlsen@microchip.com Signed-off-by: Linus Walleij Signed-off-by: Greg Kroah-Hartman Signed-off-by: Andrea Righi --- diff --git a/drivers/pinctrl/pinctrl-microchip-sgpio.c b/drivers/pinctrl/pinctrl-microchip-sgpio.c index f35edb0eac40..c12fa57ebd12 100644 --- a/drivers/pinctrl/pinctrl-microchip-sgpio.c +++ b/drivers/pinctrl/pinctrl-microchip-sgpio.c @@ -572,7 +572,7 @@ static void microchip_sgpio_irq_settype(struct irq_data *data, /* Type value spread over 2 registers sets: low, high bit */ sgpio_clrsetbits(bank->priv, REG_INT_TRIGGER, addr.bit, BIT(addr.port), (!!(type & 0x1)) << addr.port); - sgpio_clrsetbits(bank->priv, REG_INT_TRIGGER + SGPIO_MAX_BITS, addr.bit, + sgpio_clrsetbits(bank->priv, REG_INT_TRIGGER, SGPIO_MAX_BITS + addr.bit, BIT(addr.port), (!!(type & 0x2)) << addr.port); if (type == SGPIO_INT_TRG_LEVEL)