diff options
Diffstat (limited to 'drivers/acpi/battery.c')
-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 | ||