]> git.hungrycats.org Git - linux/commitdiff
[CPUFREQ] powernow-k7 lazy voltage setting.
authorDave Jones <davej@codemonkey.org.uk>
Mon, 10 Mar 2003 16:07:10 +0000 (15:07 -0100)
committerDave Jones <davej@codemonkey.org.uk>
Mon, 10 Mar 2003 16:07:10 +0000 (15:07 -0100)
arch/i386/kernel/cpu/cpufreq/powernow-k7.c

index 664ff84f5903eba6b06578016b2b02316560720a..43562ebfd2a5b2be0bfb39103da17b87ad24f5f9 100644 (file)
@@ -239,12 +239,17 @@ static void change_speed (unsigned int index)
                __asm__("\tcli\n");
        rdmsrl (MSR_K7_FID_VID_CTL, fidvidctl.val);
        fidvidctl.bits.SGTC = latency;  /* Stop grant timeout counter */
+
        fidvidctl.bits.FID = fid;
-       fidvidctl.bits.VID = vid;
-       /* Note, we could set these lazily. Ie, only do voltage transition
-          if its changed since last time (Some speeds have the same voltage) */
        fidvidctl.bits.FIDC = 1;
-       fidvidctl.bits.VIDC = 1;
+
+       /* Set the voltage lazily. Ie, only do voltage transition
+          if its changed since last time (Some speeds have the same voltage) */
+       if (fidvidctl.bits.VID != vid) {
+               fidvidctl.bits.VID = vid;
+               fidvidctl.bits.VIDC = 1;
+       }
+
        wrmsrl (MSR_K7_FID_VID_CTL, fidvidctl.val);
        if (have_a0 == 1)
                __asm__("\tsti\n");