aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdrivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h2
-rwxr-xr-xdrivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c8
2 files changed, 3 insertions, 7 deletions
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h
index f8a864de8..22c7f2871 100755
--- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h
+++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h
@@ -68,7 +68,7 @@
#define ST_LSM6DS3_EXT_SENSORS ((1 << ST_INDIO_DEV_EXT0) | \
(1 << ST_INDIO_DEV_EXT1))
-#ifdef CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP
+#ifndef CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP
#define ST_LSM6DS3_WAKE_UP_SENSORS ((1 << ST_INDIO_DEV_SIGN_MOTION) | \
(1 << ST_INDIO_DEV_TILT))
#else /* CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP */
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
index 3c685a35d..8e13b5068 100755
--- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
+++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
@@ -2542,7 +2542,6 @@ EXPORT_SYMBOL(st_lsm6ds3_common_remove);
#ifdef CONFIG_PM
int st_lsm6ds3_common_suspend(struct lsm6ds3_data *cdata)
{
-#ifndef CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP
int err, i;
u8 tmp_sensors_enabled;
struct lsm6ds3_sensor_data *sdata;
@@ -2550,7 +2549,7 @@ int st_lsm6ds3_common_suspend(struct lsm6ds3_data *cdata)
tmp_sensors_enabled = cdata->sensors_enabled;
for (i = 0; i < ST_INDIO_DEV_NUM; i++) {
- if ((i == ST_INDIO_DEV_SIGN_MOTION) || (i == ST_INDIO_DEV_TILT))
+ if ((1 << i) & ST_LSM6DS3_WAKE_UP_SENSORS)
continue;
sdata = iio_priv(cdata->indio_dev[i]);
@@ -2560,7 +2559,6 @@ int st_lsm6ds3_common_suspend(struct lsm6ds3_data *cdata)
return err;
}
cdata->sensors_enabled = tmp_sensors_enabled;
-#endif /* CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP */
sdata = iio_priv(cdata->indio_dev[ST_INDIO_DEV_ACCEL]);
if (sdata->sensor_phone_calling && (cdata->sensors_enabled & (1 << sdata->sindex))) {
@@ -2584,12 +2582,11 @@ EXPORT_SYMBOL(st_lsm6ds3_common_suspend);
int st_lsm6ds3_common_resume(struct lsm6ds3_data *cdata)
{
-#ifndef CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP
int err, i;
struct lsm6ds3_sensor_data *sdata;
for (i = 0; i < ST_INDIO_DEV_NUM; i++) {
- if ((i == ST_INDIO_DEV_SIGN_MOTION) || (i == ST_INDIO_DEV_TILT))
+ if ((1 << i) & ST_LSM6DS3_WAKE_UP_SENSORS)
continue;
sdata = iio_priv(cdata->indio_dev[i]);
@@ -2600,7 +2597,6 @@ int st_lsm6ds3_common_resume(struct lsm6ds3_data *cdata)
return err;
}
}
-#endif /* CONFIG_ST_LSM6DS3_IIO_SENSORS_WAKEUP */
if (cdata->sensors_enabled & ST_LSM6DS3_WAKE_UP_SENSORS) {
if (device_may_wakeup(cdata->dev))