diff mbox series

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

Message ID 20190507143615.28477-4-dev@pschenker.ch (mailing list archive)
State New, archived
Headers show
Series [1/5] iio: stmpe-adc: Add compatible name | expand

Commit Message

Philippe Schenker May 7, 2019, 2:36 p.m. UTC
From: Philippe Schenker <philippe.schenker@toradex.com>

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@toradex.com>
---

 drivers/iio/adc/stmpe-adc.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

Comments

Jonathan Cameron May 11, 2019, 10:15 a.m. UTC | #1
On Tue,  7 May 2019 16:36:14 +0200
Philippe Schenker <dev@pschenker.ch> wrote:

> From: Philippe Schenker <philippe.schenker@toradex.com>
> 
> 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@toradex.com>
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;
>  	}
>  
>  	/*
Philippe Schenker May 13, 2019, 7:28 a.m. UTC | #2
On Sat, 2019-05-11 at 11:15 +0100, Jonathan Cameron wrote:
> On Tue,  7 May 2019 16:36:14 +0200
> Philippe Schenker <dev@pschenker.ch> wrote:
> 
> > From: Philippe Schenker <philippe.schenker@toradex.com>
> > 
> > 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@toradex.com>
> 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;
> >  	}
> >  
> >  	/*
diff mbox series

Patch

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;
 	}
 
 	/*