Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp982697ybt; Wed, 17 Jun 2020 19:53:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0Ttp2t/qXPPmTDzthldy6Yt8VjzINV5boXbVkORGIg9+Z8mD35XmxcJ9wftijq4fXhEOG X-Received: by 2002:a50:a1e7:: with SMTP id 94mr1983247edk.165.1592448805263; Wed, 17 Jun 2020 19:53:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592448805; cv=none; d=google.com; s=arc-20160816; b=vsq9YGAN/drI2+ww3soTjpfliX55eFPgZ8vTtuHR0+8SN1ZBqm0oHQXP64AktQkNF3 Be2ebyQAS400bufT/DpEstERS0ZGN2JmDemEmr2drc1ZjlFH/JBCx5+YQhv9soDtwfOr 6fMFdSNV4MmcIf8jM3a0dy/KBRPpRGutbwXq7HJBu3DYafHCwu947UgsAinD2oyq5Qow sC6SPXnhA7M0ZRUgjfD1wJI3g9v/lCJTQCqcnjb4+TpdEeTgcBu9Dy4xnOnN5m4ZhVOL smS64gQUKqKqh5tEapqypVKHQZO8d+DCbGnjTFxt6bfNOmZ+Xk/YsJoxsRK3YAlgZEsD 9mjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=zDUVm0FsQRMT3s1vzc5FcuhjAIg+t4/Cd06Y50z/LI0=; b=lv+C9cMEh2D9Fxrc5zs1dFSdHqnRzQHEud6YELt97mf+VWaebK6yIVquauy3C1gQVR bpU4qGqgrE7V0BDLml7ML6WJ1xU0dbNMJFnhih7VIDwmbL5jyr4q7nST4JqcvYo8c8UU FlWLWD6m4EDHaOcJQtUEOXDxRglCHX/xfSpN9owVoqRCtDfRdMHfSLX1AxBGGjfpLJhm CQJmGPQh3w9ns3hWvoNVJPPNVoKZRBsXg2js24gEWT73hjL9px9SPwJ7S7PiC0GZ365S nkUTm5e8j3UaHD59pjDj7tyyCOA0hbrST3mesGY83himJ9DNSZO5mAX7LQdvNFwENB4U bi0g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zTAVFta6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ha3si1022729ejb.563.2020.06.17.19.53.03; Wed, 17 Jun 2020 19:53:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zTAVFta6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728015AbgFRBJC (ORCPT + 99 others); Wed, 17 Jun 2020 21:09:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:34842 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727945AbgFRBIv (ORCPT ); Wed, 17 Jun 2020 21:08:51 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A123221D7B; Thu, 18 Jun 2020 01:08:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442531; bh=KV/4TVQazgEth8uM7noTCOHjy48wFXUisUo/higDEX0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zTAVFta6W9dakk5clWe++8TQPscxL9TSiwHCJDhKQpKuSHDFc1YJ8bOH/oXy6lZh+ IuAATbStTRuzvvwBQbU2CAZ09nD46QZJVYfs8JDIwQjMLL8FeG6d3xY19Tf6ZaDTwv d+VrPolV/TzP2mEDn+qBECFZ1Ta5+ImaW/PwWo8g= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andreas Klinger , Jonathan Cameron , Sasha Levin , linux-iio@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 034/388] iio: bmp280: fix compensation of humidity Date: Wed, 17 Jun 2020 21:02:11 -0400 Message-Id: <20200618010805.600873-34-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andreas Klinger [ Upstream commit dee2dabc0e4115b80945fe2c91603e634f4b4686 ] Limit the output of humidity compensation to the range between 0 and 100 percent. Depending on the calibration parameters of the individual sensor it happens, that a humidity above 100 percent or below 0 percent is calculated, which don't make sense in terms of relative humidity. Add a clamp to the compensation formula as described in the datasheet of the sensor in chapter 4.2.3. Although this clamp is documented, it was never in the driver of the kernel. It depends on the circumstances (calibration parameters, temperature, humidity) if one can see a value above 100 percent without the clamp. The writer of this patch was working with this type of sensor without noting this error. So it seems to be a rare event when this bug occures. Signed-off-by: Andreas Klinger Signed-off-by: Jonathan Cameron Signed-off-by: Sasha Levin --- drivers/iio/pressure/bmp280-core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c index 2540e7c2358c..973264a088f9 100644 --- a/drivers/iio/pressure/bmp280-core.c +++ b/drivers/iio/pressure/bmp280-core.c @@ -271,6 +271,8 @@ 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 = clamp_val(var, 0, 419430400); + return var >> 12; }; -- 2.25.1