diff options
| -rw-r--r-- | drivers/acpi/battery.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index b0de6312919a..eb00c4e3747a 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
| @@ -796,13 +796,12 @@ static void acpi_battery_remove_fs(struct acpi_device *device) | |||
| 796 | Driver Interface | 796 | Driver Interface |
| 797 | -------------------------------------------------------------------------- */ | 797 | -------------------------------------------------------------------------- */ |
| 798 | 798 | ||
| 799 | static void acpi_battery_notify(acpi_handle handle, u32 event, void *data) | 799 | static void acpi_battery_notify(struct acpi_device *device, u32 event) |
| 800 | { | 800 | { |
| 801 | struct acpi_battery *battery = data; | 801 | struct acpi_battery *battery = acpi_driver_data(device); |
| 802 | struct acpi_device *device; | 802 | |
| 803 | if (!battery) | 803 | if (!battery) |
| 804 | return; | 804 | return; |
| 805 | device = battery->device; | ||
| 806 | acpi_battery_update(battery); | 805 | acpi_battery_update(battery); |
| 807 | acpi_bus_generate_proc_event(device, event, | 806 | acpi_bus_generate_proc_event(device, event, |
| 808 | acpi_battery_present(battery)); | 807 | acpi_battery_present(battery)); |
| @@ -819,7 +818,6 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data) | |||
| 819 | static int acpi_battery_add(struct acpi_device *device) | 818 | static int acpi_battery_add(struct acpi_device *device) |
| 820 | { | 819 | { |
| 821 | int result = 0; | 820 | int result = 0; |
| 822 | acpi_status status = 0; | ||
| 823 | struct acpi_battery *battery = NULL; | 821 | struct acpi_battery *battery = NULL; |
| 824 | if (!device) | 822 | if (!device) |
| 825 | return -EINVAL; | 823 | return -EINVAL; |
| @@ -837,14 +835,6 @@ static int acpi_battery_add(struct acpi_device *device) | |||
| 837 | if (result) | 835 | if (result) |
| 838 | goto end; | 836 | goto end; |
| 839 | #endif | 837 | #endif |
| 840 | status = acpi_install_notify_handler(device->handle, | ||
| 841 | ACPI_ALL_NOTIFY, | ||
| 842 | acpi_battery_notify, battery); | ||
| 843 | if (ACPI_FAILURE(status)) { | ||
| 844 | ACPI_EXCEPTION((AE_INFO, status, "Installing notify handler")); | ||
| 845 | result = -ENODEV; | ||
| 846 | goto end; | ||
| 847 | } | ||
| 848 | printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", | 838 | printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", |
| 849 | ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), | 839 | ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), |
| 850 | device->status.battery_present ? "present" : "absent"); | 840 | device->status.battery_present ? "present" : "absent"); |
| @@ -860,15 +850,11 @@ static int acpi_battery_add(struct acpi_device *device) | |||
| 860 | 850 | ||
| 861 | static int acpi_battery_remove(struct acpi_device *device, int type) | 851 | static int acpi_battery_remove(struct acpi_device *device, int type) |
| 862 | { | 852 | { |
| 863 | acpi_status status = 0; | ||
| 864 | struct acpi_battery *battery = NULL; | 853 | struct acpi_battery *battery = NULL; |
| 865 | 854 | ||
| 866 | if (!device || !acpi_driver_data(device)) | 855 | if (!device || !acpi_driver_data(device)) |
| 867 | return -EINVAL; | 856 | return -EINVAL; |
| 868 | battery = acpi_driver_data(device); | 857 | battery = acpi_driver_data(device); |
| 869 | status = acpi_remove_notify_handler(device->handle, | ||
| 870 | ACPI_ALL_NOTIFY, | ||
| 871 | acpi_battery_notify); | ||
| 872 | #ifdef CONFIG_ACPI_PROCFS_POWER | 858 | #ifdef CONFIG_ACPI_PROCFS_POWER |
| 873 | acpi_battery_remove_fs(device); | 859 | acpi_battery_remove_fs(device); |
| 874 | #endif | 860 | #endif |
| @@ -896,10 +882,12 @@ static struct acpi_driver acpi_battery_driver = { | |||
| 896 | .name = "battery", | 882 | .name = "battery", |
| 897 | .class = ACPI_BATTERY_CLASS, | 883 | .class = ACPI_BATTERY_CLASS, |
| 898 | .ids = battery_device_ids, | 884 | .ids = battery_device_ids, |
| 885 | .flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS, | ||
| 899 | .ops = { | 886 | .ops = { |
| 900 | .add = acpi_battery_add, | 887 | .add = acpi_battery_add, |
| 901 | .resume = acpi_battery_resume, | 888 | .resume = acpi_battery_resume, |
| 902 | .remove = acpi_battery_remove, | 889 | .remove = acpi_battery_remove, |
| 890 | .notify = acpi_battery_notify, | ||
| 903 | }, | 891 | }, |
| 904 | }; | 892 | }; |
| 905 | 893 | ||
