diff options
-rw-r--r-- | drivers/acpi/scan.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 308ddb1c207c..ad0679843bd5 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -1253,6 +1253,16 @@ acpi_add_single_object(struct acpi_device **child, | |||
1253 | acpi_device_set_id(device, parent, handle, type); | 1253 | acpi_device_set_id(device, parent, handle, type); |
1254 | 1254 | ||
1255 | /* | 1255 | /* |
1256 | * The ACPI device is attached to acpi handle before getting | ||
1257 | * the power/wakeup/peformance flags. Otherwise OS can't get | ||
1258 | * the corresponding ACPI device by the acpi handle in the course | ||
1259 | * of getting the power/wakeup/performance flags. | ||
1260 | */ | ||
1261 | result = acpi_device_set_context(device, type); | ||
1262 | if (result) | ||
1263 | goto end; | ||
1264 | |||
1265 | /* | ||
1256 | * Power Management | 1266 | * Power Management |
1257 | * ---------------- | 1267 | * ---------------- |
1258 | */ | 1268 | */ |
@@ -1282,8 +1292,6 @@ acpi_add_single_object(struct acpi_device **child, | |||
1282 | goto end; | 1292 | goto end; |
1283 | } | 1293 | } |
1284 | 1294 | ||
1285 | if ((result = acpi_device_set_context(device, type))) | ||
1286 | goto end; | ||
1287 | 1295 | ||
1288 | result = acpi_device_register(device, parent); | 1296 | result = acpi_device_register(device, parent); |
1289 | 1297 | ||