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; + return var >> 12; }; -- 2.20.1