Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp477657ybl; Tue, 28 Jan 2020 06:34:36 -0800 (PST) X-Google-Smtp-Source: APXvYqxT+1rgB0iX7F1kf/dH4cUqIXul8mT+tddgkvsayA0HXXGRfboa0d8W/KRGwfOweQRlceUj X-Received: by 2002:aca:f242:: with SMTP id q63mr3070766oih.72.1580222075498; Tue, 28 Jan 2020 06:34:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580222075; cv=none; d=google.com; s=arc-20160816; b=aW3XOOflp24hpKGLs5jqhjmoKLshh/zhQTmiNe3jwtD4uuu+RsQIi5W6pIozCccqTa xKIkDOgK1ZJBMmZIOEMlfphfHeLYKD5H8c16fuhwsYUCYsVxFOnzMvKX9XB3AGcmbLhv RSc9e5nH23w5RX1IJFKgobfRfCKfRuy4Z65YRoUY8xKERjJdMVX4bsCU/OvuTjuulogg sBS4VVbIumtt0oGdFuPEuXeFa6k/kMYVUzomReor483bWN0cKY8MNABPQA7fq/PuCWDA ZfXErZ3bF/29qiZNDdPcHvjtrQG4PF0Mltx21YQkLnV6Fv+yN5bHWie4uZNZpZuOwdzk BoCg== 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=GTKbCDYPC+3Vo1Stzr/91zYcRR/mY7ulCz+nejrIzU8=; b=OysjiV5gROQzs+04GTsF3oa64D0h8GH/t/SE03peXICHbpDEQDbZzc0w1FFuCXTMPN PYgFzbco1E6Hc6Cn4M/i+c80a9CFN/1LjWYtQuLHK8p8Cx5ai8Vcx/+dbImRFxYLPbF6 7a0ovKZrBw9oif+ML3uK4mmmUEw1Prgm+hlXwjMDXAAnbKBoqIBLR9c9Prul5qUCKh/I Ezo52WN8V+QpZvuHHxhcGCHV1Sd/2pfkb3XdqHMGWpOWms9oHxVMlj8Hol643miEQUlj EHdKiYp3QBn6XuB44H0t18CLFngWaln+2pm5bMMy0bp7Mje7g2qq1s7kDgR2NyFvReu2 417Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IGPz0bEy; 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 o66si5094832oig.193.2020.01.28.06.34.22; Tue, 28 Jan 2020 06:34:35 -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=IGPz0bEy; 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 S1727142AbgA1Obj (ORCPT + 99 others); Tue, 28 Jan 2020 09:31:39 -0500 Received: from mail.kernel.org ([198.145.29.99]:55484 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733309AbgA1O1l (ORCPT ); Tue, 28 Jan 2020 09:27:41 -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 16017207FD; Tue, 28 Jan 2020 14:27:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580221660; bh=GWxwkadIlVobGboLxGw+xsL9+RnjZssd4gllY72ToZE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IGPz0bEyvywilTfliHEN2qt1Z6Mqb6uCbmyyp7FCV70Y2yZsWMhjxOvhk1tJQqUMJ BQ3KP5LQOkEemztqjXA+9vBgQ52OpkaROtRoCT7OBny1LHpzhTwZ+NN0ahEuzvNkpI 8c/RXgbKRLmBKh0VpE1XlqsuvYLLQmEQM+vJSPDs= 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.19 23/92] hwmon: (adt7475) Make volt2reg return same reg as reg2volt input Date: Tue, 28 Jan 2020 15:07:51 +0100 Message-Id: <20200128135812.082497945@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135809.344954797@linuxfoundation.org> References: <20200128135809.344954797@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 @@ -296,9 +296,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); }