ACPI: handle AC notify event on broken BIOS
authorChristian Lupien <lupien@physique.usherbrooke.ca>
Thu, 19 Aug 2004 05:26:00 +0000 (01:26 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 1 Jul 2006 16:09:27 +0000 (12:09 -0400)
http://bugzilla.kernel.org/show_bug.cgi?id=3241

updated by Vladimir Lebedev

Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/ac.c

index 4537ae4..69a98da 100644 (file)
@@ -194,6 +194,8 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
        device = ac->device;
        switch (event) {
        case ACPI_AC_NOTIFY_STATUS:
+       case ACPI_NOTIFY_BUS_CHECK:
+       case ACPI_NOTIFY_DEVICE_CHECK:
                acpi_ac_get_state(ac);
                acpi_bus_generate_event(device, event, (u32) ac->state);
                break;
@@ -235,7 +237,7 @@ static int acpi_ac_add(struct acpi_device *device)
                goto end;
 
        status = acpi_install_notify_handler(device->handle,
-                                            ACPI_DEVICE_NOTIFY, acpi_ac_notify,
+                                            ACPI_ALL_NOTIFY, acpi_ac_notify,
                                             ac);
        if (ACPI_FAILURE(status)) {
                result = -ENODEV;
@@ -267,7 +269,7 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
        ac = (struct acpi_ac *)acpi_driver_data(device);
 
        status = acpi_remove_notify_handler(device->handle,
-                                           ACPI_DEVICE_NOTIFY, acpi_ac_notify);
+                                           ACPI_ALL_NOTIFY, acpi_ac_notify);
 
        acpi_ac_remove_fs(device);