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 */ |
