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 @@ ...@@ -10,6 +10,7 @@
* *
* Errata 5: Processor may fail to execute a FID/VID change in presence of interrupt. * 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. * - 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. * 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. * - We disable half multipliers if ACPI is used on A0 stepping CPUs.
*/ */
...@@ -259,8 +260,7 @@ static void change_speed (unsigned int index) ...@@ -259,8 +260,7 @@ static void change_speed (unsigned int index)
/* Now do the magic poking into the MSRs. */ /* 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) { if (freqs.old > freqs.new) {
/* Going down, so change FID first */ /* Going down, so change FID first */
...@@ -272,9 +272,7 @@ static void change_speed (unsigned int index) ...@@ -272,9 +272,7 @@ static void change_speed (unsigned int index)
change_FID(vid); change_FID(vid);
} }
__asm__("\tsti\n");
if (have_a0 == 1)
__asm__("\tsti\n");
cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 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