|
@@ -61,25 +61,9 @@ inline int check_tsc_unstable(void)
|
|
|
* first tick after the change will be slightly wrong.
|
|
|
*/
|
|
|
|
|
|
-#include <linux/workqueue.h>
|
|
|
-
|
|
|
-static unsigned int cpufreq_delayed_issched = 0;
|
|
|
-static unsigned int cpufreq_init = 0;
|
|
|
-static struct work_struct cpufreq_delayed_get_work;
|
|
|
-
|
|
|
-static void handle_cpufreq_delayed_get(struct work_struct *v)
|
|
|
-{
|
|
|
- unsigned int cpu;
|
|
|
- for_each_online_cpu(cpu) {
|
|
|
- cpufreq_get(cpu);
|
|
|
- }
|
|
|
- cpufreq_delayed_issched = 0;
|
|
|
-}
|
|
|
-
|
|
|
-static unsigned int ref_freq = 0;
|
|
|
-static unsigned long loops_per_jiffy_ref = 0;
|
|
|
-
|
|
|
-static unsigned long tsc_khz_ref = 0;
|
|
|
+static unsigned int ref_freq;
|
|
|
+static unsigned long loops_per_jiffy_ref;
|
|
|
+static unsigned long tsc_khz_ref;
|
|
|
|
|
|
static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
|
|
|
void *data)
|
|
@@ -125,10 +109,8 @@ static struct notifier_block time_cpufreq_notifier_block = {
|
|
|
|
|
|
static int __init cpufreq_tsc(void)
|
|
|
{
|
|
|
- INIT_WORK(&cpufreq_delayed_get_work, handle_cpufreq_delayed_get);
|
|
|
- if (!cpufreq_register_notifier(&time_cpufreq_notifier_block,
|
|
|
- CPUFREQ_TRANSITION_NOTIFIER))
|
|
|
- cpufreq_init = 1;
|
|
|
+ cpufreq_register_notifier(&time_cpufreq_notifier_block,
|
|
|
+ CPUFREQ_TRANSITION_NOTIFIER);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -153,17 +135,18 @@ __cpuinit int unsynchronized_tsc(void)
|
|
|
#endif
|
|
|
/* Most intel systems have synchronized TSCs except for
|
|
|
multi node systems */
|
|
|
- if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
|
|
|
+ if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) {
|
|
|
#ifdef CONFIG_ACPI
|
|
|
/* But TSC doesn't tick in C3 so don't use it there */
|
|
|
- if (acpi_gbl_FADT.header.length > 0 && acpi_gbl_FADT.C3latency < 1000)
|
|
|
+ if (acpi_gbl_FADT.header.length > 0 &&
|
|
|
+ acpi_gbl_FADT.C3latency < 1000)
|
|
|
return 1;
|
|
|
#endif
|
|
|
- return 0;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
- /* Assume multi socket systems are not synchronized */
|
|
|
- return num_present_cpus() > 1;
|
|
|
+ /* Assume multi socket systems are not synchronized */
|
|
|
+ return num_present_cpus() > 1;
|
|
|
}
|
|
|
|
|
|
int __init notsc_setup(char *s)
|