Lines Matching refs:last_idx
71 int last_residency, last_idx = ldev->last_state_idx; in ladder_select_state() local
77 ladder_do_selection(ldev, last_idx, 0); in ladder_select_state()
81 last_state = &ldev->states[last_idx]; in ladder_select_state()
83 last_residency = cpuidle_get_last_residency(dev) - drv->states[last_idx].exit_latency; in ladder_select_state()
86 if (last_idx < drv->state_count - 1 && in ladder_select_state()
87 !drv->states[last_idx + 1].disabled && in ladder_select_state()
88 !dev->states_usage[last_idx + 1].disable && in ladder_select_state()
90 drv->states[last_idx + 1].exit_latency <= latency_req) { in ladder_select_state()
94 ladder_do_selection(ldev, last_idx, last_idx + 1); in ladder_select_state()
95 return last_idx + 1; in ladder_select_state()
100 if (last_idx > first_idx && in ladder_select_state()
101 (drv->states[last_idx].disabled || in ladder_select_state()
102 dev->states_usage[last_idx].disable || in ladder_select_state()
103 drv->states[last_idx].exit_latency > latency_req)) { in ladder_select_state()
106 for (i = last_idx - 1; i > first_idx; i--) { in ladder_select_state()
110 ladder_do_selection(ldev, last_idx, i); in ladder_select_state()
114 if (last_idx > first_idx && in ladder_select_state()
119 ladder_do_selection(ldev, last_idx, last_idx - 1); in ladder_select_state()
120 return last_idx - 1; in ladder_select_state()
125 return last_idx; in ladder_select_state()