Merge branch 'acpica' into release
[linux-2.6-block.git] / drivers / acpi / scan.c
index dc14421b93f1b8a12630bd1d2067e585702c0fe3..297d8b94fbbc53c9fa75359eb4c934a08c92d68e 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.
@@ -1314,16 +1315,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);