|
@@ -68,11 +68,16 @@ struct acpi_cpufreq_data {
|
|
unsigned int max_freq;
|
|
unsigned int max_freq;
|
|
unsigned int resume;
|
|
unsigned int resume;
|
|
unsigned int cpu_feature;
|
|
unsigned int cpu_feature;
|
|
- u64 saved_aperf, saved_mperf;
|
|
|
|
};
|
|
};
|
|
|
|
|
|
static DEFINE_PER_CPU(struct acpi_cpufreq_data *, drv_data);
|
|
static DEFINE_PER_CPU(struct acpi_cpufreq_data *, drv_data);
|
|
|
|
|
|
|
|
+struct acpi_msr_data {
|
|
|
|
+ u64 saved_aperf, saved_mperf;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static DEFINE_PER_CPU(struct acpi_msr_data, msr_data);
|
|
|
|
+
|
|
DEFINE_TRACE(power_mark);
|
|
DEFINE_TRACE(power_mark);
|
|
|
|
|
|
/* acpi_perf_data is a pointer to percpu data. */
|
|
/* acpi_perf_data is a pointer to percpu data. */
|
|
@@ -287,11 +292,11 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
cur.aperf.whole = readin.aperf.whole -
|
|
cur.aperf.whole = readin.aperf.whole -
|
|
- per_cpu(drv_data, cpu)->saved_aperf;
|
|
|
|
|
|
+ per_cpu(msr_data, cpu).saved_aperf;
|
|
cur.mperf.whole = readin.mperf.whole -
|
|
cur.mperf.whole = readin.mperf.whole -
|
|
- per_cpu(drv_data, cpu)->saved_mperf;
|
|
|
|
- per_cpu(drv_data, cpu)->saved_aperf = readin.aperf.whole;
|
|
|
|
- per_cpu(drv_data, cpu)->saved_mperf = readin.mperf.whole;
|
|
|
|
|
|
+ per_cpu(msr_data, cpu).saved_mperf;
|
|
|
|
+ per_cpu(msr_data, cpu).saved_aperf = readin.aperf.whole;
|
|
|
|
+ per_cpu(msr_data, cpu).saved_mperf = readin.mperf.whole;
|
|
|
|
|
|
#ifdef __i386__
|
|
#ifdef __i386__
|
|
/*
|
|
/*
|