linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] iio: adc: ad_sigma_delta: change to buffer predisable
@ 2025-07-03 21:07 David Lechner
  2025-07-04 12:43 ` Nuno Sá
  0 siblings, 1 reply; 3+ messages in thread
From: David Lechner @ 2025-07-03 21:07 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron,
	Nuno Sá, Andy Shevchenko
  Cc: linux-iio, linux-kernel, David Lechner

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>
---
 drivers/iio/adc/ad_sigma_delta.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
index 4c5f8d29a559fea7226b84141bcb148fb801f62c..1a2ee7c7f65afc60677af9f3138e59f6476f74c7 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -520,7 +520,7 @@ static int ad_sd_buffer_postenable(struct iio_dev *indio_dev)
 	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,
 };
 

---
base-commit: 6742eff60460e77158d4f1b233f17e0345c9e66a
change-id: 20250703-iio-adc-ad_sigma_delta-buffer-predisable-d10fc1914092

Best regards,
-- 
David Lechner <dlechner@baylibre.com>


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] iio: adc: ad_sigma_delta: change to buffer predisable
  2025-07-03 21:07 [PATCH] iio: adc: ad_sigma_delta: change to buffer predisable David Lechner
@ 2025-07-04 12:43 ` Nuno Sá
  2025-07-06 10:34   ` Jonathan Cameron
  0 siblings, 1 reply; 3+ messages in thread
From: Nuno Sá @ 2025-07-04 12:43 UTC (permalink / raw)
  To: David Lechner, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, Nuno Sá, Andy Shevchenko
  Cc: linux-iio, linux-kernel

On Thu, 2025-07-03 at 16:07 -0500, David Lechner wrote:
> 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>

>  drivers/iio/adc/ad_sigma_delta.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/ad_sigma_delta.c
> b/drivers/iio/adc/ad_sigma_delta.c
> index
> 4c5f8d29a559fea7226b84141bcb148fb801f62c..1a2ee7c7f65afc60677af9f3138e59f6476f
> 74c7 100644
> --- a/drivers/iio/adc/ad_sigma_delta.c
> +++ b/drivers/iio/adc/ad_sigma_delta.c
> @@ -520,7 +520,7 @@ static int ad_sd_buffer_postenable(struct iio_dev
> *indio_dev)
>  	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,
>  };
>  
> 
> ---
> base-commit: 6742eff60460e77158d4f1b233f17e0345c9e66a
> change-id: 20250703-iio-adc-ad_sigma_delta-buffer-predisable-d10fc1914092
> 
> Best regards,

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] iio: adc: ad_sigma_delta: change to buffer predisable
  2025-07-04 12:43 ` Nuno Sá
@ 2025-07-06 10:34   ` Jonathan Cameron
  0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2025-07-06 10:34 UTC (permalink / raw)
  To: Nuno Sá
  Cc: David Lechner, Lars-Peter Clausen, Michael Hennerich,
	Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel

On Fri, 04 Jul 2025 13:43:59 +0100
Nuno Sá <noname.nuno@gmail.com> wrote:

> On Thu, 2025-07-03 at 16:07 -0500, David Lechner wrote:
> > 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>
Applied to the fixes-togreg branch of iio.git and marked for stable.


> 
> >  drivers/iio/adc/ad_sigma_delta.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/iio/adc/ad_sigma_delta.c
> > b/drivers/iio/adc/ad_sigma_delta.c
> > index
> > 4c5f8d29a559fea7226b84141bcb148fb801f62c..1a2ee7c7f65afc60677af9f3138e59f6476f
> > 74c7 100644
> > --- a/drivers/iio/adc/ad_sigma_delta.c
> > +++ b/drivers/iio/adc/ad_sigma_delta.c
> > @@ -520,7 +520,7 @@ static int ad_sd_buffer_postenable(struct iio_dev
> > *indio_dev)
> >  	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,
> >  };
> >  
> > 
> > ---
> > base-commit: 6742eff60460e77158d4f1b233f17e0345c9e66a
> > change-id: 20250703-iio-adc-ad_sigma_delta-buffer-predisable-d10fc1914092
> > 
> > Best regards,  


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-07-06 10:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-03 21:07 [PATCH] iio: adc: ad_sigma_delta: change to buffer predisable David Lechner
2025-07-04 12:43 ` Nuno Sá
2025-07-06 10:34   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).