|
|
|
@ -51,8 +51,6 @@ static inline int32_t div_fp(int32_t x, int32_t y) |
|
|
|
|
return div_s64((int64_t)x << FRAC_BITS, (int64_t)y); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static u64 energy_divisor; |
|
|
|
|
|
|
|
|
|
struct sample { |
|
|
|
|
int32_t core_pct_busy; |
|
|
|
|
u64 aperf; |
|
|
|
@ -630,12 +628,10 @@ static void intel_pstate_timer_func(unsigned long __data) |
|
|
|
|
{ |
|
|
|
|
struct cpudata *cpu = (struct cpudata *) __data; |
|
|
|
|
struct sample *sample; |
|
|
|
|
u64 energy; |
|
|
|
|
|
|
|
|
|
intel_pstate_sample(cpu); |
|
|
|
|
|
|
|
|
|
sample = &cpu->samples[cpu->sample_ptr]; |
|
|
|
|
rdmsrl(MSR_PKG_ENERGY_STATUS, energy); |
|
|
|
|
|
|
|
|
|
intel_pstate_adjust_busy_pstate(cpu); |
|
|
|
|
|
|
|
|
@ -644,7 +640,6 @@ static void intel_pstate_timer_func(unsigned long __data) |
|
|
|
|
cpu->pstate.current_pstate, |
|
|
|
|
sample->mperf, |
|
|
|
|
sample->aperf, |
|
|
|
|
div64_u64(energy, energy_divisor), |
|
|
|
|
sample->freq); |
|
|
|
|
|
|
|
|
|
intel_pstate_set_sample_time(cpu); |
|
|
|
@ -926,7 +921,6 @@ static int __init intel_pstate_init(void) |
|
|
|
|
int cpu, rc = 0; |
|
|
|
|
const struct x86_cpu_id *id; |
|
|
|
|
struct cpu_defaults *cpu_info; |
|
|
|
|
u64 units; |
|
|
|
|
|
|
|
|
|
if (no_load) |
|
|
|
|
return -ENODEV; |
|
|
|
@ -960,9 +954,6 @@ static int __init intel_pstate_init(void) |
|
|
|
|
if (rc) |
|
|
|
|
goto out; |
|
|
|
|
|
|
|
|
|
rdmsrl(MSR_RAPL_POWER_UNIT, units); |
|
|
|
|
energy_divisor = 1 << ((units >> 8) & 0x1f); /* bits{12:8} */ |
|
|
|
|
|
|
|
|
|
intel_pstate_debug_expose_params(); |
|
|
|
|
intel_pstate_sysfs_expose_params(); |
|
|
|
|
|
|
|
|
|