From fb70029b5099e955e3356a16bcb1c63ea99d7528 Mon Sep 17 00:00:00 2001 From: Guenter Roeck Date: Fri, 28 Oct 2016 14:12:31 +0100 Subject: [PATCH] i.MX: Fix GPIO ISR register write Writing the ISR register is supposed to clear interrupt status bits, not to set them. This patch makes '-M sabrelite' work without devicetree changes (Linux kernel versions 3.18 to 4.7 with imx_v6_v7_defconfig and up to v4.8 with multi_v7_defconfig; mainline has different problems). Signed-off-by: Guenter Roeck Message-id: 1477361005-18646-1-git-send-email-linux@roeck-us.net Acked-by: Jean-Christophe Dubois Signed-off-by: Peter Maydell --- hw/gpio/imx_gpio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/gpio/imx_gpio.c b/hw/gpio/imx_gpio.c index f3574aa8f3..c36c394fda 100644 --- a/hw/gpio/imx_gpio.c +++ b/hw/gpio/imx_gpio.c @@ -237,7 +237,7 @@ static void imx_gpio_write(void *opaque, hwaddr offset, uint64_t value, break; case ISR_ADDR: - s->isr |= ~value; + s->isr &= ~value; imx_gpio_set_all_int_lines(s); break;