diff options
| author | Mister Oyster <oysterized@gmail.com> | 2017-03-01 12:22:43 +0100 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-11 10:59:59 +0200 |
| commit | c477cfab99877f351b34526b2bed66ae2c1d3f36 (patch) | |
| tree | 86e6578f68b2c37fbd45067533aaaa2bdd3b360d /drivers/iio | |
| parent | 49ccf8135d278bf9d4a328a9d23d4f18cee7a89e (diff) | |
lsm6ds3: fix suspend/resume behavior
Diffstat (limited to 'drivers/iio')
| -rwxr-xr-x | drivers/iio/imu/st_lsm6ds3/st_lsm6ds3.h | 2 | ||||
| -rwxr-xr-x | drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c | 8 |
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)) |
