PCI/ACPI: Remove unnecessary _OSC evaluation for control request
authorTaku Izumi <izumi.taku@jp.fujitsu.com>
Thu, 20 Nov 2008 06:22:37 +0000 (15:22 +0900)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Wed, 7 Jan 2009 19:12:35 +0000 (11:12 -0800)
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>
drivers/pci/pci-acpi.c

index c580a525d9ce7d4e6bfcc10055bf307d2625ad93..736bb248008e5baace5e188e6a4d691e230b4dcd 100644 (file)
@@ -210,6 +210,10 @@ acpi_status pci_osc_control_set(acpi_handle handle, u32 flags)
                goto out;
        }
 
+       /* No need to evaluate _OSC if the control was already granted. */
+       if ((osc_data->control_set & ctrlset) == ctrlset)
+               goto out;
+
        if (!osc_data->is_queried) {
                status = __acpi_query_osc(osc_data->support_set, osc_data);
                if (ACPI_FAILURE(status))