]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iio: adc: ad7173: Clear append status bit
authorDumitru Ceclan <dumitru.ceclan@analog.com>
Thu, 30 May 2024 12:07:52 +0000 (15:07 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 3 Jun 2024 18:05:19 +0000 (19:05 +0100)
The previous value of the append status bit was not cleared before
setting the new value. This caused the bit to remain set after enabling
buffered mode for multiple channels and not permit further buffered
reads from a single channel after the fact.

Fixes: 76a1e6a42802 ("iio: adc: ad7173: add AD7173 driver")
Signed-off-by: Dumitru Ceclan <dumitru.ceclan@analog.com>
Link: https://lore.kernel.org/r/20240530-ad7173-fixes-v3-4-b85f33079e18@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ad7173.c

index 048127bf979a96e4db1d8b9310acc3e8fcaea663..e2f17292409cb3341922db6766ae04fc86186a68 100644 (file)
@@ -543,6 +543,7 @@ static int ad7173_append_status(struct ad_sigma_delta *sd, bool append)
        unsigned int interface_mode = st->interface_mode;
        int ret;
 
+       interface_mode &= ~AD7173_INTERFACE_DATA_STAT;
        interface_mode |= AD7173_INTERFACE_DATA_STAT_EN(append);
        ret = ad_sd_write_reg(&st->sd, AD7173_REG_INTERFACE_MODE, 2, interface_mode);
        if (ret)