Re: [PATCH v2] iio: proximity: sx9310: report a hysteresis of 0 when it is disabled

From: Jonathan Cameron

Date: Sun Nov 01 2026 - 19:47:30 EST


On Mon, 26 Oct 2026 16:50:49 +0530
Arnav Kapoor <kapoorarnav43@xxxxxxxxx> wrote:

> sx9310_read_hysteresis() turns a PROXHYST value of 0 (no hysteresis)
> into a shift of 0 and reports the full threshold, which writing back
> then usually fails with -EINVAL. Report 0, as sx9324 and sx9360 do.
>
> Fixes: 08f0411c48f2 ("iio: sx9310: Support setting hysteresis values")
> Signed-off-by: Arnav Kapoor <kapoorarnav43@xxxxxxxxx>
Seems correct to me, but not massively urgent. So with that in mind
I've queued this one on the testing branch of iio.git.
I've just rebased that on the newly available 7.4-rc1, so will give
it a few days exposure to the bots before pushing out for linux-next.

Thanks,

Jonathan

> ---
> Changes in v2:
> - Invert the conditional (Andy)
>
> v1: https://lore.kernel.org/all/20261026100041.16018-1-kapoorarnav43@xxxxxxxxx/
>
> Compile-tested only (W=1); I don't have SX9310 hardware.
>
> drivers/iio/proximity/sx9310.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
> index 79ba46d8a0aa..dc1b1c3f4776 100644
> --- a/drivers/iio/proximity/sx9310.c
> +++ b/drivers/iio/proximity/sx9310.c
> @@ -446,11 +446,10 @@ static int sx9310_read_hysteresis(struct sx_common_data *data,
> return ret;
>
> regval = FIELD_GET(SX9310_REG_PROX_CTRL10_HYST_MASK, regval);
> - if (!regval)
> - regval = 5;
> -
> - /* regval is at most 5 */
> - *val = pthresh >> (5 - regval);
> + if (regval)
> + *val = pthresh >> (5 - regval);
> + else
> + *val = 0;
>
> return IIO_VAL_INT;
> }
>
> base-commit: 2ef6f5c4ee56e90c237c5f7687f09e635f7d30a9