Merge branch 'acpica' into release
[linux-2.6.git] / drivers / acpi / scan.c
index dc14421..297d8b9 100644 (file)
@@ -785,6 +785,7 @@ static int acpi_bus_get_wakeup_device_flags(struct acpi_device *device)
        kfree(buffer.pointer);
 
        device->wakeup.flags.valid = 1;
+       device->wakeup.prepare_count = 0;
        /* Call _PSW/_DSW object to disable its ability to wake the sleeping
         * system for the ACPI device with the _PRW object.
         * The _PSW object is depreciated in ACPI 3.0 and is replaced by _DSW.
@@ -1315,16 +1316,6 @@ acpi_add_single_object(struct acpi_device **child,
        acpi_device_set_id(device, parent, handle, type);
 
        /*
-        * The ACPI device is attached to acpi handle before getting
-        * the power/wakeup/peformance flags. Otherwise OS can't get
-        * the corresponding ACPI device by the acpi handle in the course
-        * of getting the power/wakeup/performance flags.
-        */
-       result = acpi_device_set_context(device, type);
-       if (result)
-               goto end;
-
-       /*
         * Power Management
         * ----------------
         */
@@ -1354,6 +1345,8 @@ acpi_add_single_object(struct acpi_device **child,
                        goto end;
        }
 
+       if ((result = acpi_device_set_context(device, type)))
+               goto end;
 
        result = acpi_device_register(device, parent);