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 10:23 PM, Tomasz Duszynski <tduszyns@xxxxxxxxx> wrote:
> On Wed, May 30, 2018 at 03:20:37PM +0800, Matt Ranostay wrote:
>> 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).
>
> What kind of division-by-zero are you meaning? When would that happen
> in this case?
>
>>
>> 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.
>
> Is measurement precision your concern here? I would not bother with that
> since the sensor is not a top-notch anyway. Even datasheet itself specifies
> error margin of +/-3% for relative humidity.

As Phil mentioned the original patchset is okay as it is. Now I agree
with him after thinking it through.

Acked-by: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx>


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