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;