Re: [PATCH] staging: iio: ad7780: update voltage on read

From: Lars-Peter Clausen
Date: Thu Oct 25 2018 - 09:38:45 EST


On 10/25/2018 03:32 PM, Renato Lui Geh wrote:
> The ad7780 driver previously did not read the correct device output.
> This patch fixes two issues.
>
> - The driver read an outdated value set at initialization. It now
> updates its voltage on read.
> - Variable val subtracted an uninitialized value on
> IIO_CHAN_INFO_OFFSET. This was fixed by assiging the correct value
> instead.
>
> Signed-off-by: Renato Lui Geh <renatogeh@xxxxxxxxx>

Hi,

Thanks for the patch, this looks good.

But please create one patch per issue and do not put unrelated changes into
the same patch.

Also your mail client seems to have replaced tabs in the patch with spaces,
this means the patch will not apply cleanly. Check the
Documentation/email-clients.txt file for some hints how to configure your
mail client so it will not break patches.

- Lars

> ---
> drivers/staging/iio/adc/ad7780.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/iio/adc/ad7780.c
> b/drivers/staging/iio/adc/ad7780.c
> index b67412db0318..06700fe554a2 100644
> --- a/drivers/staging/iio/adc/ad7780.c
> +++ b/drivers/staging/iio/adc/ad7780.c
> @@ -87,16 +87,20 @@ static int ad7780_read_raw(struct iio_dev *indio_dev,
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ long m)
> {
> ÂÂÂÂstruct ad7780_state *st = iio_priv(indio_dev);
> +ÂÂÂ int voltage_uv = 0;
>
> ÂÂÂÂswitch (m) {
> ÂÂÂÂcase IIO_CHAN_INFO_RAW:
> ÂÂÂÂÂÂÂ return ad_sigma_delta_single_conversion(indio_dev, chan, val);
> ÂÂÂÂcase IIO_CHAN_INFO_SCALE:
> +ÂÂÂÂÂÂÂ voltage_uv = regulator_get_voltage(st->reg);
> +ÂÂÂÂÂÂÂ if (voltage_uv)
> +ÂÂÂÂÂÂÂÂÂÂÂ st->int_vref_mv = voltage_uv/1000;
> ÂÂÂÂÂÂÂ *val = st->int_vref_mv * st->gain;
> ÂÂÂÂÂÂÂ *val2 = chan->scan_type.realbits - 1;
> ÂÂÂÂÂÂÂ return IIO_VAL_FRACTIONAL_LOG2;
> ÂÂÂÂcase IIO_CHAN_INFO_OFFSET:
> -ÂÂÂÂÂÂÂ *val -= (1 << (chan->scan_type.realbits - 1));
> +ÂÂÂÂÂÂÂ *val = -(1 << (chan->scan_type.realbits - 1));
> ÂÂÂÂÂÂÂ return IIO_VAL_INT;
> ÂÂÂÂ}
>