summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>2021-03-03 10:54:18 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-06-05 09:07:02 +0200
commit659094e4057ab1b8d3b162b721ea2bd3fe64e30c (patch)
tree2398e5cf699b72496b8dccf1d44236786b4737ee
parent14e1a958d9884e15101b42cbdde8e644a04ed7a3 (diff)
downloadlinux-stable-659094e4057ab1b8d3b162b721ea2bd3fe64e30c.tar.gz
linux-stable-659094e4057ab1b8d3b162b721ea2bd3fe64e30c.tar.bz2
linux-stable-659094e4057ab1b8d3b162b721ea2bd3fe64e30c.zip
power: supply: bq27xxx: fix sign of current_now for newer ICs
[ Upstream commit b67fdcb7099e9c640bad625c4dd6399debb3376a ] Commit cd060b4d0868 ("power: supply: bq27xxx: fix polarity of current_now") changed the sign of current_now for all bq27xxx variants, but on BQ28Z610 I'm now seeing negated values *with* that patch. The GTA04/Openmoko device that was used for testing uses a BQ27000 or BQ27010 IC, so I assume only the BQ27XXX_O_ZERO code path was incorrect. Revert the behaviour for newer ICs. Fixes: cd060b4d0868 "power: supply: bq27xxx: fix polarity of current_now" Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Stable-dep-of: 35092c5819f8 ("power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status()") Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/power/supply/bq27xxx_battery.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c
index 79eee63a2041..d34f1fceadbb 100644
--- a/drivers/power/supply/bq27xxx_battery.c
+++ b/drivers/power/supply/bq27xxx_battery.c
@@ -1781,7 +1781,7 @@ static int bq27xxx_battery_current(struct bq27xxx_device_info *di,
val->intval = curr * BQ27XXX_CURRENT_CONSTANT / BQ27XXX_RS;
} else {
/* Other gauges return signed value */
- val->intval = -(int)((s16)curr) * 1000;
+ val->intval = (int)((s16)curr) * 1000;
}
return 0;