apm_power: fix obviously wrong logic for time reporting
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>
This commit is contained in:
parent
804b3f9a16
commit
cd1ebcc0ef
@ -200,19 +200,17 @@ static void apm_battery_apm_get_power_status(struct apm_power_info *info)
|
|||||||
info->units = APM_UNITS_MINS;
|
info->units = APM_UNITS_MINS;
|
||||||
|
|
||||||
if (status.intval == POWER_SUPPLY_STATUS_CHARGING) {
|
if (status.intval == POWER_SUPPLY_STATUS_CHARGING) {
|
||||||
if (MPSY_PROP(TIME_TO_FULL_AVG, &time_to_full)) {
|
if (!MPSY_PROP(TIME_TO_FULL_AVG, &time_to_full) ||
|
||||||
if (MPSY_PROP(TIME_TO_FULL_NOW, &time_to_full))
|
!MPSY_PROP(TIME_TO_FULL_NOW, &time_to_full))
|
||||||
info->time = calculate_time(status.intval);
|
info->time = time_to_full.intval / 60;
|
||||||
else
|
else
|
||||||
info->time = time_to_full.intval / 60;
|
info->time = calculate_time(status.intval);
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (MPSY_PROP(TIME_TO_EMPTY_AVG, &time_to_empty)) {
|
if (!MPSY_PROP(TIME_TO_EMPTY_AVG, &time_to_empty) ||
|
||||||
if (MPSY_PROP(TIME_TO_EMPTY_NOW, &time_to_empty))
|
!MPSY_PROP(TIME_TO_EMPTY_NOW, &time_to_empty))
|
||||||
info->time = calculate_time(status.intval);
|
info->time = time_to_empty.intval / 60;
|
||||||
else
|
else
|
||||||
info->time = time_to_empty.intval / 60;
|
info->time = calculate_time(status.intval);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
up(&power_supply_class->sem);
|
up(&power_supply_class->sem);
|
||||||
|
Loading…
Reference in New Issue
Block a user