Messages in this thread | | | Subject | Re: [PATCH] IIO: bmp280-core.c: fix error in humidity calculation | From | Jonathan Cameron <> | Date | Sun, 2 Apr 2017 10:32:52 +0100 |
| |
On 27/03/17 11:06, Andreas Klinger wrote: > While calculating the compensation of the humidity there are negative > values interpreted as unsigned because of unsigned variables used. > These values need to be casted to signed as indicated by the documentation > of the sensor. > > Signed-off-by: Andreas Klinger <ak@it-klinger.de> Looks superficially right to me, but would like an Ack from Linus Walleij.
Linus?
J > --- > drivers/iio/pressure/bmp280-core.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c > index 4d18826ac63c..73308f0ea260 100644 > --- a/drivers/iio/pressure/bmp280-core.c > +++ b/drivers/iio/pressure/bmp280-core.c > @@ -177,9 +177,9 @@ static u32 bmp280_compensate_humidity(struct bmp280_data *data, > > var = ((s32)data->t_fine) - 76800; > var = ((((adc_humidity << 14) - (H4 << 20) - (H5 * var)) + 16384) >> 15) > - * (((((((var * H6) >> 10) * (((var * H3) >> 11) + 32768)) >> 10) > - + 2097152) * H2 + 8192) >> 14); > - var -= ((((var >> 15) * (var >> 15)) >> 7) * H1) >> 4; > + * (((((((var * H6) >> 10) * (((var * (s32)H3) >> 11) + 32768)) > + >> 10) + 2097152) * H2 + 8192) >> 14); > + var -= ((((var >> 15) * (var >> 15)) >> 7) * (s32)H1) >> 4; > > return var >> 12; > }; >
| |