iio: at91-sama5d2: Limit requested watermark value to hwfifo size
authorPaul Cercueil <paul@crapouillou.net>
Mon, 17 Jan 2022 10:25:12 +0000 (10:25 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 15 Jun 2022 21:07:10 +0000 (22:07 +0100)
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: Eugen Hristev <eugen.hristev@microchip.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Ludovic Desroches <ludovic.desroches@microchip.com>
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20220117102512.31725-2-paul@crapouillou.net
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/at91-sama5d2_adc.c

index b764823ce57e35474a6ad24217424509cea879bd..fe3131c9593cc1de96ad023946cde17d87ba29df 100644 (file)
@@ -1752,7 +1752,7 @@ static int at91_adc_set_watermark(struct iio_dev *indio_dev, unsigned int val)
        int ret;
 
        if (val > AT91_HWFIFO_MAX_SIZE)
-               return -EINVAL;
+               val = AT91_HWFIFO_MAX_SIZE;
 
        if (!st->selected_trig->hw_trig) {
                dev_dbg(&indio_dev->dev, "we need hw trigger for DMA\n");