Lines Matching full:states
11 * wakeups from idle states. Moreover, information about what happened in the
15 * which of the shallower idle states to choose.
98 * @states: Idle states data corresponding to this CPU.
105 struct teo_idle_state states[CPUIDLE_STATE_MAX]; member
131 u64 lat_ns = drv->states[dev->last_state_idx].exit_latency_ns; in teo_update()
154 * Decay the "early hits" metric for all of the states and find the in teo_update()
155 * states matching the sleep length and the measured idle duration. in teo_update()
158 unsigned int early_hits = cpu_data->states[i].early_hits; in teo_update()
160 cpu_data->states[i].early_hits -= early_hits >> DECAY_SHIFT; in teo_update()
162 if (drv->states[i].target_residency_ns <= cpu_data->sleep_length_ns) { in teo_update()
164 if (drv->states[i].target_residency_ns <= measured_ns) in teo_update()
178 unsigned int hits = cpu_data->states[idx_timer].hits; in teo_update()
179 unsigned int misses = cpu_data->states[idx_timer].misses; in teo_update()
187 cpu_data->states[idx_hit].early_hits += PULSE; in teo_update()
192 cpu_data->states[idx_timer].misses = misses; in teo_update()
193 cpu_data->states[idx_timer].hits = hits; in teo_update()
228 if (drv->states[i].target_residency_ns <= duration_ns) in teo_find_shallower_state()
269 struct cpuidle_state *s = &drv->states[i]; in teo_select()
273 * Ignore disabled states with target residencies beyond in teo_select()
287 hits = cpu_data->states[i].hits; in teo_select()
288 misses = cpu_data->states[i].misses; in teo_select()
290 if (early_hits >= cpu_data->states[i].early_hits || in teo_select()
302 early_hits = cpu_data->states[i].early_hits; in teo_select()
314 if (teo_time_ok(drv->states[idx].target_residency_ns)) { in teo_select()
316 early_hits = cpu_data->states[i].early_hits; in teo_select()
325 hits = cpu_data->states[i].hits; in teo_select()
326 misses = cpu_data->states[i].misses; in teo_select()
336 hits = cpu_data->states[i].hits; in teo_select()
337 misses = cpu_data->states[i].misses; in teo_select()
339 if (early_hits < cpu_data->states[i].early_hits && in teo_select()
340 teo_time_ok(drv->states[i].target_residency_ns)) { in teo_select()
342 early_hits = cpu_data->states[i].early_hits; in teo_select()
350 * it is more likely that one of the shallower states will match the in teo_select()
359 * shallower states. in teo_select()
366 duration_ns = drv->states[idx].target_residency_ns; in teo_select()
378 idx = 0; /* No states enabled. Must use 0. */ in teo_select()
410 if (drv->states[idx].target_residency_ns > avg_ns) in teo_select()
421 if (((drv->states[idx].flags & CPUIDLE_FLAG_POLLING) || in teo_select()
431 if (idx > 0 && drv->states[idx].target_residency_ns > delta_tick) in teo_select()