iio: imu: inv_icm42670: fix dead lock when resume

Signed-off-by: Yu Zheng <yu.zheng@rock-chips.com>
Change-Id: I1aae323d4ee49abcff374d80e3611da2f5c7c023
This commit is contained in:
Yu Zheng
2025-05-28 18:05:12 +08:00
committed by Tao Huang
parent 27e9662f0c
commit 75da3224ff

View File

@@ -1342,17 +1342,8 @@ static int __maybe_unused sleep_icm42670_resume(struct device *dev)
struct icm42670_data *st = iio_priv(dev_get_drvdata(dev));
struct iio_dev *indio_dev = dev_get_drvdata(dev);
mutex_lock(&st->lock);
if (!pm_runtime_suspended(dev))
goto out_unlock;
usleep_range(3000, 4000);
pm_runtime_disable(dev);
pm_runtime_set_active(dev);
pm_runtime_enable(dev);
icm42670_set_odr(st, ICM42670_GYRO, st->gyro_frequency_buff);
icm42670_set_odr(st, ICM42670_ACCEL, st->accel_frequency_buff);
icm42670_set_lpf_bw(st, ICM42670_ACCEL, st->accel_lpf_bw_buff);
@@ -1360,8 +1351,6 @@ static int __maybe_unused sleep_icm42670_resume(struct device *dev)
ret = icm42670_set_enable(indio_dev, 1);
out_unlock:
mutex_unlock(&st->lock);
return ret;
}
@@ -1375,11 +1364,6 @@ static int __maybe_unused sleep_icm42670_suspend(struct device *dev)
struct iio_dev *indio_dev = dev_get_drvdata(dev);
int ret = 0;
mutex_lock(&st->lock);
if (pm_runtime_suspended(dev))
goto out_unlock;
st->gyro_frequency_buff = st->gyro_frequency;
st->accel_frequency_buff = st->accel_frequency;
st->accel_lpf_bw_buff = st->accel_lpf_bw;
@@ -1387,8 +1371,6 @@ static int __maybe_unused sleep_icm42670_suspend(struct device *dev)
ret = icm42670_set_enable(indio_dev, 0);
out_unlock:
mutex_unlock(&st->lock);
return ret;
}