[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-ti33x-psp-3.2 / 3.2.6 / 0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch
1 From 525694bfdb207144d8c8789ea1b689817b465e26 Mon Sep 17 00:00:00 2001
2 From: Andreas Herrmann <andreas.herrmann3@amd.com>
3 Date: Fri, 6 Jan 2012 15:56:31 +0100
4 Subject: [PATCH 85/87] powernow-k8: Avoid Pstate MSR accesses on systems
5 supporting CPB
7 commit 201bf0f129e1715a33568d1563d9a75b840ab4d3 upstream.
9 Due to CPB we can't directly map SW Pstates to Pstate MSRs. Get rid of
10 the paranoia check. (assuming that the ACPI Pstate information is
11 correct.)
13 Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
14 Signed-off-by: Dave Jones <davej@redhat.com>
15 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16 ---
17 drivers/cpufreq/powernow-k8.c | 19 ++++++++++---------
18 1 file changed, 10 insertions(+), 9 deletions(-)
20 diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
21 index bce576d..e0329f9 100644
22 --- a/drivers/cpufreq/powernow-k8.c
23 +++ b/drivers/cpufreq/powernow-k8.c
24 @@ -926,23 +926,24 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
25 invalidate_entry(powernow_table, i);
26 continue;
27 }
28 - rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
29 - if (!(hi & HW_PSTATE_VALID_MASK)) {
30 - pr_debug("invalid pstate %d, ignoring\n", index);
31 - invalidate_entry(powernow_table, i);
32 - continue;
33 - }
34 -
35 - powernow_table[i].index = index;
36 -
37 /* Frequency may be rounded for these */
38 if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
39 || boot_cpu_data.x86 == 0x11) {
40 +
41 + rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
42 + if (!(hi & HW_PSTATE_VALID_MASK)) {
43 + pr_debug("invalid pstate %d, ignoring\n", index);
44 + invalidate_entry(powernow_table, i);
45 + continue;
46 + }
47 +
48 powernow_table[i].frequency =
49 freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
50 } else
51 powernow_table[i].frequency =
52 data->acpi_data.states[i].core_frequency * 1000;
53 +
54 + powernow_table[i].index = index;
55 }
56 return 0;
57 }
58 --
59 1.7.9.4