aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/battery.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/battery.c')
-rw-r--r--drivers/acpi/battery.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 02de49ef1bce..e64c76c8b726 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -323,6 +323,13 @@ static int acpi_battery_check(struct acpi_battery *battery)
323 return result; 323 return result;
324} 324}
325 325
326static void acpi_battery_check_present(struct acpi_battery *battery)
327{
328 if (!battery->flags.present) {
329 acpi_battery_check(battery);
330 }
331}
332
326/* -------------------------------------------------------------------------- 333/* --------------------------------------------------------------------------
327 FS Interface (/proc) 334 FS Interface (/proc)
328 -------------------------------------------------------------------------- */ 335 -------------------------------------------------------------------------- */
@@ -339,6 +346,8 @@ static int acpi_battery_read_info(struct seq_file *seq, void *offset)
339 if (!battery) 346 if (!battery)
340 goto end; 347 goto end;
341 348
349 acpi_battery_check_present(battery);
350
342 if (battery->flags.present) 351 if (battery->flags.present)
343 seq_printf(seq, "present: yes\n"); 352 seq_printf(seq, "present: yes\n");
344 else { 353 else {
@@ -423,6 +432,8 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
423 if (!battery) 432 if (!battery)
424 goto end; 433 goto end;
425 434
435 acpi_battery_check_present(battery);
436
426 if (battery->flags.present) 437 if (battery->flags.present)
427 seq_printf(seq, "present: yes\n"); 438 seq_printf(seq, "present: yes\n");
428 else { 439 else {
@@ -498,6 +509,8 @@ static int acpi_battery_read_alarm(struct seq_file *seq, void *offset)
498 if (!battery) 509 if (!battery)
499 goto end; 510 goto end;
500 511
512 acpi_battery_check_present(battery);
513
501 if (!battery->flags.present) { 514 if (!battery->flags.present) {
502 seq_printf(seq, "present: no\n"); 515 seq_printf(seq, "present: no\n");
503 goto end; 516 goto end;
@@ -535,6 +548,8 @@ acpi_battery_write_alarm(struct file *file,
535 if (!battery || (count > sizeof(alarm_string) - 1)) 548 if (!battery || (count > sizeof(alarm_string) - 1))
536 return -EINVAL; 549 return -EINVAL;
537 550
551 acpi_battery_check_present(battery);
552
538 if (!battery->flags.present) 553 if (!battery->flags.present)
539 return -ENODEV; 554 return -ENODEV;
540 555