power: supply: generic-adc-battery: fix status with no supplier
PATCH 1/1 power: supply: generic-adc-battery: fix status with no supplier
power_supply_am_i_supplied() returns -ENODEV when no registered power supply supplies the battery. generic-adc-battery's gab_work() tests this return value as a boolean, so -ENODEV takes the supplied branch and reports CHARGING, or NOT_CHARGING if the charge-finished GPIO is asserted, instead of DISCHARGING.
This was noticed while bringing up an out-of-tree Linux port to the
WikiReader: the driver reported CHARGING on a device powered by two AAA batteries with no charging hardware.
Only a positive return value indicates an online supplier, so treat zero and negative returns as discharging.
--- drivers/power/supply/generic-adc-battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/power/supply/generic-adc-battery.c +1 -1
@@ -130,7 +130,7 @@ static void gab_work(struct work_struct *work) adc_bat = container_of(delayed_work, struct gab, bat_work); status = adc_bat->status; -if (!power_supply_am_i_supplied (adc_bat->psy)) +if (power_supply_am_i_supplied (adc_bat->psy) <=0 ) adc_bat->status =POWER_SUPPLY_STATUS_DISCHARGING ;else if (gab_charge_finished (adc_bat)) adc_bat->status =POWER_SUPPLY_STATUS_NOT_CHARGING ;
base-commit: 24a19b953e2a3d0ea5a8c4951a0ab8f32720c907
Signature · 1 line
2.54.0 (Apple Git-157)
Sebastian Reichel
AppliedQuoted 11 lines · Tim Douglas
power_supply_am_i_supplied()returns-ENODEVwhen no registered power supply supplies the battery. generic-adc-battery'sgab_work()tests this return value as a boolean, so-ENODEVtakes the supplied branch and reports CHARGING, orNOT_CHARGINGif the charge-finished GPIO is asserted, instead of DISCHARGING.This was noticed while bringing up an out-of-tree Linux port to the
WikiReader: the driver reported CHARGING on a device powered by two AAA batteries with no charging hardware.[...]
Applied, thanks!
[1/1] power: supply: generic-adc-battery: fix status with no supplier
commit: 8ae5a3f40045ff486826ed6b6a83e39a0f380073
Best regards,
Signature · 1 line
Sebastian Reichel <[email protected]>