From: Hartmut Knaack <knaack.h@gmx.de>
To: Nicola Corna <nicola@corna.info>,
Jonathan Cameron <jic23@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald <pmeerw@pmeerw.net>
Cc: linux-iio@vger.kernel.org
Subject: Re: [PATCH 1/3] iio:humidity:si7020: replaced bitmask on humidity values with range check
Date: Thu, 20 Aug 2015 22:49:34 +0200 [thread overview]
Message-ID: <55D63D5E.8050000@gmx.de> (raw)
In-Reply-To: <1440079909-1337-1-git-send-email-nicola@corna.info>
Nicola Corna schrieb am 20.08.2015 um 16:11:
> The maximum possible value for the relative humidity is 55575 (100%RH).
> This value, if shifted right by 2 bits, uses 14 bits and masking it with
> a 12 bit mask removes 2 meaningful bits.
> The masking has been replaced with a range check that sets the minimum
> value at 3194 (0%RH) and the maximum at 55575 (100%RH).
Hmm, I guess the mask should have been applied for bits 13:2, but your
solution confirms better to the data sheet. Just one essential detail:
The raw sensor data has already been divided by 4 when you do the boundary
check. So, you need to divide the boundaries, as well.
Btw, you can make this a one-liner using clamp_val, check it out: [1]
[1]http://lxr.free-electrons.com/source/include/linux/kernel.h#L795
>
> Signed-off-by: Nicola Corna <nicola@corna.info>
> ---
> drivers/iio/humidity/si7020.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/humidity/si7020.c b/drivers/iio/humidity/si7020.c
> index fa3b809..62fdbcf 100644
> --- a/drivers/iio/humidity/si7020.c
> +++ b/drivers/iio/humidity/si7020.c
> @@ -57,8 +57,16 @@ static int si7020_read_raw(struct iio_dev *indio_dev,
> if (ret < 0)
> return ret;
> *val = ret >> 2;
> - if (chan->type == IIO_HUMIDITYRELATIVE)
> - *val &= GENMASK(11, 0);
> + /*
> + * Humidity values can sligthly exceed the 0-100%RH
> + * range and should be corrected by software
> + */
> + if (chan->type == IIO_HUMIDITYRELATIVE) {
> + if (*val < 3194) /* 0%RH */
> + *val = 3194;
> + else if (*val > 55575) /* 100%RH */
> + *val = 55575;
> + }
> return IIO_VAL_INT;
> case IIO_CHAN_INFO_SCALE:
> if (chan->type == IIO_TEMP)
>
next prev parent reply other threads:[~2015-08-20 20:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-20 14:11 [PATCH 1/3] iio:humidity:si7020: replaced bitmask on humidity values with range check Nicola Corna
2015-08-20 14:11 ` [PATCH 2/3] iio:humidity:si7020: added No Hold read mode Nicola Corna
2015-08-22 14:00 ` Jonathan Cameron
2015-08-23 9:50 ` Nicola Corna
2015-08-27 14:40 ` Jean Delvare
2015-08-27 16:12 ` Jonathan Cameron
2015-08-28 7:32 ` Nicola Corna
2015-08-28 10:00 ` Jean Delvare
2015-08-20 14:11 ` [PATCH 3/3] iio:humidity:si7020: added processed data Nicola Corna
2015-08-21 7:34 ` Crt Mori
2015-08-22 17:21 ` Jonathan Cameron
2015-08-22 17:50 ` Nicola Corna
2015-08-20 20:49 ` Hartmut Knaack [this message]
2015-08-20 21:57 ` [PATCH 1/3] iio:humidity:si7020: replaced bitmask on humidity values with range check Nicola Corna
2015-08-21 8:34 ` Hartmut Knaack
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55D63D5E.8050000@gmx.de \
--to=knaack.h@gmx.de \
--cc=jic23@kernel.org \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=nicola@corna.info \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.