diff options
author | Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> | 2016-10-25 17:07:38 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2016-10-30 12:46:46 -0400 |
commit | d304286abbbe7ed6228a553a56ba054e900907eb (patch) | |
tree | 90abbdb90e151dd4b13e45c52b5aa1007e0ad6b1 /drivers/iio/common | |
parent | 34eee70a7b82b09dbda4cb453e0e21d460dae226 (diff) |
iio: st_sensors: fix scale configuration for h3lis331dl
fix scale configuration/parsing for h3lis331dl accel driver
when sensitivity is higher than 1(m/s^2)/digit
Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Fixes: 1e52fefc9b0c ("iio: accel: Add support for the h3lis331dl accelerometer")
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers/iio/common')
-rw-r--r-- | drivers/iio/common/st_sensors/st_sensors_core.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c index 285a64a589d7..975a1f19f747 100644 --- a/drivers/iio/common/st_sensors/st_sensors_core.c +++ b/drivers/iio/common/st_sensors/st_sensors_core.c | |||
@@ -612,7 +612,7 @@ EXPORT_SYMBOL(st_sensors_sysfs_sampling_frequency_avail); | |||
612 | ssize_t st_sensors_sysfs_scale_avail(struct device *dev, | 612 | ssize_t st_sensors_sysfs_scale_avail(struct device *dev, |
613 | struct device_attribute *attr, char *buf) | 613 | struct device_attribute *attr, char *buf) |
614 | { | 614 | { |
615 | int i, len = 0; | 615 | int i, len = 0, q, r; |
616 | struct iio_dev *indio_dev = dev_get_drvdata(dev); | 616 | struct iio_dev *indio_dev = dev_get_drvdata(dev); |
617 | struct st_sensor_data *sdata = iio_priv(indio_dev); | 617 | struct st_sensor_data *sdata = iio_priv(indio_dev); |
618 | 618 | ||
@@ -621,8 +621,10 @@ ssize_t st_sensors_sysfs_scale_avail(struct device *dev, | |||
621 | if (sdata->sensor_settings->fs.fs_avl[i].num == 0) | 621 | if (sdata->sensor_settings->fs.fs_avl[i].num == 0) |
622 | break; | 622 | break; |
623 | 623 | ||
624 | len += scnprintf(buf + len, PAGE_SIZE - len, "0.%06u ", | 624 | q = sdata->sensor_settings->fs.fs_avl[i].gain / 1000000; |
625 | sdata->sensor_settings->fs.fs_avl[i].gain); | 625 | r = sdata->sensor_settings->fs.fs_avl[i].gain % 1000000; |
626 | |||
627 | len += scnprintf(buf + len, PAGE_SIZE - len, "%u.%06u ", q, r); | ||
626 | } | 628 | } |
627 | mutex_unlock(&indio_dev->mlock); | 629 | mutex_unlock(&indio_dev->mlock); |
628 | buf[len - 1] = '\n'; | 630 | buf[len - 1] = '\n'; |