diff options
author | Matthias Schiffer <matthias.schiffer@ew.tq-group.com> | 2021-03-03 10:54:18 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-06-05 09:07:02 +0200 |
commit | 659094e4057ab1b8d3b162b721ea2bd3fe64e30c (patch) | |
tree | 2398e5cf699b72496b8dccf1d44236786b4737ee | |
parent | 14e1a958d9884e15101b42cbdde8e644a04ed7a3 (diff) | |
download | linux-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.c | 2 |
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; |