On 12 December 2013 06:09, Mikulas Patocka <mpatocka@xxxxxxxxxx> wrote: > This patch reorders reported frequencies from the highest to the lowest, > just like in other frequency drivers. > > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> > Cc: stable@xxxxxxxxxx > > --- > drivers/cpufreq/powernow-k6.c | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > Index: linux-3.12.3/drivers/cpufreq/powernow-k6.c > =================================================================== > --- linux-3.12.3.orig/drivers/cpufreq/powernow-k6.c 2013-12-06 22:08:27.000000000 +0100 > +++ linux-3.12.3/drivers/cpufreq/powernow-k6.c 2013-12-06 22:17:44.000000000 +0100 > @@ -37,17 +37,20 @@ MODULE_PARM_DESC(bus_frequency, "Bus fre > > /* Clock ratio multiplied by 10 - see table 27 in AMD#23446 */ > static struct cpufreq_frequency_table clock_ratio[] = { > - {45, /* 000 -> 4.5x */ 0}, > + {60, /* 110 -> 6.0x */ 0}, > + {55, /* 011 -> 5.5x */ 0}, > {50, /* 001 -> 5.0x */ 0}, > + {45, /* 000 -> 4.5x */ 0}, > {40, /* 010 -> 4.0x */ 0}, > - {55, /* 011 -> 5.5x */ 0}, > - {20, /* 100 -> 2.0x */ 0}, > - {30, /* 101 -> 3.0x */ 0}, > - {60, /* 110 -> 6.0x */ 0}, > {35, /* 111 -> 3.5x */ 0}, > + {30, /* 101 -> 3.0x */ 0}, > + {20, /* 100 -> 2.0x */ 0}, > {0, CPUFREQ_TABLE_END} > }; > > +static const u8 index_to_register[8] = { 6, 3, 1, 0, 2, 7, 5, 4 }; > +static const u8 register_to_index[8] = { 3, 2, 4, 1, 7, 6, 0, 5 }; > + > static const struct { > unsigned freq; > unsigned mult; > @@ -91,7 +94,7 @@ static int powernow_k6_get_cpu_multiplie > > local_irq_enable(); > > - return clock_ratio[(invalue >> 5)&7].driver_data; > + return clock_ratio[register_to_index[(invalue >> 5)&7]].driver_data; > } > > static void powernow_k6_set_cpu_multiplier(unsigned int best_i) > @@ -111,7 +114,7 @@ static void powernow_k6_set_cpu_multipli > write_cr0(cr0 | X86_CR0_CD); > wbinvd(); > > - outvalue = (1<<12) | (1<<10) | (1<<9) | (best_i<<5); > + outvalue = (1<<12) | (1<<10) | (1<<9) | (index_to_register[best_i]<<5); > > msrval = POWERNOW_IOPORT + 0x1; > wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */ Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html