Skip to content

Commit

Permalink
apm_power: fix obviously wrong logic for time reporting
Browse files Browse the repository at this point in the history
Prior to this patch, apm_power was unable to report "to empty"/"to full"
time for batteries that hardware-report these values, such as
Apple PMU batteries.

Signed-off-by: Anton Vorontsov <cbou@mail.ru>
  • Loading branch information
Anton Vorontsov committed Oct 4, 2007
1 parent 804b3f9 commit cd1ebcc
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions drivers/power/apm_power.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,19 +200,17 @@ static void apm_battery_apm_get_power_status(struct apm_power_info *info)
info->units = APM_UNITS_MINS;

if (status.intval == POWER_SUPPLY_STATUS_CHARGING) {
if (MPSY_PROP(TIME_TO_FULL_AVG, &time_to_full)) {
if (MPSY_PROP(TIME_TO_FULL_NOW, &time_to_full))
info->time = calculate_time(status.intval);
else
info->time = time_to_full.intval / 60;
}
if (!MPSY_PROP(TIME_TO_FULL_AVG, &time_to_full) ||
!MPSY_PROP(TIME_TO_FULL_NOW, &time_to_full))
info->time = time_to_full.intval / 60;
else
info->time = calculate_time(status.intval);
} else {
if (MPSY_PROP(TIME_TO_EMPTY_AVG, &time_to_empty)) {
if (MPSY_PROP(TIME_TO_EMPTY_NOW, &time_to_empty))
info->time = calculate_time(status.intval);
else
info->time = time_to_empty.intval / 60;
}
if (!MPSY_PROP(TIME_TO_EMPTY_AVG, &time_to_empty) ||
!MPSY_PROP(TIME_TO_EMPTY_NOW, &time_to_empty))
info->time = time_to_empty.intval / 60;
else
info->time = calculate_time(status.intval);
}

up(&power_supply_class->sem);
Expand Down

0 comments on commit cd1ebcc

Please sign in to comment.