#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/smp.h>
#include <linux/cpufreq.h>
#include <linux/cpumask.h>
#include <linux/timex.h>
#include <asm/processor.h>
#include <asm/msr.h>
#include <asm/timer.h>
#include <asm/cpu_device_id.h>
#include "speedstep-lib.h"
enum { … };
#define DC_ENTRIES …
static int has_N44_O17_errata[NR_CPUS];
static unsigned int stock_freq;
static struct cpufreq_driver p4clockmod_driver;
static unsigned int cpufreq_p4_get(unsigned int cpu);
static int cpufreq_p4_setdc(unsigned int cpu, unsigned int newstate)
{ … }
static struct cpufreq_frequency_table p4clockmod_table[] = …;
static int cpufreq_p4_target(struct cpufreq_policy *policy, unsigned int index)
{ … }
static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
{ … }
static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy)
{ … }
static unsigned int cpufreq_p4_get(unsigned int cpu)
{ … }
static struct cpufreq_driver p4clockmod_driver = …;
static const struct x86_cpu_id cpufreq_p4_id[] = …;
static int __init cpufreq_p4_init(void)
{ … }
static void __exit cpufreq_p4_exit(void)
{ … }
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
late_initcall(cpufreq_p4_init);
module_exit(cpufreq_p4_exit);