Commit 6322fd9d authored by Dave Jones's avatar Dave Jones

[CPUFREQ] More powernow-k7 hardening.

Even with the previous fixes, a stress test of rapidly changing speeds in a loop locked
up my test laptop just after a day. Making the errata 5 workaround unconditional
(previously it was only for certain steppings) seems to have cured it. It's now been
running the stress test for nearly two days without a problem.
parent 9f43b3a6
......@@ -10,6 +10,7 @@
*
* Errata 5: Processor may fail to execute a FID/VID change in presence of interrupt.
* - We cli/sti on stepping A0 CPUs around the FID/VID transition.
* (ADDENDUM: This seems to be needed on more systems, so we do it unconditionally now).
* Errata 15: Processors with half frequency multipliers may hang upon wakeup from disconnect.
* - We disable half multipliers if ACPI is used on A0 stepping CPUs.
*/
......@@ -259,8 +260,7 @@ static void change_speed (unsigned int index)
/* Now do the magic poking into the MSRs. */
if (have_a0 == 1) /* A0 errata 5 */
__asm__("\tcli\n");
__asm__("\tcli\n");
if (freqs.old > freqs.new) {
/* Going down, so change FID first */
......@@ -272,9 +272,7 @@ static void change_speed (unsigned int index)
change_FID(vid);
}
if (have_a0 == 1)
__asm__("\tsti\n");
__asm__("\tsti\n");
cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment