ACPI: handle battery notify event on broken BIOS
authorVladimir Lebedev <vladimir.p.lebedev@intel.com>
Tue, 27 Jun 2006 08:49:00 +0000 (04:49 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 1 Jul 2006 16:13:49 +0000 (12:13 -0400)
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>
drivers/acpi/battery.c

index 2b8aab560b5855ae51bb56dbe379ff85d87c83eb..a192d2b47cc85943b8d89b3de1c1378ad7bb87bc 100644 (file)
@@ -665,6 +665,8 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
        switch (event) {
        case ACPI_BATTERY_NOTIFY_STATUS:
        case ACPI_BATTERY_NOTIFY_INFO:
+       case ACPI_NOTIFY_BUS_CHECK:
+       case ACPI_NOTIFY_DEVICE_CHECK:
                acpi_battery_check(battery);
                acpi_bus_generate_event(device, event, battery->flags.present);
                break;
@@ -706,7 +708,7 @@ static int acpi_battery_add(struct acpi_device *device)
                goto end;
 
        status = acpi_install_notify_handler(device->handle,
-                                            ACPI_DEVICE_NOTIFY,
+                                            ACPI_ALL_NOTIFY,
                                             acpi_battery_notify, battery);
        if (ACPI_FAILURE(status)) {
                result = -ENODEV;
@@ -738,7 +740,7 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
        battery = (struct acpi_battery *)acpi_driver_data(device);
 
        status = acpi_remove_notify_handler(device->handle,
-                                           ACPI_DEVICE_NOTIFY,
+                                           ACPI_ALL_NOTIFY,
                                            acpi_battery_notify);
 
        acpi_battery_remove_fs(device);