ACPI: handle AC notify event on broken BIOS
http://bugzilla.kernel.org/show_bug.cgi?id=3241 updated by Vladimir Lebedev Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
37672d4c52
commit
03d782524e
@@ -194,6 +194,8 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
|
|||||||
device = ac->device;
|
device = ac->device;
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case ACPI_AC_NOTIFY_STATUS:
|
case ACPI_AC_NOTIFY_STATUS:
|
||||||
|
case ACPI_NOTIFY_BUS_CHECK:
|
||||||
|
case ACPI_NOTIFY_DEVICE_CHECK:
|
||||||
acpi_ac_get_state(ac);
|
acpi_ac_get_state(ac);
|
||||||
acpi_bus_generate_event(device, event, (u32) ac->state);
|
acpi_bus_generate_event(device, event, (u32) ac->state);
|
||||||
break;
|
break;
|
||||||
@@ -235,7 +237,7 @@ static int acpi_ac_add(struct acpi_device *device)
|
|||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
status = acpi_install_notify_handler(device->handle,
|
status = acpi_install_notify_handler(device->handle,
|
||||||
ACPI_DEVICE_NOTIFY, acpi_ac_notify,
|
ACPI_ALL_NOTIFY, acpi_ac_notify,
|
||||||
ac);
|
ac);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
result = -ENODEV;
|
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);
|
ac = (struct acpi_ac *)acpi_driver_data(device);
|
||||||
|
|
||||||
status = acpi_remove_notify_handler(device->handle,
|
status = acpi_remove_notify_handler(device->handle,
|
||||||
ACPI_DEVICE_NOTIFY, acpi_ac_notify);
|
ACPI_ALL_NOTIFY, acpi_ac_notify);
|
||||||
|
|
||||||
acpi_ac_remove_fs(device);
|
acpi_ac_remove_fs(device);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user