2019-05-07 14:37:47

by Philippe Schenker

[permalink] [raw]
Subject: [PATCH 3/5] iio: stmpe-adc: Enable all stmpe-adc interrupts just once

From: Philippe Schenker <[email protected]>

This commit will enable the interrupts of all channels handled by this
driver only once in the probe function.

This will improve performance because one byte less has to be written over
i2c on each read out of the adc. On the fastest ADC mode this will improve
read out speed by 15%.

Signed-off-by: Philippe Schenker <[email protected]>
---

drivers/iio/adc/stmpe-adc.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/adc/stmpe-adc.c b/drivers/iio/adc/stmpe-adc.c
index b3872eb37293..82b43e4522b6 100644
--- a/drivers/iio/adc/stmpe-adc.c
+++ b/drivers/iio/adc/stmpe-adc.c
@@ -74,9 +74,6 @@ static int stmpe_read_voltage(struct stmpe_adc *info,
return -EINVAL;
}

- stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
- STMPE_ADC_CH(info->channel));
-
stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
STMPE_ADC_CH(info->channel));

@@ -336,6 +333,9 @@ static int stmpe_adc_probe(struct platform_device *pdev)
if (ret)
return ret;

+ stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
+ ~(norequest_mask & 0xFF));
+
return devm_iio_device_register(&pdev->dev, indio_dev);
}

--
2.21.0


2019-05-11 10:10:55

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 3/5] iio: stmpe-adc: Enable all stmpe-adc interrupts just once

On Tue, 7 May 2019 16:36:13 +0200
Philippe Schenker <[email protected]> wrote:

> From: Philippe Schenker <[email protected]>
>
> This commit will enable the interrupts of all channels handled by this
> driver only once in the probe function.
>
> This will improve performance because one byte less has to be written over
> i2c on each read out of the adc. On the fastest ADC mode this will improve
> read out speed by 15%.
>
> Signed-off-by: Philippe Schenker <[email protected]>
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 | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/iio/adc/stmpe-adc.c b/drivers/iio/adc/stmpe-adc.c
> index b3872eb37293..82b43e4522b6 100644
> --- a/drivers/iio/adc/stmpe-adc.c
> +++ b/drivers/iio/adc/stmpe-adc.c
> @@ -74,9 +74,6 @@ static int stmpe_read_voltage(struct stmpe_adc *info,
> return -EINVAL;
> }
>
> - stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
> - STMPE_ADC_CH(info->channel));
> -
> stmpe_reg_write(info->stmpe, STMPE_REG_ADC_CAPT,
> STMPE_ADC_CH(info->channel));
>
> @@ -336,6 +333,9 @@ static int stmpe_adc_probe(struct platform_device *pdev)
> if (ret)
> return ret;
>
> + stmpe_reg_write(info->stmpe, STMPE_REG_ADC_INT_EN,
> + ~(norequest_mask & 0xFF));
> +
> return devm_iio_device_register(&pdev->dev, indio_dev);
> }
>