Re: [PATCH] iio: adc: ti-ads1119: Reinit completion before wait_for_completion_timeout()
From: Jonathan Cameron
Date: Mon Mar 02 2026 - 14:59:55 EST
On Tue, 03 Mar 2026 00:48:45 +0800
Felix Gu <ustc.gu@xxxxxxxxx> wrote:
> The completion is not reinit before wait_for_completion_timeout(),
> so wait_for_completion_timeout() will return immediately after
> the first successful completion.
>
> Fixes: a9306887eba4 ("iio: adc: ti-ads1119: Add driver")
> Signed-off-by: Felix Gu <ustc.gu@xxxxxxxxx>
I agree there is a bug here but a question inline.
> ---
> drivers/iio/adc/ti-ads1119.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/iio/adc/ti-ads1119.c b/drivers/iio/adc/ti-ads1119.c
> index c9cedc59cdcd..75dbb469fa27 100644
> --- a/drivers/iio/adc/ti-ads1119.c
> +++ b/drivers/iio/adc/ti-ads1119.c
> @@ -276,6 +276,9 @@ static int ads1119_single_conversion(struct ads1119_state *st,
> if (ret)
> goto pdown;
>
> + if (st->client->irq)
> + reinit_completion(&st->completion);
> +
What's the reason for doing here rather than a few lines later.
That is before this
ret = i2c_smbus_write_byte(st->client, ADS1119_CMD_START_SYNC);
which the naming suggests kicks of the actual channel capture?
Jonathan
> ret = ads1119_configure_channel(st, mux, gain, datarate);
> if (ret)
> goto pdown;
>
> ---
> base-commit: 3fa5e5702a82d259897bd7e209469bc06368bf31
> change-id: 20260303-ti-ads1119-1-cc68e3c01783
>
> Best regards,