tree 6511ffff222d497814e35adf374bfde201fd0fc1
parent 55e59c511cea3c6c721971467c707e9955922bc2
author Venkatesh Pallipadi <[EMAIL PROTECTED]> Fri, 01 Apr 2005 09:23:15 -0500
committer Len Brown <[EMAIL PROTECTED]> Tue, 12 Jul 2005 08:02:27 -0400

[ACPI] update /proc/acpi/processor/*/power even if only C1 support

Signed-off-by: Venkatesh Pallipadi <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>

 drivers/acpi/processor_idle.c |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -519,6 +519,29 @@ static int acpi_processor_get_power_info
 }
 
 
+static int acpi_processor_get_power_info_default_c1 (struct acpi_processor *pr)
+{
+       int i;
+
+       ACPI_FUNCTION_TRACE("acpi_processor_get_power_info_default_c1");
+
+       for (i = 0; i < ACPI_PROCESSOR_MAX_POWER; i++)
+               memset(pr->power.states, 0, sizeof(struct acpi_processor_cx));
+
+       /* if info is obtained from pblk/fadt, type equals state */
+       pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1;
+       pr->power.states[ACPI_STATE_C2].type = ACPI_STATE_C2;
+       pr->power.states[ACPI_STATE_C3].type = ACPI_STATE_C3;
+
+       /* the C0 state only exists as a filler in our array,
+        * and all processors need to support C1 */
+       pr->power.states[ACPI_STATE_C0].valid = 1;
+       pr->power.states[ACPI_STATE_C1].valid = 1;
+
+       return_VALUE(0);
+}
+
+
 static int acpi_processor_get_power_info_cst (struct acpi_processor *pr)
 {
        acpi_status             status = 0;
@@ -787,10 +810,7 @@ static int acpi_processor_get_power_info
        if ((result) || (acpi_processor_power_verify(pr) < 2)) {
                result = acpi_processor_get_power_info_fadt(pr);
                if (result)
-                       return_VALUE(result);
-
-               if (acpi_processor_power_verify(pr) < 2)
-                       return_VALUE(-ENODEV);
+                       result = acpi_processor_get_power_info_default_c1(pr);
        }
 
        /*
@@ -810,11 +830,10 @@ static int acpi_processor_get_power_info
         * CPU as being "idle manageable"
         */
        for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
-               if (pr->power.states[i].valid)
+               if (pr->power.states[i].valid) {
                        pr->power.count = i;
-               if ((pr->power.states[i].valid) &&
-                   (pr->power.states[i].type >= ACPI_STATE_C2))
                        pr->flags.power = 1;
+               }
        }
 
        return_VALUE(0);
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to