summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikhil Gautam <nikhilgtr@gmail.com>2026-07-22 21:52:46 +0530
committerJonathan Cameron <jonathan.cameron@oss.qualcomm.com>2026-08-07 23:51:05 +0100
commit5d89e7cbac40057f5241a0832a86ce0fe97e4818 (patch)
treead0b62944d159317effeef4035dbaa539a15e491
parent579c049b4cb6fc72ce2c505fc5334540be0efcd3 (diff)
downloadlinux-stable-5d89e7cbac40057f5241a0832a86ce0fe97e4818.tar.gz
linux-stable-5d89e7cbac40057f5241a0832a86ce0fe97e4818.zip
iio: light: gp2ap002: re-enable irq if runtime suspend fails
gp2ap002_runtime_suspend() disables the irq before writing OPMOD. If the write fails, the callback returns an error with the irq still disabled while the PM core marks the device active again. re-enable the irq before returning the error so the irq state matches the active state the PM core restores. Fixes: 97d642e23037c ("iio: light: Add a driver for Sharp GP2AP002x00F") Signed-off-by: Nikhil Gautam <nikhilgtr@gmail.com> Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
-rw-r--r--drivers/iio/light/gp2ap002.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/iio/light/gp2ap002.c b/drivers/iio/light/gp2ap002.c
index 708a77006529..de29081fd3b2 100644
--- a/drivers/iio/light/gp2ap002.c
+++ b/drivers/iio/light/gp2ap002.c
@@ -649,6 +649,7 @@ static int gp2ap002_runtime_suspend(struct device *dev)
/* Disable chip and IRQ, everything off */
ret = regmap_write(gp2ap002->map, GP2AP002_OPMOD, 0x00);
if (ret) {
+ enable_irq(gp2ap002->irq);
dev_err(gp2ap002->dev, "error setting up operation mode\n");
return ret;
}