Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp456549ybl; Tue, 28 Jan 2020 06:16:08 -0800 (PST) X-Google-Smtp-Source: APXvYqzFtcIuPLtzQD4RAXomhqq5WZFIiKpwjfPsM4lP+WhEec7FBXHpaIsCyrRIBTo3kQws+AbI X-Received: by 2002:aca:f354:: with SMTP id r81mr2812942oih.90.1580220968468; Tue, 28 Jan 2020 06:16:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580220968; cv=none; d=google.com; s=arc-20160816; b=MiaW33M+cApye4i4U4WOR96L6Zn//wa7SJtNX4RPjm2DuTPkSeFwzVswpMTJwvFYVS FjjdpTnVVLu/a51YvtufT/P/O8iFc8JD7frY4s7js6cs3Fi6JRKK4cBYhONF9eB91RyF 1BmhtJqZheka1JVV/JsCb7ytH+xtKyt8+D9zx/79Z9vgEKGBk/zsKb3SkU4xDWoN1urc S6li0++7B5Ro990O+wMN1eDb+FSIDJL/4Wu8leUmFeVXFXDuIfBKdHUccDqEjo6C7L9Z c4hcW8NnH64I58GYwMze3wG26JWS/Tl6x+kjRAwCUTmRY49rSR335/kB8zOpsrxJhXBI pveQ== 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=osEEpisUHd5BAepw/Qkoza83C1XxR4sSAZzSpKCNLFE=; b=A7GDgYwGJvDs1Oz26IojwvNdicaxP85SvNXWbU+HWlOFkZn/XrPflGbL9u9exq1p8d FjluxK9d76yh8x3BMqNoWR7DsewE/Aou7xUgnU8PxUA4KoMr2DA9x6CVQ164M/dIxRTc rB7Q1LXndvVaSpliGbuBMTf8TPoxigVt0yyz0HwU+esFOYHftxu9xCMYYWRK0BrZuumX U95TUwi6x6l0ySMYQiF1Jcxp/DygeUrK1oxOAJMgKv41kONyf/SN77BUSv2jwNEufG8U wEzSinNZt120TrDmzbthn/GphFC2x5Q3lG8mwogujQ+4B7pdIZJUm6k/suVnvVpe8GCA 9TSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YMxAZkAj; 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 m4si8791841otn.281.2020.01.28.06.15.56; Tue, 28 Jan 2020 06:16:08 -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=YMxAZkAj; 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 S1729778AbgA1ON7 (ORCPT + 99 others); Tue, 28 Jan 2020 09:13:59 -0500 Received: from mail.kernel.org ([198.145.29.99]:35744 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729746AbgA1ONy (ORCPT ); Tue, 28 Jan 2020 09:13:54 -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 E412D24681; Tue, 28 Jan 2020 14:13:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1580220833; bh=rz9au/x2/LhW2l2P+rOP9AVynizyhC9avk5oBjR3xvU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YMxAZkAjLZyvMjeEbZ2qiUlh76KD1ke4ZNOmIq0vpMpRX6qqFjbWbl499oydjRcmH WAMfGt/DsGt0DeqCn1iHfiGTJda2LLaZWo/CpkIrfLpalTZ5YiynA1djOdRKCnwWUU SNx+vaSajKQkDedOKBkdT1ASxeSZNxI44dP3xAL8= 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.4 166/183] hwmon: (adt7475) Make volt2reg return same reg as reg2volt input Date: Tue, 28 Jan 2020 15:06:25 +0100 Message-Id: <20200128135846.251622556@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200128135829.486060649@linuxfoundation.org> References: <20200128135829.486060649@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 @@ -268,9 +268,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); }