diff options
Diffstat (limited to 'drivers/cpuidle/governors/ladder.c')
-rw-r--r-- | drivers/cpuidle/governors/ladder.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/cpuidle/governors/ladder.c b/drivers/cpuidle/governors/ladder.c index 12c98900dcf8..6a686a76711f 100644 --- a/drivers/cpuidle/governors/ladder.c +++ b/drivers/cpuidle/governors/ladder.c | |||
@@ -153,11 +153,24 @@ static int ladder_enable_device(struct cpuidle_device *dev) | |||
153 | return 0; | 153 | return 0; |
154 | } | 154 | } |
155 | 155 | ||
156 | /** | ||
157 | * ladder_reflect - update the correct last_state_idx | ||
158 | * @dev: the CPU | ||
159 | * @index: the index of actual state entered | ||
160 | */ | ||
161 | static void ladder_reflect(struct cpuidle_device *dev, int index) | ||
162 | { | ||
163 | struct ladder_device *ldev = &__get_cpu_var(ladder_devices); | ||
164 | if (index > 0) | ||
165 | ldev->last_state_idx = index; | ||
166 | } | ||
167 | |||
156 | static struct cpuidle_governor ladder_governor = { | 168 | static struct cpuidle_governor ladder_governor = { |
157 | .name = "ladder", | 169 | .name = "ladder", |
158 | .rating = 10, | 170 | .rating = 10, |
159 | .enable = ladder_enable_device, | 171 | .enable = ladder_enable_device, |
160 | .select = ladder_select_state, | 172 | .select = ladder_select_state, |
173 | .reflect = ladder_reflect, | ||
161 | .owner = THIS_MODULE, | 174 | .owner = THIS_MODULE, |
162 | }; | 175 | }; |
163 | 176 | ||