浏览代码

ACPI: Attach the ACPI device to the ACPI handle as early as possible

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>
Zhao Yakui 17 年之前
父节点
当前提交
eab4b64576
共有 1 个文件被更改,包括 10 次插入2 次删除
  1. 10 2
      drivers/acpi/scan.c

+ 10 - 2
drivers/acpi/scan.c

@@ -1252,6 +1252,16 @@ acpi_add_single_object(struct acpi_device **child,
 	 */
 	 */
 	acpi_device_set_id(device, parent, handle, type);
 	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
 	 * Power Management
 	 * ----------------
 	 * ----------------
@@ -1282,8 +1292,6 @@ acpi_add_single_object(struct acpi_device **child,
 			goto end;
 			goto end;
 	}
 	}
 
 
-	if ((result = acpi_device_set_context(device, type)))
-		goto end;
 
 
 	result = acpi_device_register(device, parent);
 	result = acpi_device_register(device, parent);