Re: [PATCH v3 1/6] iio: imu: adis: Add optional self_test callback and fix custom reset dispatch
From: Nuno Sá
Date: Thu Oct 22 2026 - 10:37:51 EST
On Thu, 15 Oct 2026 12:32:58 +0300, Radu Sabau <radu.sabau@xxxxxxxxxx> wrote:
> diff --git a/drivers/iio/imu/adis.c b/drivers/iio/imu/adis.c
> index a2bc1d14ed91..448046fd2ada 100644
> --- a/drivers/iio/imu/adis.c
> +++ b/drivers/iio/imu/adis.c
> @@ -413,7 +422,20 @@ int __adis_initial_startup(struct adis *adis)
> gpiod_set_value_cansleep(gpio, 0);
> msleep(timeouts->reset_ms);
> } else {
> - ret = __adis_reset(adis);
> + ret = adis->ops->reset(adis);
> + if (ret)
> + return ret;
> + /*
> + * __adis_reset() already sleeps the settle time internally.
> + * Custom reset ops are documented (struct adis_ops::reset)
> + * not to, so sleep here for them.
> + */
> + if (adis->ops->reset != __adis_reset)
> + msleep(timeouts->sw_reset_ms);
Agree with Andy. Don't really like the above. Maybe we just have the one
explicit msleep() call in here (actually out of the if () else block)
and remove it from the internal __adis_reset(). Hence we can just call
the sleep() in adis_reset().
--
Nuno Sá <nuno.sa@xxxxxxxxxx>