diff mbox series

staging: iio: ad7780: update voltage on read

Message ID 20181025133223.kn7cjlyep7bmx2mm@renatolg (mailing list archive)
State New, archived
Headers show
Series staging: iio: ad7780: update voltage on read | expand

Commit Message

Renato Lui Geh Oct. 25, 2018, 1:32 p.m. UTC
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@gmail.com>
---
 drivers/staging/iio/adc/ad7780.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Lars-Peter Clausen Oct. 25, 2018, 1:38 p.m. UTC | #1
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@gmail.com>

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;
>     }
>
Renato Lui Geh Oct. 25, 2018, 2:26 p.m. UTC | #2
Hi,

Thanks for the quick review. :)

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

Should I resend this patch as a patchset containing the two changes?

>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.

From my end my original email patch appears to have tabs instead of
spaces. I redownloaded my email and vim shows that the indentation has
the ^I tab characters. But when downloading your reply it was converted
to spaces. Am I missing something?

Thanks again,
Renato
Himanshu Jha Oct. 25, 2018, 2:55 p.m. UTC | #3
On Thu, Oct 25, 2018 at 11:26:36AM -0300, Renato Lui Geh wrote:
> Hi,
> 
> Thanks for the quick review. :)
> 
> > But please create one patch per issue and do not put unrelated changes into
> > the same patch.
> 
> Should I resend this patch as a patchset containing the two changes?

Yes! "One patch per change policy"

> > 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.
> 
> From my end my original email patch appears to have tabs instead of
> spaces. I redownloaded my email and vim shows that the indentation has
> the ^I tab characters. But when downloading your reply it was converted
> to spaces. Am I missing something?

Your patch applies fine.

I think the problem is on Lars end due to Thunderbird.

In the meantime, you can verify the patch using:

$ git am <your_patch.patch>

Also, you can try to use `git send-email` to send patches.
Lars-Peter Clausen Oct. 25, 2018, 4:01 p.m. UTC | #4
On 10/25/2018 04:55 PM, Himanshu Jha wrote:
> On Thu, Oct 25, 2018 at 11:26:36AM -0300, Renato Lui Geh wrote:
>> Hi,
>>
>> Thanks for the quick review. :)
>>
>>> But please create one patch per issue and do not put unrelated changes into
>>> the same patch.
>>
>> Should I resend this patch as a patchset containing the two changes?
> 
> Yes! "One patch per change policy"
> 
>>> 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.
>>
>> From my end my original email patch appears to have tabs instead of
>> spaces. I redownloaded my email and vim shows that the indentation has
>> the ^I tab characters. But when downloading your reply it was converted
>> to spaces. Am I missing something?
> 
> Your patch applies fine.
> 
> I think the problem is on Lars end due to Thunderbird.

Yeah, looks like I need to read email-clients.txt...

I think it is mis-rendered on my side due to the "Content-Type: ...
format=flowed" in the header.
diff mbox series

Patch

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