Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp439973ybl; Tue, 28 Jan 2020 06:03:20 -0800 (PST) X-Google-Smtp-Source: APXvYqwuZCvX/k9LhV3tUGvvHxyP+ERnWwzV+7CqBGpcJgspSMn+p6W6qtIRUqBg9uko6WEBoA7h X-Received: by 2002:a54:4791:: with SMTP id o17mr2773390oic.70.1580220199900; Tue, 28 Jan 2020 06:03:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220199; cv=none; d=google.com; s=arc-20160816; b=G9jwuTfUFHrq1PSci66bi+s/16x7DqyIDxvtnzoAjyeSKL/E6qtQokDzZgyTE9+Fhu cCrmIXIeqTLl0XMZlND5hz5fCJh06RaQ4i3V2MMIBpa0FuuzuvYsauwSvygmn1ZTOkLc 88Vy5gcPk9ppr4mCiF99O3prPO5FGFUrVEZ4cygm/f1T0yUsUfJ3vC9ARi4xQ9jixDUR 7Sh0kjQL3tOyi3Rv2QA1J0btOjDgzzbQKjYP7aUpyg/yyWF0WBOS5S8UhbnYeT9DQpgG 8CluJXegtHWrVhu35iwYWbrzA/cm2wBzQyu0T/H1d8OHnnHk1YoM0b76+4K4BSMrWbN2 /yOw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Hk/yh3b7zkuU18irHJT/ISQCBm82u6VKutOzjA3gEGE=; b=LSMhq0kv0oSiD5Z852CECZsBhg1G3KgmQVFfl1KmMEPxv3PHwgEqe9n7xQQ1FgMd4W Rr2ITICsZMwbpKeWISATPvfBGMGCijvivJC88sflNNAV0n1TtkjyHIBPznZgp+C0J14N rGP2V0NesBQ2LoZhdmYQxBPj9kZ583uWYrH/l9TWsg0DViw5k34a03FV9xmyi5XqZ+cp iO/KZs1KJBKFyOEyWTrxndeCDp9It5kVn5iErRBMdPjfV11tBfTj5G/HQ1Pb3GIW28rg 1jWxoBOQsZ9t9G4c9KWazcBWTCt3vtmUmZiTrnmhNWNoEwbw0zPXPa7EutMfkCHQMYTU GBJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PbRRTW8X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l6si5186350oie.244.2020.01.28.06.03.05; Tue, 28 Jan 2020 06:03:19 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=PbRRTW8X; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726992AbgA1N7e (ORCPT + 99 others); Tue, 28 Jan 2020 08:59:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:44886 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726945AbgA1N7a (ORCPT ); Tue, 28 Jan 2020 08:59:30 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BB48F2468A; Tue, 28 Jan 2020 13:59:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580219970; bh=3oQ2Qo92ZWOGJqWbGbtddum9+cQwwvpfjjjxCHq8GVo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PbRRTW8XMWNPTdg47QPaTEjfDP7MAoyB6kEM2s3wmTQEhPe5KR5a9XFhYm27cnu7g W5vALO/u3LT6a2LemWoTWP9KIfWUwz1+DKBn1A4n1rsUWLsvqEGpXpP2MPmeKSmDTp Jq4vl/0K630F7LIqT37JHYzNHcNQpxuKLFnS0Ylo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Luuk Paulussen , Guenter Roeck Subject: [PATCH 4.14 17/46] hwmon: (adt7475) Make volt2reg return same reg as reg2volt input Date: Tue, 28 Jan 2020 14:57:51 +0100 Message-Id: <20200128135752.177887746@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135749.822297911@linuxfoundation.org> References: <20200128135749.822297911@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Luuk Paulussen commit cf3ca1877574a306c0207cbf7fdf25419d9229df upstream. reg2volt returns the voltage that matches a given register value. Converting this back the other way with volt2reg didn't return the same register value because it used truncation instead of rounding. This meant that values read from sysfs could not be written back to sysfs to set back the same register value. With this change, volt2reg will return the same value for every voltage previously returned by reg2volt (for the set of possible input values) Signed-off-by: Luuk Paulussen Link: https://lore.kernel.org/r/20191205231659.1301-1-luuk.paulussen@alliedtelesis.co.nz cc: stable@vger.kernel.org Signed-off-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman --- drivers/hwmon/adt7475.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/drivers/hwmon/adt7475.c +++ b/drivers/hwmon/adt7475.c @@ -297,9 +297,10 @@ static inline u16 volt2reg(int channel, long reg; if (bypass_attn & (1 << channel)) - reg = (volt * 1024) / 2250; + reg = DIV_ROUND_CLOSEST(volt * 1024, 2250); else - reg = (volt * r[1] * 1024) / ((r[0] + r[1]) * 2250); + reg = DIV_ROUND_CLOSEST(volt * r[1] * 1024, + (r[0] + r[1]) * 2250); return clamp_val(reg, 0, 1023) & (0xff << 2); }