diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2001-01-31 22:22:27 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2001-01-31 22:22:27 +0000 |
commit | 825423e4c4f18289df2393951cfd2a7a31fc0464 (patch) | |
tree | 4ad80e981c3d9effa910d2247d118d254f9a5d09 /drivers/acpi/cpu.c | |
parent | c4693dc4856ab907a5c02187a8d398861bebfc7e (diff) |
Merge with Linux 2.4.1.
Diffstat (limited to 'drivers/acpi/cpu.c')
-rw-r--r-- | drivers/acpi/cpu.c | 51 |
1 files changed, 19 insertions, 32 deletions
diff --git a/drivers/acpi/cpu.c b/drivers/acpi/cpu.c index 00ec59da5..3e4adcee2 100644 --- a/drivers/acpi/cpu.c +++ b/drivers/acpi/cpu.c @@ -39,6 +39,9 @@ static int acpi_c3_tested = 0; static int acpi_max_c_state = 1; static int acpi_pm_tmr_len; +#define MAX_C2_LATENCY 100 +#define MAX_C3_LATENCY 1000 + /* * Clear busmaster activity flag */ @@ -251,10 +254,7 @@ static ACPI_STATUS acpi_found_cpu(ACPI_HANDLE handle, u32 level, void *ctx, void **value) { ACPI_OBJECT obj; - ACPI_CX_STATE lat[4]; - ACPI_CPU_THROTTLING_STATE throttle[ACPI_MAX_THROTTLE]; ACPI_BUFFER buf; - int i, count; buf.length = sizeof(obj); buf.pointer = &obj; @@ -273,41 +273,28 @@ acpi_found_cpu(ACPI_HANDLE handle, u32 level, void *ctx, void **value) acpi_pblk = obj.processor.pblk_address; - buf.length = sizeof(lat); - buf.pointer = lat; - if (!ACPI_SUCCESS(acpi_get_processor_cx_info(handle, &buf))) - return AE_OK; + if (acpi_fadt.plvl2_lat + && acpi_fadt.plvl2_lat <= MAX_C2_LATENCY) { + acpi_c2_exit_latency + = ACPI_MICROSEC_TO_TMR_TICKS(acpi_fadt.plvl2_lat); + acpi_c2_enter_latency + = ACPI_MICROSEC_TO_TMR_TICKS(ACPI_TMR_HZ / 1000); + acpi_max_c_state = 2; - if (lat[2].latency < MAX_CX_STATE_LATENCY) { printk(KERN_INFO "ACPI: System firmware supports: C2"); - acpi_c2_exit_latency = lat[2].latency; - acpi_max_c_state = 2; - if (lat[3].latency < MAX_CX_STATE_LATENCY) { - printk(" C3"); - acpi_c3_exit_latency = lat[3].latency; + if (acpi_fadt.plvl3_lat + && acpi_fadt.plvl3_lat <= MAX_C3_LATENCY) { + acpi_c3_exit_latency + = ACPI_MICROSEC_TO_TMR_TICKS(acpi_fadt.plvl3_lat); + acpi_c3_enter_latency + = ACPI_MICROSEC_TO_TMR_TICKS(acpi_fadt.plvl3_lat * 5); acpi_max_c_state = 3; - } - printk("\n"); - } - memset(throttle, 0, sizeof(throttle)); - buf.length = sizeof(throttle); - buf.pointer = throttle; - - if (!ACPI_SUCCESS(acpi_get_processor_throttling_info(handle, &buf))) - return AE_OK; - - for (i = 0, count = 0; i < ACPI_MAX_THROTTLE; i++) { - if (throttle[i].percent_of_clock) - count++; - } - - /* 0% throttled really doesn't count */ - count--; + printk(" C3"); + } - if (count > 0) { - DEBUG_PRINT(ACPI_INFO, ("%d throttling states\n", count)); + printk("\n"); } return AE_OK; |