diff options
author | Vladimir Lebedev <vladimir.p.lebedev@intel.com> | 2006-06-27 04:49:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-07-01 12:13:49 -0400 |
commit | 9fdae727645215d4dbb88912b9a176ef87911a05 (patch) | |
tree | e1087f6e8f7616a7cf836bef04aba61c77b18b88 /drivers | |
parent | 03d782524e2d0511317769521c8d5daadbab8482 (diff) |
ACPI: handle battery notify event on broken BIOS
http://bugzilla.kernel.org/show_bug.cgi?id=3241
Signed-off-by: Vladimir Lebedev <vladimir.p.lebedev@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/battery.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 2b8aab560b58..a192d2b47cc8 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -665,6 +665,8 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data) | |||
665 | switch (event) { | 665 | switch (event) { |
666 | case ACPI_BATTERY_NOTIFY_STATUS: | 666 | case ACPI_BATTERY_NOTIFY_STATUS: |
667 | case ACPI_BATTERY_NOTIFY_INFO: | 667 | case ACPI_BATTERY_NOTIFY_INFO: |
668 | case ACPI_NOTIFY_BUS_CHECK: | ||
669 | case ACPI_NOTIFY_DEVICE_CHECK: | ||
668 | acpi_battery_check(battery); | 670 | acpi_battery_check(battery); |
669 | acpi_bus_generate_event(device, event, battery->flags.present); | 671 | acpi_bus_generate_event(device, event, battery->flags.present); |
670 | break; | 672 | break; |
@@ -706,7 +708,7 @@ static int acpi_battery_add(struct acpi_device *device) | |||
706 | goto end; | 708 | goto end; |
707 | 709 | ||
708 | status = acpi_install_notify_handler(device->handle, | 710 | status = acpi_install_notify_handler(device->handle, |
709 | ACPI_DEVICE_NOTIFY, | 711 | ACPI_ALL_NOTIFY, |
710 | acpi_battery_notify, battery); | 712 | acpi_battery_notify, battery); |
711 | if (ACPI_FAILURE(status)) { | 713 | if (ACPI_FAILURE(status)) { |
712 | result = -ENODEV; | 714 | result = -ENODEV; |
@@ -738,7 +740,7 @@ static int acpi_battery_remove(struct acpi_device *device, int type) | |||
738 | battery = (struct acpi_battery *)acpi_driver_data(device); | 740 | battery = (struct acpi_battery *)acpi_driver_data(device); |
739 | 741 | ||
740 | status = acpi_remove_notify_handler(device->handle, | 742 | status = acpi_remove_notify_handler(device->handle, |
741 | ACPI_DEVICE_NOTIFY, | 743 | ACPI_ALL_NOTIFY, |
742 | acpi_battery_notify); | 744 | acpi_battery_notify); |
743 | 745 | ||
744 | acpi_battery_remove_fs(device); | 746 | acpi_battery_remove_fs(device); |