summaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorPaul Cercueil <paul@crapouillou.net>2022-01-17 11:25:11 +0100
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2022-06-15 23:07:09 +0200
commit9e5b4cd2e9c0b1bd426bda633677eb870327faf5 (patch)
tree61ff1206beb73f77e68a1ef057ce98ba3ed14ac5 /drivers/iio
parentiio: imu: lsm6dsx: Move exported symbols to the IIO_LSM6DSX namespace (diff)
downloadlinux-9e5b4cd2e9c0b1bd426bda633677eb870327faf5.tar.xz
linux-9e5b4cd2e9c0b1bd426bda633677eb870327faf5.zip
iio: imu: st_lsm6dsx: Limit requested watermark value to hwfifo size
Instead of returning an error if the watermark value is too high, which the core will silently ignore anyway, limit the value to the hardware FIFO size; a lower-than-requested value is still better than using the default, which is usually 1. Cc: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> Signed-off-by: Paul Cercueil <paul@crapouillou.net> Acked-by: Lorenzo Bianconi <lorenzo@kernel.org> Link: https://lore.kernel.org/r/20220117102512.31725-1-paul@crapouillou.net Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index 6b268f1c5fc3..b5e4a4113652 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -54,6 +54,7 @@
#include <linux/iio/sysfs.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
+#include <linux/minmax.h>
#include <linux/pm.h>
#include <linux/property.h>
#include <linux/regmap.h>
@@ -1615,8 +1616,7 @@ int st_lsm6dsx_set_watermark(struct iio_dev *iio_dev, unsigned int val)
struct st_lsm6dsx_hw *hw = sensor->hw;
int err;
- if (val < 1 || val > hw->settings->fifo_ops.max_size)
- return -EINVAL;
+ val = clamp_val(val, 1, hw->settings->fifo_ops.max_size);
mutex_lock(&hw->conf_lock);