]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blob - recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch
linux-ti335x-psp 3.2: update to v3.2.11
[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