static int acpi_processor_power_verify(struct acpi_processor *pr) { unsigned int i; unsigned int working = 0; pr->power.timer_broadcast_on_state = INT_MAX; for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) { struct acpi_processor_cx *cx = &pr->power.states[i]; switch (cx->type) { case ACPI_STATE_C1: cx->valid = 1; break; case ACPI_STATE_C2: if (!cx->address) break; cx->valid = 1; cx->latency_ticks = cx->latency; /* Normalize latency */ break; case ACPI_STATE_C3: acpi_processor_power_verify_c3(pr, cx); break; } if (!cx->valid) continue; lapic_timer_check_state(i, pr, cx); tsc_check_state(cx->type); working++; } lapic_timer_propagate_broadcast(pr); return (working); }
static int acpi_processor_power_verify(struct acpi_processor *pr) { unsigned int i; unsigned int working = 0; pr->power.timer_broadcast_on_state = INT_MAX; for (i = 1; i < ACPI_PROCESSOR_MAX_POWER && i <= max_cstate; i++) { struct acpi_processor_cx *cx = &pr->power.states[i]; switch (cx->type) { case ACPI_STATE_C1: cx->valid = 1; break; case ACPI_STATE_C2: acpi_processor_power_verify_c2(cx); break; case ACPI_STATE_C3: acpi_processor_power_verify_c3(pr, cx); break; } if (!cx->valid) continue; lapic_timer_check_state(i, pr, cx); tsc_check_state(cx->type); working++; } smp_call_function_single(pr->id, lapic_timer_propagate_broadcast, pr, 1); return (working); }