Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4964096imu; Sun, 25 Nov 2018 13:49:26 -0800 (PST) X-Google-Smtp-Source: AFSGD/Xb248fOufIFl3vePyua/IUoe40O1FR4Vzq+y8/S/CF6KMCXEPC9OaMWW28sXVGjyh9fz5M X-Received: by 2002:a17:902:24d:: with SMTP id 71mr24154285plc.225.1543182566432; Sun, 25 Nov 2018 13:49:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543182566; cv=none; d=google.com; s=arc-20160816; b=AbAdvH/qOU8GRetTXQcHizkPluwtZqtlN/fWDeonlyQShxwpuK38Vm0z5zOEzTwHWv iAFZz+mSpQLOuNVX8kxTzRkbHau4BlOVtMkuP+Z6WlGAFpwtte6+H5nwt129Bed0jZtg SPHy7cZnSocW6Ed8oFB2ke76rsRlZkdoFboyFSb32spuEQFRn923IrTuPwtGjUubynFI gr/Ss5ZNrxDVT1mOcDbSg7eklAjiMKDYyFc6RRjL6mlIXTfDS92Yt3g4kBXT0wUHFUpV pttYL7gH8iGVpOmJg8toMKvhfyj3m1ZvPx0IUsl79/uKs9cUJIuaETBVRmJ4oVVtmkr/ qA7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=Q+V/pAptWe1wagwGBh3vU5V5kWL7SixUkhmj2jj8Ygs=; b=DpsIyS0g3ZU1MH9SobF0ElqOZiKe8bwaMPzK4vhOqJts9mawlBaaMLy2s+B473vngp fNsXwXGS4bgUCQ+uiSTsZ3wiOeQMZRhQwFyS6cfFvoo3oGbn1kOU9Hf/qJJfv8Nd4aTK onIt0ZSlc0MoTR6p9C5z4bIJxZ/vl9l9+EGi21rOuY7aWBHdOxdqecirWknvXBKLFJcf Huc0/h4jmTjvDIPF2gZ70ZqytnSqS+4MQmzrHyFnmZidaijfxrfdmZVK3lK6HBG7Hl0J mjPxRPsW3JU5FTnwmaJOQn6YkvUfrKKxjc7QE5tcSrLxREP5mDuNo0KBLRc6Xdco4X2E 6lxg== ARC-Authentication-Results: i=1; mx.google.com; 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 x16-v6si25985378pfm.39.2018.11.25.13.49.11; Sun, 25 Nov 2018 13:49:26 -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; 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 S1726154AbeKZIka (ORCPT + 99 others); Mon, 26 Nov 2018 03:40:30 -0500 Received: from atrey.karlin.mff.cuni.cz ([195.113.26.193]:49884 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726012AbeKZIka (ORCPT ); Mon, 26 Nov 2018 03:40:30 -0500 Received: by atrey.karlin.mff.cuni.cz (Postfix, from userid 512) id 1495780525; Sun, 25 Nov 2018 22:48:21 +0100 (CET) Date: Sun, 25 Nov 2018 22:48:23 +0100 From: Pavel Machek To: Baolin Wang Cc: sre@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, yuanjiang.yu@unisoc.com, broonie@kernel.org Subject: Re: [PATCH 5/5] power: supply: sc27xx: Save last battery capacity Message-ID: <20181125214823.GB9913@amd> References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="kORqDWCi7qDJ0mEj" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --kORqDWCi7qDJ0mEj Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi! > Our charger manager can optimize the battery capacity periodically, so > we can save last battery capacity into registers. Then next system > power-on, we can read the last saved battery capacity as the initial > battery capacity, which can make the battery capacity more accurate. >=20 > Signed-off-by: Yuanjiang Yu > Signed-off-by: Baolin Wang > --- > drivers/power/supply/sc27xx_fuel_gauge.c | 143 ++++++++++++++++++++++++= +++++- > 1 file changed, 142 insertions(+), 1 deletion(-) >=20 > +static int sc27xx_fgu_set_property(struct power_supply *psy, > + enum power_supply_property psp, > + const union power_supply_propval *val) > +{ > + struct sc27xx_fgu_data *data =3D power_supply_get_drvdata(psy); > + int ret; > + > + mutex_lock(&data->lock); > + > + switch (psp) { > + case POWER_SUPPLY_PROP_CAPACITY: > + ret =3D sc27xx_fgu_save_last_cap(data, val->intval); > + if (ret < 0) > + dev_err(data->dev, "failed to save battery capacity\n"); > + break; > + > + default: > + ret =3D -EINVAL; > + } > + > + mutex_unlock(&data->lock); > + return ret; if (psp !=3D ....) return -EINVAL; And you can do that outside lock... Ok, OTOH this is easier to extend in future. Do you expect more writable properties? > +static int sc27xx_fgu_property_is_writeable(struct power_supply *psy, > + enum power_supply_property psp) > +{ > + switch (psp) { > + case POWER_SUPPLY_PROP_CAPACITY: > + return 1; > + > + default: > + return 0; > + } > +} Same here. return psp =3D=3D POWER_SUPPLY_PROP_CAPACITY; really looks strange written like this. Best regards, Pavel --=20 (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html --kORqDWCi7qDJ0mEj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlv7GKcACgkQMOfwapXb+vJz8QCaA9Ld/LHJlKBMeAS7juHWIl4g 25sAn2HVSfhXQMz9n3HTxTTORvQ42RQd =kMZ1 -----END PGP SIGNATURE----- --kORqDWCi7qDJ0mEj--