gpio: davinci: Clear interrupt status in every bank on suspend

davinci_gpio_save_context() saves the registers of each 32-GPIO
register bank, but clears interrupt status only after the loop. At that
point g refers to the last bank, so pending status in all preceding
banks is left uncleared.

Move the interrupt-status write into the per-bank loop so that the
existing suspend-time clearing covers every register bank. Single-bank
controllers retain the same behavior.

Fixes: 0651a73092 ("gpio: davinci: Add support for system suspend/resume PM")
Cc: stable@vger.kernel.org
Signed-off-by: Sahaj Chaudhari <sahaj123.sc@gmail.com>
Link: https://patch.msgid.link/20261018170622.3406158-1-sahaj123.sc@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
Sahaj Chaudhari 2026-10-18 22:36:22 +05:30 committed by Bartosz Golaszewski
parent 8381e1f15e
commit 800d7627f5

View File

@ -611,10 +611,10 @@ static void davinci_gpio_save_context(struct davinci_gpio_controller *chips,
context->set_data = readl_relaxed(&g->set_data);
context->set_rising = readl_relaxed(&g->set_rising);
context->set_falling = readl_relaxed(&g->set_falling);
}
/* Clear all interrupt status registers */
writel_relaxed(GENMASK(31, 0), &g->intstat);
/* Clear stale interrupt status for this bank. */
writel_relaxed(GENMASK(31, 0), &g->intstat);
}
}
static void davinci_gpio_restore_context(struct davinci_gpio_controller *chips,