On Mon, Apr 27, 2020 at 04:00:19PM +0200, Andreas Klinger wrote: > Output of humidity compensation is limited to the range between 0 and 100 > percent. Add this to the compensation formula as described in the datasheet > chapter 4.2.3. > > Signed-off-by: Andreas Klinger <ak@xxxxxxxxxxxxx> > --- > drivers/iio/pressure/bmp280-core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c > index 29c209cc1108..ac9ef1b63b07 100644 > --- a/drivers/iio/pressure/bmp280-core.c > +++ b/drivers/iio/pressure/bmp280-core.c > @@ -271,6 +271,9 @@ static u32 bmp280_compensate_humidity(struct bmp280_data *data, > + (s32)2097152) * calib->H2 + 8192) >> 14); > var -= ((((var >> 15) * (var >> 15)) >> 7) * (s32)calib->H1) >> 4; > > + var = var < 0 ? 0 : var; > + var = var > 419430400 ? 419430400 : var; > + Looks that clamp_val() might come in handy here. > return var >> 12; > }; > > -- > 2.20.1