Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752646AbdC0KIb (ORCPT ); Mon, 27 Mar 2017 06:08:31 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:61115 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752213AbdC0KIW (ORCPT ); Mon, 27 Mar 2017 06:08:22 -0400 Date: Mon, 27 Mar 2017 12:06:47 +0200 From: Andreas Klinger To: jic23@kernel.org, knaack.h@gmx.de, lars@metafoo.de, pmeerw@pmeerw.net, linus.walleij@linaro.org, ddvlad@gmail.com, akinobu.mita@gmail.com, yongjun_wei@trendmicro.com.cn, a.mathur@samsung.com Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] IIO: bmp280-core.c: fix error in humidity calculation Message-ID: <20170327100646.GA8128@project> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Provags-ID: V03:K0:dJ0vfEOv8IsuYPuNsWJnH30XhZKpI7gcTra2znF0t5XzDZ+DlFh dmV+xuy8yg1pkCQ5JcV41Y76or5C9DxeTvAJt5ZP+8ISUKvQUGQhNh/C1jc18QIqGlCpHzV q4iVAt8f3HHktCTMs32vNpeLOzDqC2TN6ssoeWXoG+l010r2UZeXBxEE/x10eDc6vq1+8u5 oYWQpL/VNk0Jh7qgVmmVg== X-UI-Out-Filterresults: notjunk:1;V01:K0:fRB5+fLDF/0=:esh7DQ0nK/g+1tMdt/tfM/ T37ZUGOkfJh6zSPAr0i9RBc7Vxcp50YQnF4N2nrQXo4BVdj7fThBP8+459J9Pg1PHVboOIu+T /1r0aHqOxeG/9esXSKB2UHitGdC34EQbOi7L2u4UAwNn9n168bxNGFTDCuuuORWkdG1iSM7Cz iVx7qadjLdceuq59c0RA0wVnE/0ln3E65/xCkEICjT1L0ShLWskYFcci+aMvphp9f3I68RYtK apUtSWyn4YP1EiuBADd975iLYJCgi0fe6Ff7Yv1/Y8sCNYHCAcJMAouiCXVlGkSBWmoI3Dc7v IE5gsGn20Riq1SQdO1x4kCj74Fj/LuW/UIsBmp/PZEuy3iod2nwiv1btuFozzs0OiP/Xdx91S UR32D9PBOs50sQebC+qGu43Yqh6kpI/VfS0XMV0eCQ/OVAWUI0er37DBjDI+kr6yAUVrKG4Ee 4vMKoFNGTT+ZRa+LfVVYJreOk/NdyRdRcxZQAomCu+1R2eu+1kzRMqFAZKkfO0hUSIyzKEbzR IFAHpFJ2ixyhgrdmvJ/nPdSNqPFuOdqmBC9V2EtjEB/TwxCTsfWQVtvLlZ+Lf/W05+jvP3O6T 1B3QnleQQvKdIlpvdTF8JtQhasD/0l44TFtDAKS4C6VlaVZCiM3ZFgELxJX3572bkdEKXodMJ 9t9+fxwOpJLUwWxinjH1Xoq7D7WVaKePGIYX7J5PumR6w9RdiAaG027W3Pmbbxl21UXM= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1156 Lines: 32 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 --- 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; }; -- 2.1.4 --