Re: [PATCH v2] iio: accel: sca3000: fix frequency divider condition check

Jonathan Cameron <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Message-ID <20260823194905.5a73f55f@jic23-huawei>
On Fri, 21 Aug 2026 16:01:12 +0100
Salah Triki <[email protected]> wrote:

> When setting the sampling frequency, the check for `base_freq / 2` is
> followed by an independent `if` statement for `base_freq / 4`. If `val`
> equals `base_freq / 2`, the second check fails and falls through to the
> `else if (val != base_freq)` branch, returning `-EINVAL` erroneously.
> 
> Fix this by chaining the checks with `else if`.
> 
> Fixes: e0f3fc9b47e6 ("iio: accel: sca3000_core: implemented IIO_CHAN_INFO_SAMP_FREQ")
> Signed-off-by: Salah Triki <[email protected]>
> Reviewed-by: Joshua Crofts <[email protected]>
> ---
Ah, I should have checked for a new version. Generally when it's just tags pick
up (even for fixes) no need to send a new version.  Never mind though as I think
the right thing landed anyway!

Jonathan

> Changes since v1:
>      - Add Fixes and Reviewed-by tags
> 
>  drivers/iio/accel/sca3000.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index 573831199bba..cced5cd82b02 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -638,7 +638,7 @@ static int sca3000_write_raw_samp_freq(struct sca3000_state *st, int val)
>  
>  	if (val == base_freq / 2)
>  		ctrlval |= SCA3000_REG_OUT_CTRL_BUF_DIV_2;
> -	if (val == base_freq / 4)
> +	else if (val == base_freq / 4)
>  		ctrlval |= SCA3000_REG_OUT_CTRL_BUF_DIV_4;
>  	else if (val != base_freq)
>  		return -EINVAL;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.