Commit e4f69372 authored by Venkatesh Pallipadi's avatar Venkatesh Pallipadi Committed by Len Brown

ACPI x86: Cleanup acpi_cpufreq structures related to aperf/mperf

Change structure name to make the code cleaner and simpler. No
functionality change in this patch.
Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 577c9c45
...@@ -241,23 +241,23 @@ static u32 get_cur_val(const struct cpumask *mask) ...@@ -241,23 +241,23 @@ static u32 get_cur_val(const struct cpumask *mask)
return cmd.val; return cmd.val;
} }
struct perf_cur { struct perf_pair {
union { union {
struct { struct {
u32 lo; u32 lo;
u32 hi; u32 hi;
} split; } split;
u64 whole; u64 whole;
} aperf_cur, mperf_cur; } aperf, mperf;
}; };
static long read_measured_perf_ctrs(void *_cur) static long read_measured_perf_ctrs(void *_cur)
{ {
struct perf_cur *cur = _cur; struct perf_pair *cur = _cur;
rdmsr(MSR_IA32_APERF, cur->aperf_cur.split.lo, cur->aperf_cur.split.hi); rdmsr(MSR_IA32_APERF, cur->aperf.split.lo, cur->aperf.split.hi);
rdmsr(MSR_IA32_MPERF, cur->mperf_cur.split.lo, cur->mperf_cur.split.hi); rdmsr(MSR_IA32_MPERF, cur->mperf.split.lo, cur->mperf.split.hi);
wrmsr(MSR_IA32_APERF, 0, 0); wrmsr(MSR_IA32_APERF, 0, 0);
wrmsr(MSR_IA32_MPERF, 0, 0); wrmsr(MSR_IA32_MPERF, 0, 0);
...@@ -281,7 +281,7 @@ static long read_measured_perf_ctrs(void *_cur) ...@@ -281,7 +281,7 @@ static long read_measured_perf_ctrs(void *_cur)
static unsigned int get_measured_perf(struct cpufreq_policy *policy, static unsigned int get_measured_perf(struct cpufreq_policy *policy,
unsigned int cpu) unsigned int cpu)
{ {
struct perf_cur cur; struct perf_pair cur;
unsigned int perf_percent; unsigned int perf_percent;
unsigned int retval; unsigned int retval;
...@@ -294,39 +294,37 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy, ...@@ -294,39 +294,37 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
* Get an approximate value. Return failure in case we cannot get * Get an approximate value. Return failure in case we cannot get
* an approximate value. * an approximate value.
*/ */
if (unlikely(cur.aperf_cur.split.hi || cur.mperf_cur.split.hi)) { if (unlikely(cur.aperf.split.hi || cur.mperf.split.hi)) {
int shift_count; int shift_count;
u32 h; u32 h;
h = max_t(u32, cur.aperf_cur.split.hi, cur.mperf_cur.split.hi); h = max_t(u32, cur.aperf.split.hi, cur.mperf.split.hi);
shift_count = fls(h); shift_count = fls(h);
cur.aperf_cur.whole >>= shift_count; cur.aperf.whole >>= shift_count;
cur.mperf_cur.whole >>= shift_count; cur.mperf.whole >>= shift_count;
} }
if (((unsigned long)(-1) / 100) < cur.aperf_cur.split.lo) { if (((unsigned long)(-1) / 100) < cur.aperf.split.lo) {
int shift_count = 7; int shift_count = 7;
cur.aperf_cur.split.lo >>= shift_count; cur.aperf.split.lo >>= shift_count;
cur.mperf_cur.split.lo >>= shift_count; cur.mperf.split.lo >>= shift_count;
} }
if (cur.aperf_cur.split.lo && cur.mperf_cur.split.lo) if (cur.aperf.split.lo && cur.mperf.split.lo)
perf_percent = (cur.aperf_cur.split.lo * 100) / perf_percent = (cur.aperf.split.lo * 100) / cur.mperf.split.lo;
cur.mperf_cur.split.lo;
else else
perf_percent = 0; perf_percent = 0;
#else #else
if (unlikely(((unsigned long)(-1) / 100) < cur.aperf_cur.whole)) { if (unlikely(((unsigned long)(-1) / 100) < cur.aperf.whole)) {
int shift_count = 7; int shift_count = 7;
cur.aperf_cur.whole >>= shift_count; cur.aperf.whole >>= shift_count;
cur.mperf_cur.whole >>= shift_count; cur.mperf.whole >>= shift_count;
} }
if (cur.aperf_cur.whole && cur.mperf_cur.whole) if (cur.aperf.whole && cur.mperf.whole)
perf_percent = (cur.aperf_cur.whole * 100) / perf_percent = (cur.aperf.whole * 100) / cur.mperf.whole;
cur.mperf_cur.whole;
else else
perf_percent = 0; perf_percent = 0;
......
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