[PATCH v7 2/2] dmaengine: qcom-gpi: Keep GPI interrupt active during system resume
From: Mukesh Kumar Savaliya
Date: Thu Jul 09 2026 - 10:07:09 EST
GPI DMA clients may initiate transfers during the early stages of
system resume before the normal IRQ resume phase has completed.
However, the GPI interrupt is currently suspended during system
sleep, preventing transfer completion notifications from being
delivered until later in the resume sequence.
Request the GPI interrupt with IRQF_NO_SUSPEND and IRQF_EARLY_RESUME
to keep it available across suspend/resume transitions and allow
interrupt handling to resume during the noirq phase.
This ensures DMA completion events can be delivered to clients that
become operational before the normal resume phase completes
Signed-off-by: Mukesh Kumar Savaliya <mukesh.savaliya@xxxxxxxxxxxxxxxx>
Acked-by: Aniket Randive <aniketrandive@xxxxxxxxxxxxxxxx>
---
drivers/dma/qcom/gpi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c
index a5055a6273af..29872b6cb2c7 100644
--- a/drivers/dma/qcom/gpi.c
+++ b/drivers/dma/qcom/gpi.c
@@ -615,7 +615,8 @@ static int gpi_config_interrupts(struct gpii *gpii, enum gpii_irq_settings setti
if (!gpii->configured_irq) {
ret = devm_request_irq(gpii->gpi_dev->dev, gpii->irq,
- gpi_handle_irq, IRQF_TRIGGER_HIGH,
+ gpi_handle_irq,
+ IRQF_TRIGGER_HIGH | IRQF_NO_SUSPEND | IRQF_EARLY_RESUME,
"gpi-dma", gpii);
if (ret < 0) {
dev_err(gpii->gpi_dev->dev, "error request irq:%d ret:%d\n",
--
2.43.0