diff options
author | Taku Izumi <izumi.taku@jp.fujitsu.com> | 2008-11-20 01:22:37 -0500 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-01-07 14:12:35 -0500 |
commit | e0fa3b43df0b57967857b2c83bad9a5193fbddf5 (patch) | |
tree | 47ebb848837d834a755b3b7facdf3707dd8f5c81 | |
parent | 753e3aca735dc446f66d501b625122661738b57d (diff) |
PCI/ACPI: Remove unnecessary _OSC evaluation for control request
If a control had already been granted, we don't need to re-evaluate
_OSC for it because firmware may not reject control of any feature it
has previously granted control to.
Reviewed-by: Andrew Patterson <andrew.patterson@hp.com>
Tested-by: Andrew Patterson <andrew.patterson@hp.com>
Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r-- | drivers/pci/pci-acpi.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index c580a525d9ce..736bb248008e 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c | |||
@@ -210,6 +210,10 @@ acpi_status pci_osc_control_set(acpi_handle handle, u32 flags) | |||
210 | goto out; | 210 | goto out; |
211 | } | 211 | } |
212 | 212 | ||
213 | /* No need to evaluate _OSC if the control was already granted. */ | ||
214 | if ((osc_data->control_set & ctrlset) == ctrlset) | ||
215 | goto out; | ||
216 | |||
213 | if (!osc_data->is_queried) { | 217 | if (!osc_data->is_queried) { |
214 | status = __acpi_query_osc(osc_data->support_set, osc_data); | 218 | status = __acpi_query_osc(osc_data->support_set, osc_data); |
215 | if (ACPI_FAILURE(status)) | 219 | if (ACPI_FAILURE(status)) |