mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
platform/x86: xo15-ebook: Register ACPI notify handler directly
To facilitate subsequent conversion of the driver to a platform one, make it install an ACPI notify handler directly instead of using a .notify() callback in struct acpi_driver. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://patch.msgid.link/3420768.aeNJFYEL58@rafael.j.wysocki Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
826264e0b0
commit
60e68011d8
|
|
@ -57,16 +57,15 @@ static int ebook_send_state(struct acpi_device *device)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void ebook_switch_notify(struct acpi_device *device, u32 event)
|
||||
static void ebook_switch_notify(acpi_handle handle, u32 event, void *data)
|
||||
{
|
||||
switch (event) {
|
||||
case ACPI_FIXED_HARDWARE_EVENT:
|
||||
case XO15_EBOOK_NOTIFY_STATUS:
|
||||
ebook_send_state(device);
|
||||
ebook_send_state(data);
|
||||
break;
|
||||
default:
|
||||
acpi_handle_debug(device->handle,
|
||||
"Unsupported event [0x%x]\n", event);
|
||||
acpi_handle_debug(handle, "Unsupported event [0x%x]\n", event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -123,6 +122,11 @@ static int ebook_switch_add(struct acpi_device *device)
|
|||
if (error)
|
||||
goto err_free_input;
|
||||
|
||||
error = acpi_dev_install_notify_handler(device, ACPI_DEVICE_NOTIFY,
|
||||
ebook_switch_notify, device);
|
||||
if (error)
|
||||
goto err_unregister_input;
|
||||
|
||||
ebook_send_state(device);
|
||||
|
||||
if (device->wakeup.flags.valid) {
|
||||
|
|
@ -139,6 +143,10 @@ static int ebook_switch_add(struct acpi_device *device)
|
|||
err_free_button:
|
||||
kfree(button);
|
||||
return error;
|
||||
|
||||
err_unregister_input:
|
||||
input_unregister_device(input);
|
||||
goto err_free_button;
|
||||
}
|
||||
|
||||
static void ebook_switch_remove(struct acpi_device *device)
|
||||
|
|
@ -149,6 +157,8 @@ static void ebook_switch_remove(struct acpi_device *device)
|
|||
acpi_disable_gpe(device->wakeup.gpe_device,
|
||||
device->wakeup.gpe_number);
|
||||
|
||||
acpi_dev_remove_notify_handler(device, ACPI_DEVICE_NOTIFY,
|
||||
ebook_switch_notify);
|
||||
input_unregister_device(button->input);
|
||||
kfree(button);
|
||||
}
|
||||
|
|
@ -160,7 +170,6 @@ static struct acpi_driver xo15_ebook_driver = {
|
|||
.ops = {
|
||||
.add = ebook_switch_add,
|
||||
.remove = ebook_switch_remove,
|
||||
.notify = ebook_switch_notify,
|
||||
},
|
||||
.drv.pm = &ebook_switch_pm,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user