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

Commit 4bd35cdb authored by Vladimir Lebedev's avatar Vladimir Lebedev Committed by Len Brown
Browse files

ACPI: battery: check for battery present on /proc/battery access

parent eaefd5fb
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -324,6 +324,13 @@ static int acpi_battery_check(struct acpi_battery *battery)
	return result;
}

static void acpi_battery_check_present(struct acpi_battery *battery)
{
	if (!battery->flags.present) {
		acpi_battery_check(battery);
	}
}

/* --------------------------------------------------------------------------
                              FS Interface (/proc)
   -------------------------------------------------------------------------- */
@@ -340,6 +347,8 @@ static int acpi_battery_read_info(struct seq_file *seq, void *offset)
	if (!battery)
		goto end;

	acpi_battery_check_present(battery);

	if (battery->flags.present)
		seq_printf(seq, "present:                 yes\n");
	else {
@@ -424,6 +433,8 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
	if (!battery)
		goto end;

	acpi_battery_check_present(battery);

	if (battery->flags.present)
		seq_printf(seq, "present:                 yes\n");
	else {
@@ -499,6 +510,8 @@ static int acpi_battery_read_alarm(struct seq_file *seq, void *offset)
	if (!battery)
		goto end;

	acpi_battery_check_present(battery);

	if (!battery->flags.present) {
		seq_printf(seq, "present:                 no\n");
		goto end;
@@ -536,6 +549,8 @@ acpi_battery_write_alarm(struct file *file,
	if (!battery || (count > sizeof(alarm_string) - 1))
		return -EINVAL;

	acpi_battery_check_present(battery);

	if (!battery->flags.present)
		return -ENODEV;