]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ACPI: Attach the ACPI device to the ACPI handle as early as possible
authorZhao Yakui <yakui.zhao@intel.com>
Mon, 11 Aug 2008 06:54:16 +0000 (14:54 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 6 Feb 2009 22:00:41 +0000 (14:00 -0800)
commit eab4b645769fa2f8703f5a3cb0cc4ac090d347af upstream.

Attach the ACPI device to the ACPI handle as early as possible so that OS
can get the corresponding ACPI device by the acpi handle in the course
of getting the power/wakeup/performance flags.

http://bugzilla.kernel.org/show_bug.cgi?id=8049
http://bugzilla.kernel.org/show_bug.cgi?id=11000

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Cc: Thomas Renninger <trenn@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/acpi/scan.c

index 0450761c342825c6a426bafe850b375480401dc0..afa66f40d318bb528dd56ef35f92d06697ba2e7c 100644 (file)
@@ -1261,6 +1261,16 @@ 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
         * ----------------
@@ -1291,8 +1301,6 @@ 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);