Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp631973ybc; Sat, 16 Nov 2019 06:02:10 -0800 (PST) X-Google-Smtp-Source: APXvYqzg5/gvOvE5TPzRF2+EpjYVbgOP1/i88Zpr+W5Q75gj6coSLEdAzZnXQsON5KcgoThUtHL5 X-Received: by 2002:a17:906:edd2:: with SMTP id sb18mr10215884ejb.112.1573912930743; Sat, 16 Nov 2019 06:02:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573912930; cv=none; d=google.com; s=arc-20160816; b=rtbCBxPsk1lD9N5VwoDs9mNt84gBtBZlMLmt33HwRwLUAGwAHjp5CWOOVBKEYcIipJ 1IjvIeZL027MqvYNAIzAGi0fAPVatukyDHm5gjHe46FgxILo58MShk2vCAE83jMqnqwJ i8Wa/QkI14Zr4gHSiM/yq8vfvLig/8Ic+a5X31qB4NneZOS/pz9PD5fCA1PWWiaj69qs IC4n+yT58LlCF0nCEv2br/+6kx75xn0TEruHvv6J6F5sPR6GZ0XaBYIXMG6av1fv6DZC EfYjaSXia9NBxEYRgmoiIAHHGhxZ713+5htJ6tc1z+lk630FPauUEEyzv51amqHGxXTg Ke0w== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=XtMiD4L8Mgswux/la2nsChygCf/Wix4n1q7sgFMyzbs=; b=nIGgYVv8LDvFgMefgP31Bh7NmTnZJ2IAdqE8QWPVULWOZHeesAGEGZ44UpusXcph/q 7D3nu7HSqUrq/EfS6Cx9E+cd98/ekOMs46kbK1Z8THS6N2BxVvlakuSWlbch+UItUpEe IPBrl2Ys3zL/v4cgAaZBIFfCEUrb1Vkj7rSuidlMZJ1N2+juNLG88+XXGu2zetyY0zZv zrmND1sDEx6bcCYeSadpN20q1oJoRBMENp60IDDFTs7oApIfoPlpXrfPpAlfDn9QoJIS GkEPP3DZ6KKf/nhzr/D3XByH4dZCNIPG63k3X+NiOTdVchlAE2RLpDlP2715PNRN5Rv1 Jy2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@crapouillou.net header.s=mail header.b=gor+OKjQ; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j7si7787141ejf.155.2019.11.16.06.01.44; Sat, 16 Nov 2019 06:02:10 -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=fail header.i=@crapouillou.net header.s=mail header.b=gor+OKjQ; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727617AbfKPN41 (ORCPT + 99 others); Sat, 16 Nov 2019 08:56:27 -0500 Received: from outils.crapouillou.net ([89.234.176.41]:44912 "EHLO crapouillou.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727551AbfKPN40 (ORCPT ); Sat, 16 Nov 2019 08:56:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crapouillou.net; s=mail; t=1573912585; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references; bh=XtMiD4L8Mgswux/la2nsChygCf/Wix4n1q7sgFMyzbs=; b=gor+OKjQzzT9o51Vg9CwAiSyZIAW9gc5B9ChfIeGHNp/vaNq8JdWn+sx0qr5k6Fi1mM8mN Ok/AMoyPDe1bbez6taaooAfOtn6gyZzARXz4zC+oNwO5uhIE+WkUr9mk8l48LJHBqebnue xyLGCMaZ+cz1ENwHYiwKKeOdKNwa0l4= From: Paul Cercueil To: Sebastian Reichel , Artur Rojek Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, od@zcrc.me, Paul Cercueil , stable@vger.kernel.org Subject: [PATCH v3] power/supply: ingenic-battery: Don't change scale if there's only one Date: Sat, 16 Nov 2019 14:56:19 +0100 Message-Id: <20191116135619.9545-1-paul@crapouillou.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The ADC in the JZ4740 can work either in high-precision mode with a 2.5V range, or in low-precision mode with a 7.5V range. The code in place in this driver will select the proper scale according to the maximum voltage of the battery. The JZ4770 however only has one mode, with a 6.6V range. If only one scale is available, there's no need to change it (and nothing to change it to), and trying to do so will fail with -EINVAL. Fixes: fb24ccfbe1e0 ("power: supply: add Ingenic JZ47xx battery driver.") Signed-off-by: Paul Cercueil Cc: stable@vger.kernel.org --- Notes: v2: Rebased on v5.4-rc7 v3: Move code after check for max scale voltage drivers/power/supply/ingenic-battery.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/power/supply/ingenic-battery.c b/drivers/power/supply/ingenic-battery.c index 35816d4b3012..2748715c4c75 100644 --- a/drivers/power/supply/ingenic-battery.c +++ b/drivers/power/supply/ingenic-battery.c @@ -100,10 +100,17 @@ static int ingenic_battery_set_scale(struct ingenic_battery *bat) return -EINVAL; } - return iio_write_channel_attribute(bat->channel, - scale_raw[best_idx], - scale_raw[best_idx + 1], - IIO_CHAN_INFO_SCALE); + /* Only set scale if there is more than one (fractional) entry */ + if (scale_len > 2) { + ret = iio_write_channel_attribute(bat->channel, + scale_raw[best_idx], + scale_raw[best_idx + 1], + IIO_CHAN_INFO_SCALE); + if (ret) + return ret; + } + + return 0; } static enum power_supply_property ingenic_battery_properties[] = { -- 2.24.0