Re: [PATCH 4/5] iio: stmpe-adc: Use wait_for_completion_timeout
From: Philippe Schenker
Date: Mon May 13 2019 - 03:30:32 EST
On Sat, 2019-05-11 at 11:15 +0100, Jonathan Cameron wrote:
> 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
Hmm, yeah I see it sorry for that! Somehow that line went in again in this
patch. Don't know why... Anyway I checked it and it looks good. Thank you!
Philippe
> > ---
> >
> > 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;
> > }
> >
> > /*