Re: [PATCH] iio: pressure: bmp280: fix relative humidity unit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 30, 2018 at 1:05 PM, Matt Ranostay
<matt.ranostay@xxxxxxxxxxxx> wrote:
> On Wed, May 30, 2018 at 9:17 AM, Phil Reid <preid@xxxxxxxxxxxxxxxxx> wrote:
>> On 30/05/2018 08:44, Matt Ranostay wrote:
>>>
>>> On Mon, May 28, 2018 at 11:38 PM, Tomasz Duszynski <tduszyns@xxxxxxxxx>
>>> wrote:
>>>>
>>>> According to IIO ABI relative humidity reading should be
>>>> returned in milli percent.
>>>>
>>>> This patch addresses that by applying proper scaling and
>>>> returning integer instead of fractional format type specifier.
>>>>
>>>
>>> *sigh* seems this is my mistake, but good catch.  Slight nitpick
>>> below.. otherwise looks good
>>>
>>>> Signed-off-by: Tomasz Duszynski <tduszyns@xxxxxxxxx>
>>>> ---
>>>>   drivers/iio/pressure/bmp280-core.c | 5 ++---
>>>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/iio/pressure/bmp280-core.c
>>>> b/drivers/iio/pressure/bmp280-core.c
>>>> index 5ec3e41b65f2..fe87d27779d9 100644
>>>> --- a/drivers/iio/pressure/bmp280-core.c
>>>> +++ b/drivers/iio/pressure/bmp280-core.c
>>>> @@ -415,10 +415,9 @@ static int bmp280_read_humid(struct bmp280_data
>>>> *data, int *val, int *val2)
>>>>          }
>>>>          comp_humidity = bmp280_compensate_humidity(data, adc_humidity);
>>>>
>>>> -       *val = comp_humidity;
>>>> -       *val2 = 1024;
>>>> +       *val = comp_humidity * 1000 / 1024;
>>>
>>>
>>> Minor nitpick  that it would look cleaner as:   (comp_humidity / 1024) *
>>> 1000
>>>
>> be careful of integer division.
>>
>
> Ah yes good point. You will have to check if comp_humidity isn't zero
> or it is possible to have a divide-by-zero.

D'oh actually divide by zero would be an issue. But you'll want to be
sure of possible overflows (doubt that would be an issue here).

However it may be better to just add the scaling factor of 1000 with
IIO_CHAN_INFO_SCALE  and make the processed value now a raw one.

>
> - Matt
>
>>
>>>>
>>>> -       return IIO_VAL_FRACTIONAL;
>>>> +       return IIO_VAL_INT;
>>>>   }
>>>>
>>>>   static int bmp280_read_raw(struct iio_dev *indio_dev,
>>>> --
>>>> 2.17.0
>>
>>
>>>
>>
>>
>> --
>> Regards
>> Phil Reid
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux