mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
power: supply: bq27xxx: Report charge full state correctly
When reporting the charging status, the existing code reports the battery as full only when the reported current flowing is exactly 0mA, which is unlikely in practice. Fix the reporting by giving priority to the battery's full state indication/flag. Tested on the Nokia N900 with bq27200 fuel gauge. Signed-off-by: Sicelo A. Mhlongo <absicsz@gmail.com> Link: https://lore.kernel.org/r/20240226193722.2173624-1-absicsz@gmail.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
3da8d71754
commit
8fbb111625
@ -1828,17 +1828,14 @@ static int bq27xxx_battery_current_and_status(
|
||||
val_curr->intval = curr;
|
||||
|
||||
if (val_status) {
|
||||
if (curr > 0) {
|
||||
if (bq27xxx_battery_is_full(di, flags))
|
||||
val_status->intval = POWER_SUPPLY_STATUS_FULL;
|
||||
else if (curr > 0)
|
||||
val_status->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
} else if (curr < 0) {
|
||||
else if (curr < 0)
|
||||
val_status->intval = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||
} else {
|
||||
if (bq27xxx_battery_is_full(di, flags))
|
||||
val_status->intval = POWER_SUPPLY_STATUS_FULL;
|
||||
else
|
||||
val_status->intval =
|
||||
POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||
}
|
||||
else
|
||||
val_status->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user