aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/Makefile2
-rw-r--r--drivers/acpi/battery.c15
2 files changed, 12 insertions, 5 deletions
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index b130ea0d0759..298caf6862b6 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -37,7 +37,6 @@ obj-y += scan.o
37# Keep EC driver first. Initialization of others depend on it. 37# Keep EC driver first. Initialization of others depend on it.
38obj-y += ec.o 38obj-y += ec.o
39obj-$(CONFIG_ACPI_AC) += ac.o 39obj-$(CONFIG_ACPI_AC) += ac.o
40obj-$(CONFIG_ACPI_BATTERY) += battery.o
41obj-$(CONFIG_ACPI_BUTTON) += button.o 40obj-$(CONFIG_ACPI_BUTTON) += button.o
42obj-$(CONFIG_ACPI_FAN) += fan.o 41obj-$(CONFIG_ACPI_FAN) += fan.o
43obj-$(CONFIG_ACPI_DOCK) += dock.o 42obj-$(CONFIG_ACPI_DOCK) += dock.o
@@ -57,5 +56,6 @@ obj-$(CONFIG_ACPI_DEBUG) += debug.o
57obj-$(CONFIG_ACPI_NUMA) += numa.o 56obj-$(CONFIG_ACPI_NUMA) += numa.o
58obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o 57obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o
59obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o 58obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o
59obj-$(CONFIG_ACPI_BATTERY) += battery.o
60obj-$(CONFIG_ACPI_SBS) += sbshc.o 60obj-$(CONFIG_ACPI_SBS) += sbshc.o
61obj-$(CONFIG_ACPI_SBS) += sbs.o 61obj-$(CONFIG_ACPI_SBS) += sbs.o
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 69cbc57c2d1c..0f1c8190c1d3 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -30,6 +30,7 @@
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/jiffies.h> 32#include <linux/jiffies.h>
33#include <linux/async.h>
33 34
34#ifdef CONFIG_ACPI_PROCFS_POWER 35#ifdef CONFIG_ACPI_PROCFS_POWER
35#include <linux/proc_fs.h> 36#include <linux/proc_fs.h>
@@ -901,21 +902,27 @@ static struct acpi_driver acpi_battery_driver = {
901 }, 902 },
902}; 903};
903 904
904static int __init acpi_battery_init(void) 905static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie)
905{ 906{
906 if (acpi_disabled) 907 if (acpi_disabled)
907 return -ENODEV; 908 return;
908#ifdef CONFIG_ACPI_PROCFS_POWER 909#ifdef CONFIG_ACPI_PROCFS_POWER
909 acpi_battery_dir = acpi_lock_battery_dir(); 910 acpi_battery_dir = acpi_lock_battery_dir();
910 if (!acpi_battery_dir) 911 if (!acpi_battery_dir)
911 return -ENODEV; 912 return;
912#endif 913#endif
913 if (acpi_bus_register_driver(&acpi_battery_driver) < 0) { 914 if (acpi_bus_register_driver(&acpi_battery_driver) < 0) {
914#ifdef CONFIG_ACPI_PROCFS_POWER 915#ifdef CONFIG_ACPI_PROCFS_POWER
915 acpi_unlock_battery_dir(acpi_battery_dir); 916 acpi_unlock_battery_dir(acpi_battery_dir);
916#endif 917#endif
917 return -ENODEV; 918 return;
918 } 919 }
920 return;
921}
922
923static int __init acpi_battery_init(void)
924{
925 async_schedule(acpi_battery_init_async, NULL);
919 return 0; 926 return 0;
920} 927}
921 928