[PATCH] iio: proximity: sx9310: report a hysteresis of 0 when it is disabled
From: Arnav Kapoor
Date: Mon Oct 26 2026 - 06:09:40 EST
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>
---
Compile-tested only (W=1); I don't have SX9310 hardware.
drivers/iio/proximity/sx9310.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
index 79ba46d8a0aa..80b9714caf39 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -447,10 +447,9 @@ static int sx9310_read_hysteresis(struct sx_common_data *data,
regval = FIELD_GET(SX9310_REG_PROX_CTRL10_HYST_MASK, regval);
if (!regval)
- regval = 5;
-
- /* regval is at most 5 */
- *val = pthresh >> (5 - regval);
+ *val = 0;
+ else
+ *val = pthresh >> (5 - regval);
return IIO_VAL_INT;
}
base-commit: 2ef6f5c4ee56e90c237c5f7687f09e635f7d30a9
--
2.53.0