aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/e_powersaver.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpufreq/e_powersaver.c')
-rw-r--r--drivers/cpufreq/e_powersaver.c11
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 = &centaur->freq_table[0]; 383 f_table = &centaur->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;