From ab9de5b30ff6d9996fe1f9891431e27b8f1b2170 Mon Sep 17 00:00:00 2001 From: Denis Benato Date: Fri, 7 Jun 2024 21:24:10 +0200 Subject: [PATCH] hack: call disable_irq on suspend and enable_irq on resume --- drivers/iio/imu/bmi323/bmi323_core.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/iio/imu/bmi323/bmi323_core.c b/drivers/iio/imu/bmi323/bmi323_core.c index 4692f69ec5aa77..b11eb7a27eeb43 100644 --- a/drivers/iio/imu/bmi323/bmi323_core.c +++ b/drivers/iio/imu/bmi323/bmi323_core.c @@ -2160,6 +2160,18 @@ static int bmi323_core_suspend(struct device *dev) struct bmi323_data *data = iio_priv(indio_dev); guard(mutex)(&data->sleep_mutex); + + if (indio_dev->pollfunc) { + if (indio_dev->pollfunc->irq > 0) { + disable_irq(indio_dev->pollfunc->irq); + } else { + dev_err(data->dev, "indio_dev->pollfunc->irq is %d\n", indio_dev->pollfunc->irq); + } + } else { + dev_err(data->dev, "indio_dev->pollfunc is NULL\n"); + } + + data->sleeping = true; /* @@ -2176,6 +2188,17 @@ static int bmi323_core_resume(struct device *dev) struct bmi323_data *data = iio_priv(indio_dev); guard(mutex)(&data->sleep_mutex); + + if (indio_dev->pollfunc) { + if (indio_dev->pollfunc->irq > 0) { + enable_irq(indio_dev->pollfunc->irq); + } else { + dev_err(data->dev, "indio_dev->pollfunc->irq is %d\n", indio_dev->pollfunc->irq); + } + } else { + dev_err(data->dev, "indio_dev->pollfunc is NULL\n"); + } + data->sleeping = false; /*