#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/percpu-defs.h>
#include <linux/init.h>
#include <linux/mod_devicetable.h>
#include <asm/msr.h>
#include <asm/cpufeature.h>
#include <asm/cpu_device_id.h>
#include "cpufreq_ondemand.h"
#define MSR_AMD64_FREQ_SENSITIVITY_ACTUAL …
#define MSR_AMD64_FREQ_SENSITIVITY_REFERENCE …
#define CLASS_CODE_SHIFT …
#define POWERSAVE_BIAS_MAX …
#define POWERSAVE_BIAS_DEF …
struct cpu_data_t { … };
static DEFINE_PER_CPU(struct cpu_data_t, cpu_data);
static unsigned int amd_powersave_bias_target(struct cpufreq_policy *policy,
unsigned int freq_next,
unsigned int relation)
{ … }
static int __init amd_freq_sensitivity_init(void)
{ … }
late_initcall(amd_freq_sensitivity_init);
static void __exit amd_freq_sensitivity_exit(void)
{ … }
module_exit(amd_freq_sensitivity_exit);
static const struct x86_cpu_id __maybe_unused amd_freq_sensitivity_ids[] = …;
MODULE_DEVICE_TABLE(x86cpu, amd_freq_sensitivity_ids);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;