Merge branch 'async-battery' into release
authorLen Brown <len.brown@intel.com>
Sun, 5 Apr 2009 05:48:46 +0000 (01:48 -0400)
committerLen Brown <len.brown@intel.com>
Sun, 5 Apr 2009 05:48:46 +0000 (01:48 -0400)
Conflicts:
drivers/acpi/Makefile

Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/Makefile
drivers/acpi/battery.c

index 4d4e3e02fcb777d8b019bfec6f9aef6f143cfcbd..03a985be3fe3c6554c13b6549fa7b56aac474e49 100644 (file)
@@ -45,7 +45,6 @@ endif
 
 # These are (potentially) separate modules
 obj-$(CONFIG_ACPI_AC)          += ac.o
-obj-$(CONFIG_ACPI_BATTERY)     += battery.o
 obj-$(CONFIG_ACPI_BUTTON)      += button.o
 obj-$(CONFIG_ACPI_FAN)         += fan.o
 obj-$(CONFIG_ACPI_VIDEO)       += video.o
@@ -54,6 +53,7 @@ obj-$(CONFIG_ACPI_PROCESSOR)  += processor.o
 obj-$(CONFIG_ACPI_CONTAINER)   += container.o
 obj-$(CONFIG_ACPI_THERMAL)     += thermal.o
 obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o
+obj-$(CONFIG_ACPI_BATTERY)     += battery.o
 obj-$(CONFIG_ACPI_SBS)         += sbshc.o
 obj-$(CONFIG_ACPI_SBS)         += sbs.o
 
index 09a2240d5605291ea37db1b0320bfa1b698d045f..5dfe18bf24cbbea35d1894a78bf14f035eb98fde 100644 (file)
@@ -30,6 +30,7 @@
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/jiffies.h>
+#include <linux/async.h>
 
 #ifdef CONFIG_ACPI_PROCFS_POWER
 #include <linux/proc_fs.h>
@@ -903,21 +904,27 @@ static struct acpi_driver acpi_battery_driver = {
                },
 };
 
-static int __init acpi_battery_init(void)
+static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie)
 {
        if (acpi_disabled)
-               return -ENODEV;
+               return;
 #ifdef CONFIG_ACPI_PROCFS_POWER
        acpi_battery_dir = acpi_lock_battery_dir();
        if (!acpi_battery_dir)
-               return -ENODEV;
+               return;
 #endif
        if (acpi_bus_register_driver(&acpi_battery_driver) < 0) {
 #ifdef CONFIG_ACPI_PROCFS_POWER
                acpi_unlock_battery_dir(acpi_battery_dir);
 #endif
-               return -ENODEV;
+               return;
        }
+       return;
+}
+
+static int __init acpi_battery_init(void)
+{
+       async_schedule(acpi_battery_init_async, NULL);
        return 0;
 }