diff options
| author | Evan Wilson <evan@oliodevices.com> | 2016-02-08 21:40:35 -0800 |
|---|---|---|
| committer | Evan Wilson <evan@oliodevices.com> | 2016-04-14 15:41:48 -0700 |
| commit | cc189b38c8b650903a9840712f7d4aeb6569ae58 (patch) | |
| tree | 23c570243a498635e3c400191ebaf3ca508beb97 | |
| parent | e2b260a10ab1b7e4fad99e3f93b1063546fe6812 (diff) | |
| download | olio-linux-3.10-staging-1.3.tar.xz olio-linux-3.10-staging-1.3.zip | |
Moving the md1 init from probe to enable, because it was causing crashes during a cold Linux initramfs bootstaging-1.3
Change-Id: I484139800fc3e019cd7bc22d00812bd99e63b971
| -rw-r--r-- | drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c index 12dc8cbf1c7..ff8ff53d0e6 100644 --- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c +++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c @@ -1082,6 +1082,7 @@ static int st_lsm6ds3_enable_pedometer(struct lsm6ds3_sensor_data *sdata, static int st_lsm6ds3_enable_sensors(struct lsm6ds3_sensor_data *sdata) { + u8 regval; int err, i; switch (sdata->sindex) { @@ -1097,6 +1098,13 @@ static int st_lsm6ds3_enable_sensors(struct lsm6ds3_sensor_data *sdata) if (sdata->sindex == ST_INDIO_DEV_ACCEL) { sdata->cdata->accel_samples_to_discard = ST_LSM6DS3_ACCEL_STD; + regval = 0x44; // MD1 (6D and Tap on INT1) + err = sdata->cdata->tf->write(sdata->cdata, + ST_LSM6DS3_MD1_ADDR, + 1, ®val, false); + if(err < 0) { + return err; + } } sdata->cdata->gyro_samples_to_discard = ST_LSM6DS3_GYRO_STD; @@ -1546,10 +1554,6 @@ static int st_lsm6ds3_init_sensor(struct lsm6ds3_data *cdata) #define ST_LSM6DS3_CTRL8_LPF_ON_ACCEL 0x80 #define ST_LSM6DS3_CTRL4_ADDR 0x13 #define ST_LSM6DS3_CTRL4_STOP_ON_FTH_MASK 0x1 - regval = 0x44; // MD1 (6D and Tap on INT1) - err = sdata->cdata->tf->write(sdata->cdata, - ST_LSM6DS3_MD1_ADDR, - 1, ®val, false); regval = 0x48;//tap threshold err = sdata->cdata->tf->write(sdata->cdata, |