Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp3038469ybt; Mon, 29 Jun 2020 13:36:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9ZCHEU2EoMHmkKeFFTiACa+c4tYU56oKuFj+UbRZBBRfghVeqC1ppxWBR8E5wne+REg3d X-Received: by 2002:a17:906:f752:: with SMTP id jp18mr15344323ejb.538.1593463007182; Mon, 29 Jun 2020 13:36:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593463007; cv=none; d=google.com; s=arc-20160816; b=FQHMjdeuAalXuXQXD/Qwq+24HNlicOanAH6sbMxE7Xs7/WvbWUXsrbNAQpvjR52CIj huDtx0b45+lettCoBjhoGZb1gvmt3eMH7ek0P4ET4fvFFpMnD+uf37JlAv9D72xfWaGP lBcTbESArlUogRyBajhcGWKSkn+TaxjcCKe98JIx17HXbJ97Obi3rMymPFf3jo/KLKpO WOqjLeSV4TJAznnMp9d4rMKxEaLguFPNRInS2ccVyek6EX1BFpzGZIqYJdH1GBG11eam Ngh7YJfsYgacUBLv9cDSRMbjCn0CiwwRd92VaCjN8g/ijJWLq4PXk/41KEDA94o+D2Ae gpGQ== 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=RbRMIIMGkHHnlI/VbgP1J8pdQe4R0osnRn3MHxId8jg=; b=ZIKmqd6/bgw8Vz5/UUE+U90H8IhkunnuyAVV6HFJifITRgTcHOZwJfYzWb95VsHipl wjwORKHbRjR+52+bSRy0j1/pyprFcmOhTUD43JZj8tJFsY1V8jycOIpu3MAQzv74TVSR z+0fV4CkMAoJP8kt2iCPBUOTomPYnz/x0ZUWCbZxcidrz/NALjeqJVIHnpzwc9PqpWOO biN/ngc5k7WxDto10emdfk7yWerKJr9hThC4kcLo8BJNAy9LyvHAoDlw+4yVhyMRZmE2 lhbvziaUyOw9LxFkUfpb6ADr6M0275zESpIpNSJF7Bsz56ZxnvVRjvLhyC5HokDE9wGp HicA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JWTgJZuS; 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 g22si324307edj.310.2020.06.29.13.36.24; Mon, 29 Jun 2020 13:36:47 -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=JWTgJZuS; 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 S2389159AbgF2UdS (ORCPT + 99 others); Mon, 29 Jun 2020 16:33:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:37016 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732302AbgF2TZR (ORCPT ); Mon, 29 Jun 2020 15:25:17 -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 9BDC12535E; Mon, 29 Jun 2020 15:40:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1593445223; bh=XSTF3fm7DRjOxknTkfjWDogjJ1+ZAG3jH+aOYLkF0Mk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JWTgJZuSm35s/zN5SandQKQ9pikRdarPFKjUSqoLLW+0wZjzbE7A8nZ3+2ua7rGve GMhBqura4I1SxMhKaSNinO6iW8RWL7ZDL6xDFrzSkZmUjGV8IxO9t4T/WtNGkwjhUr a/sd7FNW9nEVPHL21oSfTFxUUSN5ucvWOWF/vvLM= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Andreas Klinger , Jonathan Cameron , Sasha Levin Subject: [PATCH 4.9 010/191] iio: bmp280: fix compensation of humidity Date: Mon, 29 Jun 2020 11:37:06 -0400 Message-Id: <20200629154007.2495120-11-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200629154007.2495120-1-sashal@kernel.org> References: <20200629154007.2495120-1-sashal@kernel.org> MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.229-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-4.9.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 4.9.229-rc1 X-KernelTest-Deadline: 2020-07-01T15:39+00:00 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 36f03fdf4d4f9..85b90b5939db2 100644 --- a/drivers/iio/pressure/bmp280-core.c +++ b/drivers/iio/pressure/bmp280-core.c @@ -182,6 +182,8 @@ static u32 bmp280_compensate_humidity(struct bmp280_data *data, + (s32)2097152) * H2 + 8192) >> 14); var -= ((((var >> 15) * (var >> 15)) >> 7) * (s32)H1) >> 4; + var = clamp_val(var, 0, 419430400); + return var >> 12; }; -- 2.25.1