Re: [PATCH 4/5] iio: stmpe-adc: Use wait_for_completion_timeout

From: Jonathan Cameron
Date: Sat May 11 2019 - 06:17:23 EST


On Tue, 7 May 2019 16:36:14 +0200
Philippe Schenker <dev@xxxxxxxxxxxx> wrote:

> From: Philippe Schenker <philippe.schenker@xxxxxxxxxxx>
>
> Use wait_for_completion_timeout instead of
> wait_for_completion_interuptible_timeout.
>
> The interruptible variant gets constantly interrupted if a user
> program is compiled with the -pg option.
> The killable variant was not used due to the fact that a second
> program, reading on this device, that gets killed is then also killing
> that wait.
>
> Signed-off-by: Philippe Schenker <philippe.schenker@xxxxxxxxxxx>
Hi Phillippe

This one clashed a little bit with our earlier patch to remove the
unnecessary assignment. I've applied it by hand but please check it.

Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.

Thanks,

Jonathan
> ---
>
> drivers/iio/adc/stmpe-adc.c | 18 ++++--------------
> 1 file changed, 4 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/iio/adc/stmpe-adc.c b/drivers/iio/adc/stmpe-adc.c
> index 82b43e4522b6..cc752a47444c 100644
> --- a/drivers/iio/adc/stmpe-adc.c
> +++ b/drivers/iio/adc/stmpe-adc.c
> @@ -77,17 +77,11 @@ static int stmpe_read_voltage(struct stmpe_adc *info,
> stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
> STMPE_ADC_CH(info->channel));
>
> - *val = info->value;
> -
> - ret = wait_for_completion_interruptible_timeout
> - (&info->completion, STMPE_ADC_TIMEOUT);
> + ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
>
> if (ret <= 0) {
> mutex_unlock(&info->lock);
> - if (ret == 0)
> - return -ETIMEDOUT;
> - else
> - return ret;
> + return -ETIMEDOUT;
> }
>
> *val = info->value;
> @@ -116,15 +110,11 @@ static int stmpe_read_temp(struct stmpe_adc *info,
> stmpe_reg_write(info->stmpe, STMPE_REG_TEMP_CTRL,
> STMPE_START_ONE_TEMP_CONV);
>
> - ret = wait_for_completion_interruptible_timeout
> - (&info->completion, STMPE_ADC_TIMEOUT);
> + ret = wait_for_completion_timeout(&info->completion, STMPE_ADC_TIMEOUT);
>
> if (ret <= 0) {
> mutex_unlock(&info->lock);
> - if (ret == 0)
> - return -ETIMEDOUT;
> - else
> - return ret;
> + return -ETIMEDOUT;
> }
>
> /*