[ACPI] Prefer _CST over FADT for C-state capabilities
authorVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Thu, 15 Sep 2005 16:19:00 +0000 (12:19 -0400)
committerLen Brown <len.brown@intel.com>
Wed, 30 Nov 2005 08:23:06 +0000 (03:23 -0500)
Note: This ACPI standard compliance may cause regression
on some system, if they have _CST present, but _CST value
is bogus. "nocst" module parameter should workaround
that regression.

http://bugzilla.kernel.org/show_bug.cgi?id=5165

Signed-off-by: Venkatesh Pallipadi<venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
(cherry picked from 883baf7f7e81cca26f4683ae0d25ba48f094cc08 commit)

drivers/acpi/processor_idle.c

index 70d8a6e..5b6a986 100644 (file)
@@ -690,7 +690,7 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr)
 
        /* Validate number of power states discovered */
        if (pr->power.count < 2)
-               status = -ENODEV;
+               status = -EFAULT;
 
       end:
        acpi_os_free(buffer.pointer);
@@ -841,11 +841,11 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
         * this function */
 
        result = acpi_processor_get_power_info_cst(pr);
-       if ((result) || (acpi_processor_power_verify(pr) < 2)) {
+       if (result == -ENODEV)
                result = acpi_processor_get_power_info_fadt(pr);
-               if ((result) || (acpi_processor_power_verify(pr) < 2))
-                       result = acpi_processor_get_power_info_default_c1(pr);
-       }
+
+       if ((result) || (acpi_processor_power_verify(pr) < 2))
+               result = acpi_processor_get_power_info_default_c1(pr);
 
        /*
         * Set Default Policy