diff options
Diffstat (limited to 'drivers/cpufreq/e_powersaver.c')
-rw-r--r-- | drivers/cpufreq/e_powersaver.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/cpufreq/e_powersaver.c b/drivers/cpufreq/e_powersaver.c index 37380fb92621..a60efaeb4cf8 100644 --- a/drivers/cpufreq/e_powersaver.c +++ b/drivers/cpufreq/e_powersaver.c | |||
@@ -161,6 +161,9 @@ postchange: | |||
161 | current_multiplier); | 161 | current_multiplier); |
162 | } | 162 | } |
163 | #endif | 163 | #endif |
164 | if (err) | ||
165 | freqs.new = freqs.old; | ||
166 | |||
164 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); | 167 | cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); |
165 | return err; | 168 | return err; |
166 | } | 169 | } |
@@ -188,7 +191,7 @@ static int eps_target(struct cpufreq_policy *policy, | |||
188 | } | 191 | } |
189 | 192 | ||
190 | /* Make frequency transition */ | 193 | /* Make frequency transition */ |
191 | dest_state = centaur->freq_table[newstate].index & 0xffff; | 194 | dest_state = centaur->freq_table[newstate].driver_data & 0xffff; |
192 | ret = eps_set_state(centaur, policy, dest_state); | 195 | ret = eps_set_state(centaur, policy, dest_state); |
193 | if (ret) | 196 | if (ret) |
194 | printk(KERN_ERR "eps: Timeout!\n"); | 197 | printk(KERN_ERR "eps: Timeout!\n"); |
@@ -380,9 +383,9 @@ static int eps_cpu_init(struct cpufreq_policy *policy) | |||
380 | f_table = ¢aur->freq_table[0]; | 383 | f_table = ¢aur->freq_table[0]; |
381 | if (brand != EPS_BRAND_C7M) { | 384 | if (brand != EPS_BRAND_C7M) { |
382 | f_table[0].frequency = fsb * min_multiplier; | 385 | f_table[0].frequency = fsb * min_multiplier; |
383 | f_table[0].index = (min_multiplier << 8) | min_voltage; | 386 | f_table[0].driver_data = (min_multiplier << 8) | min_voltage; |
384 | f_table[1].frequency = fsb * max_multiplier; | 387 | f_table[1].frequency = fsb * max_multiplier; |
385 | f_table[1].index = (max_multiplier << 8) | max_voltage; | 388 | f_table[1].driver_data = (max_multiplier << 8) | max_voltage; |
386 | f_table[2].frequency = CPUFREQ_TABLE_END; | 389 | f_table[2].frequency = CPUFREQ_TABLE_END; |
387 | } else { | 390 | } else { |
388 | k = 0; | 391 | k = 0; |
@@ -391,7 +394,7 @@ static int eps_cpu_init(struct cpufreq_policy *policy) | |||
391 | for (i = min_multiplier; i <= max_multiplier; i++) { | 394 | for (i = min_multiplier; i <= max_multiplier; i++) { |
392 | voltage = (k * step) / 256 + min_voltage; | 395 | voltage = (k * step) / 256 + min_voltage; |
393 | f_table[k].frequency = fsb * i; | 396 | f_table[k].frequency = fsb * i; |
394 | f_table[k].index = (i << 8) | voltage; | 397 | f_table[k].driver_data = (i << 8) | voltage; |
395 | k++; | 398 | k++; |
396 | } | 399 | } |
397 | f_table[k].frequency = CPUFREQ_TABLE_END; | 400 | f_table[k].frequency = CPUFREQ_TABLE_END; |