All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nuno Sá" <nuno.sa@analog.com>
To: Jonathan Cameron <jic23@kernel.org>
Cc: iio@vger.kernel.org,
	Per-Daniel Olsson <perdaniel.olsson@axis.com>,
	Kurt Borja <kuurtb@gmail.com>,
	David Lechner <dlechner@baylibre.com>,
	Andy Shevchenko <andy@kernel.org>,
	linux-kernel@vger.kernel.org,
	Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH] iio: light: opt4060: fix inverted own trigger check
Date: Mon, 9 Nov 2026 15:52:31 +0000	[thread overview]
Message-ID: <avHsKUE4xJ0vdu6P@nsa> (raw)
In-Reply-To: <20261109024746.1253593-1-jic23@kernel.org>

On Mon, Nov 09, 2026 at 02:47:45AM +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
> 
> opt4060_set_driver_state() is meant to keep sampling and the interrupt
> on every conversion enabled while the buffer is in use with the
> driver's own trigger, as that interrupt is what fires the trigger.
> 
> When converted to use IIO_DEV_GUARD_CURRENT_MODE() the negation of
> iio_trigger_validate_own_device(), which returns 0 for the device's own
> trigger, was lost. As a result, with the driver's own trigger in use,
> enabling or disabling a threshold event switches the interrupt to
> thresholds only and buffered capture stops. With another trigger in
> use, the one shot conversions requested by opt4060_trigger_new_samples()
> are instead forced to continuous mode.
> 
> Restore the negation so the code matches the comment above it.
> 
> Fixes: 8284a4985416 ("iio: light: opt4060: Use IIO cleanup helpers")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
> ---
> This was found by an LLM whilst doing a refactor of related code.
> Indeed seems there was a change of behavior in the sited patch that
> wasn't as intended.
> ---

Reviewed-by: Nuno Sá <nuno.sa@analog.com>

>  drivers/iio/light/opt4060.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/light/opt4060.c b/drivers/iio/light/opt4060.c
> index 8253a6a8bee4..1a7d429453be 100644
> --- a/drivers/iio/light/opt4060.c
> +++ b/drivers/iio/light/opt4060.c
> @@ -310,7 +310,7 @@ static int opt4060_set_driver_state(struct iio_dev *indio_dev,
>  	 * IRQ and sampling must go to or remain continuous.
>  	 */
>  	if (iio_buffer_enabled(indio_dev) &&
> -	    iio_trigger_validate_own_device(indio_dev->trig, indio_dev))
> +	    !iio_trigger_validate_own_device(indio_dev->trig, indio_dev))
>  		return opt4060_set_state_common(chip, true, true);
>  
>  	/*
> -- 
> 2.56.0
> 

  reply	other threads:[~2026-11-09 15:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-09  2:47 [PATCH] iio: light: opt4060: fix inverted own trigger check Jonathan Cameron
2026-11-09 15:52 ` Nuno Sá [this message]
2026-11-09 16:56   ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=avHsKUE4xJ0vdu6P@nsa \
    --to=nuno.sa@analog.com \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=iio@vger.kernel.org \
    --cc=jic23@kernel.org \
    --cc=jonathan.cameron@oss.qualcomm.com \
    --cc=kuurtb@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perdaniel.olsson@axis.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.