Commit 9e5b4cd2 authored by Paul Cercueil's avatar Paul Cercueil Committed by Jonathan Cameron
Browse files

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: default avatarPaul Cercueil <paul@crapouillou.net>
Acked-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Link: https://lore.kernel.org/r/20220117102512.31725-1-paul@crapouillou.net


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 2b059449
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);