diff options
-rw-r--r-- | drivers/acpi/pci_root.c | 20 | ||||
-rw-r--r-- | include/acpi/acpi_bus.h | 3 |
2 files changed, 7 insertions, 16 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index d2ae816df0f5..77cd19697b1e 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -249,12 +249,8 @@ static acpi_status acpi_pci_query_osc(struct acpi_pci_root *root, | |||
249 | status = acpi_pci_run_osc(root->device->handle, capbuf, &result); | 249 | status = acpi_pci_run_osc(root->device->handle, capbuf, &result); |
250 | if (ACPI_SUCCESS(status)) { | 250 | if (ACPI_SUCCESS(status)) { |
251 | root->osc_support_set = support; | 251 | root->osc_support_set = support; |
252 | if (control) { | 252 | if (control) |
253 | *control = result; | 253 | *control = result; |
254 | } else { | ||
255 | root->osc_control_qry = result; | ||
256 | root->osc_queried = 1; | ||
257 | } | ||
258 | } | 254 | } |
259 | return status; | 255 | return status; |
260 | } | 256 | } |
@@ -409,14 +405,12 @@ acpi_status acpi_pci_osc_control_set(acpi_handle handle, u32 flags) | |||
409 | goto out; | 405 | goto out; |
410 | 406 | ||
411 | /* Need to query controls first before requesting them */ | 407 | /* Need to query controls first before requesting them */ |
412 | if (!root->osc_queried) { | 408 | flags = control_req; |
413 | status = acpi_pci_query_osc(root, root->osc_support_set, NULL); | 409 | status = acpi_pci_query_osc(root, root->osc_support_set, &flags); |
414 | if (ACPI_FAILURE(status)) | 410 | if (ACPI_FAILURE(status)) |
415 | goto out; | 411 | goto out; |
416 | } | 412 | |
417 | if ((root->osc_control_qry & control_req) != control_req) { | 413 | if (flags != control_req) { |
418 | printk(KERN_DEBUG | ||
419 | "Firmware did not grant requested _OSC control\n"); | ||
420 | status = AE_SUPPORT; | 414 | status = AE_SUPPORT; |
421 | goto out; | 415 | goto out; |
422 | } | 416 | } |
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index baacd98e7cc6..4de84ce3a927 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -377,9 +377,6 @@ struct acpi_pci_root { | |||
377 | 377 | ||
378 | u32 osc_support_set; /* _OSC state of support bits */ | 378 | u32 osc_support_set; /* _OSC state of support bits */ |
379 | u32 osc_control_set; /* _OSC state of control bits */ | 379 | u32 osc_control_set; /* _OSC state of control bits */ |
380 | u32 osc_control_qry; /* the latest _OSC query result */ | ||
381 | |||
382 | u32 osc_queried:1; /* has _OSC control been queried? */ | ||
383 | }; | 380 | }; |
384 | 381 | ||
385 | /* helper */ | 382 | /* helper */ |