]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: ad_sigma_delta: change to buffer predisable
authorDavid Lechner <dlechner@baylibre.com>
Thu, 3 Jul 2025 21:07:44 +0000 (16:07 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:34:20 +0000 (16:34 +0200)
commit 66d4374d97f85516b5a22418c5e798aed2606dec upstream.

Change the buffer disable callback from postdisable to predisable.
This balances the existing posteanble callback. Using postdisable
with posteanble can be problematic, for example, if update_scan_mode
fails, it would call postdisable without ever having called posteanble,
so the drivers using this would be in an unexpected state when
postdisable was called.

Fixes: af3008485ea0 ("iio:adc: Add common code for ADI Sigma Delta devices")
Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250703-iio-adc-ad_sigma_delta-buffer-predisable-v1-1-f2ab85138f1f@baylibre.com
Cc: <stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/iio/adc/ad_sigma_delta.c

index 6b3ef7ef403e00804abeb81025ed293b188e492b..debd59b3989474e568286469ba65ab44d1121aa7 100644 (file)
@@ -520,7 +520,7 @@ err_unlock:
        return ret;
 }
 
-static int ad_sd_buffer_postdisable(struct iio_dev *indio_dev)
+static int ad_sd_buffer_predisable(struct iio_dev *indio_dev)
 {
        struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
 
@@ -644,7 +644,7 @@ static bool ad_sd_validate_scan_mask(struct iio_dev *indio_dev, const unsigned l
 
 static const struct iio_buffer_setup_ops ad_sd_buffer_setup_ops = {
        .postenable = &ad_sd_buffer_postenable,
-       .postdisable = &ad_sd_buffer_postdisable,
+       .predisable = &ad_sd_buffer_predisable,
        .validate_scan_mask = &ad_sd_validate_scan_mask,
 };