Revert "UBUNTU: SAUCE: acpi battery -- move first lookup asynchronous"
authorTim Gardner <tim.gardner@canonical.com>
Mon, 2 May 2011 19:27:58 +0000 (13:27 -0600)
committerSteve Conklin <sconklin@canonical.com>
Thu, 2 Jun 2011 19:23:04 +0000 (14:23 -0500)
This reverts commit 45b4ec715e32984faae895e503366e5c8cd3b67b.

Collides with upstream stable 'ACPI battery: fribble sysfs files from a resume notifier'

BugLink: http://bugs.launchpad.net/bugs/775809

Signed-off-by: Tim Gardner <tim.gardner@canonical.com>

drivers/acpi/battery.c

index ca84b6f..ac1a599 100644 (file)
@@ -940,18 +940,6 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event)
                power_supply_changed(&battery->bat);
 }
 
-static LIST_HEAD(acpi_battery_domain);
-
-static void acpi_battery_update_async(struct acpi_device *device, async_cookie_t cookie)
-{
-       struct acpi_battery *battery = acpi_driver_data(device);
-
-       acpi_battery_update(battery);
-       printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
-               ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
-               device->status.battery_present ? "present" : "absent");
-}
-
 static int acpi_battery_add(struct acpi_device *device)
 {
        int result = 0;
@@ -970,14 +958,14 @@ static int acpi_battery_add(struct acpi_device *device)
        if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle,
                        "_BIX", &handle)))
                set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags);
-       /* Mark the battery for update at first access. */
-       battery->update_time = 0;
+       acpi_battery_update(battery);
 #ifdef CONFIG_ACPI_PROCFS_POWER
        result = acpi_battery_add_fs(device);
 #endif
        if (!result) {
-               async_schedule_domain(acpi_battery_update_async, device, &acpi_battery_domain);
-
+               printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
+                       ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
+                       device->status.battery_present ? "present" : "absent");
        } else {
 #ifdef CONFIG_ACPI_PROCFS_POWER
                acpi_battery_remove_fs(device);
@@ -993,10 +981,6 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
 
        if (!device || !acpi_driver_data(device))
                return -EINVAL;
-
-       /* Ensure all async updates are complete before freeing the battery. */
-       async_synchronize_full_domain(&acpi_battery_domain);
-
        battery = acpi_driver_data(device);
 #ifdef CONFIG_ACPI_PROCFS_POWER
        acpi_battery_remove_fs(device);
@@ -1032,21 +1016,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;
 #ifdef CONFIG_ACPI_PROCFS_POWER
        acpi_battery_dir = acpi_lock_battery_dir();
        if (!acpi_battery_dir)
-               return -1;
+               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 -1;
+               return;
        }
+       return;
+}
+
+static int __init acpi_battery_init(void)
+{
+       async_schedule(acpi_battery_init_async, NULL);
        return 0;
 }