Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd1ebcc0 authored by Anton Vorontsov's avatar Anton Vorontsov
Browse files

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: default avatarAnton Vorontsov <cbou@mail.ru>
parent 804b3f9a
Loading
Loading
Loading
Loading
+10 −12
Original line number Diff line number Diff line
@@ -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
		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 {
		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 = calculate_time(status.intval);
	} else {
		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);